Search in sources :

Example 86 with IExtensionPoint

use of org.eclipse.core.runtime.IExtensionPoint in project erlide_eclipse by erlang.

the class BackendManager method loadCodepathExtensions.

@Override
public void loadCodepathExtensions() {
    final IExtensionPoint exPnt = BackendUtils.getCodepathExtension();
    final IExtension[] extensions = exPnt.getExtensions();
    for (final IExtension extension : extensions) {
        if (!extension.isValid()) {
            continue;
        }
        addCodeBundle(extension);
    }
}
Also used : IExtensionPoint(org.eclipse.core.runtime.IExtensionPoint) IExtension(org.eclipse.core.runtime.IExtension)

Example 87 with IExtensionPoint

use of org.eclipse.core.runtime.IExtensionPoint in project translationstudio8 by heartsome.

the class SelfHelpDisplay method createHelpDisplay.

private static void createHelpDisplay() {
    IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(HELP_DISPLAY_EXTENSION_ID);
    if (point != null) {
        IExtension[] extensions = point.getExtensions();
        if (extensions.length != 0) {
            // We need to pick up the non-default configuration
            IConfigurationElement[] elements = extensions[0].getConfigurationElements();
            if (elements.length == 0)
                return;
            IConfigurationElement displayElement = elements[0];
            // Instantiate the help display
            try {
                helpDisplay = (AbstractHelpDisplay) (displayElement.createExecutableExtension(HELP_DISPLAY_CLASS_ATTRIBUTE));
            } catch (CoreException e) {
                HelpBasePlugin.logStatus(e.getStatus());
            }
        }
    }
}
Also used : IExtensionPoint(org.eclipse.core.runtime.IExtensionPoint) CoreException(org.eclipse.core.runtime.CoreException) IExtension(org.eclipse.core.runtime.IExtension) IConfigurationElement(org.eclipse.core.runtime.IConfigurationElement)

Example 88 with IExtensionPoint

use of org.eclipse.core.runtime.IExtensionPoint in project tdi-studio-se by Talend.

the class DBTreeActionGroup method getContextActions.

/**
     * Loop through all extensions and add the appropriate actions.
     * 
     * Actions are selected by database product name, node type and
     * availability.
     * 
     * @param nodes currently selected nodes
     * @return array of actions
     */
//$NON-NLS-1$
@SuppressWarnings("unchecked")
private IAction[] getContextActions(INode[] nodes) {
    String databaseProductName = nodes[0].getSession().getRoot().getDatabaseProductName().toLowerCase().trim();
    String nodeType = nodes[0].getType().toLowerCase().trim();
    List actions = new ArrayList();
    IExtensionRegistry registry = Platform.getExtensionRegistry();
    //$NON-NLS-1$ //$NON-NLS-2$
    IExtensionPoint point = registry.getExtensionPoint("net.sourceforge.sqlexplorer", "nodeContextAction");
    IExtension[] extensions = point.getExtensions();
    for (int i = 0; i < extensions.length; i++) {
        IExtension e = extensions[i];
        IConfigurationElement[] ces = e.getConfigurationElements();
        for (int j = 0; j < ces.length; j++) {
            try {
                boolean isValidProduct = false;
                boolean isValidNodeType = false;
                //$NON-NLS-1$
                String id = ces[j].getAttribute("id");
                //$NON-NLS-1$ //$NON-NLS-2$
                String[] validProducts = ces[j].getAttribute("database-product-name").split(",");
                //$NON-NLS-1$ //$NON-NLS-2$
                String[] validNodeTypes = ces[j].getAttribute("node-type").split(",");
                //$NON-NLS-1$
                String imagePath = ces[j].getAttribute("icon");
                // check if action is valid for current database product
                for (int k = 0; k < validProducts.length; k++) {
                    String product = validProducts[k].toLowerCase().trim();
                    if (product.length() == 0) {
                        continue;
                    }
                    if (product.equals("*")) {
                        //$NON-NLS-1$
                        isValidProduct = true;
                        break;
                    }
                    //$NON-NLS-1$
                    String regex = TextUtil.replaceChar(product, '*', ".*");
                    if (databaseProductName.matches(regex)) {
                        isValidProduct = true;
                        break;
                    }
                }
                if (!isValidProduct) {
                    continue;
                }
                // check if action is valid for current node type
                for (int k = 0; k < validNodeTypes.length; k++) {
                    String type = validNodeTypes[k].toLowerCase().trim();
                    if (type.length() == 0) {
                        continue;
                    }
                    if (type.equals("*")) {
                        //$NON-NLS-1$
                        isValidNodeType = true;
                        break;
                    }
                    //$NON-NLS-1$
                    String regex = TextUtil.replaceChar(type, '*', ".*");
                    if (nodeType.matches(regex)) {
                        isValidNodeType = true;
                        break;
                    }
                }
                if (!isValidNodeType) {
                    continue;
                }
                // check if the action thinks it is suitable..
                //$NON-NLS-1$
                AbstractDBTreeContextAction action = (AbstractDBTreeContextAction) ces[j].createExecutableExtension("class");
                action.setSelectedNodes(nodes);
                action.setTreeViewer(pTreeViewer);
                action.setView(pView);
                String fragmentId = id.substring(0, id.indexOf('.', END_INDEX));
                if (imagePath != null && imagePath.trim().length() != 0) {
                    action.setImageDescriptor(ImageUtil.getFragmentDescriptor(fragmentId, imagePath));
                }
                if (action.isAvailable()) {
                    actions.add(action);
                }
            } catch (Throwable ex) {
                //$NON-NLS-1$
                SqlBuilderPlugin.log(Messages.getString("DBTreeActionGroup.logMessage"), ex);
            }
        }
    }
    return (IAction[]) actions.toArray(new IAction[] {});
}
Also used : IAction(org.eclipse.jface.action.IAction) ArrayList(java.util.ArrayList) IConfigurationElement(org.eclipse.core.runtime.IConfigurationElement) IExtensionPoint(org.eclipse.core.runtime.IExtensionPoint) IExtensionPoint(org.eclipse.core.runtime.IExtensionPoint) IExtension(org.eclipse.core.runtime.IExtension) AbstractDBTreeContextAction(org.talend.sqlbuilder.dbstructure.actions.AbstractDBTreeContextAction) ArrayList(java.util.ArrayList) List(java.util.List) IExtensionRegistry(org.eclipse.core.runtime.IExtensionRegistry)

Example 89 with IExtensionPoint

use of org.eclipse.core.runtime.IExtensionPoint in project tdi-studio-se by Talend.

the class SchemaNode method findExtensionNode.

/**
     * Location extenstion nodes for a given tableType.
     * 
     * @param tableType for which to find extension node
     * @return INode or null if no extensions found
     */
private INode findExtensionNode(String tableType) {
    String databaseProductName = getSession().getRoot().getDatabaseProductName().toLowerCase().trim();
    IExtensionRegistry registry = Platform.getExtensionRegistry();
    //$NON-NLS-1$ //$NON-NLS-2$
    IExtensionPoint point = registry.getExtensionPoint("net.sourceforge.sqlexplorer", "node");
    IExtension[] extensions = point.getExtensions();
    for (int i = 0; i < extensions.length; i++) {
        IExtension e = extensions[i];
        IConfigurationElement[] ces = e.getConfigurationElements();
        for (int j = 0; j < ces.length; j++) {
            try {
                // include only nodes that are attachted to the schema
                // node..
                //$NON-NLS-1$
                String parent = ces[j].getAttribute("parent-node");
                if (parent.indexOf("schema") == -1) {
                    //$NON-NLS-1$
                    continue;
                }
                boolean isValidProduct = false;
                //$NON-NLS-1$ //$NON-NLS-2$
                String[] validProducts = ces[j].getAttribute("database-product-name").split(",");
                // include only nodes valid for this database
                for (int k = 0; k < validProducts.length; k++) {
                    String product = validProducts[k].toLowerCase().trim();
                    if (product.length() == 0) {
                        continue;
                    }
                    if (product.equals("*")) {
                        //$NON-NLS-1$
                        isValidProduct = true;
                        break;
                    }
                    //$NON-NLS-1$
                    String regex = TextUtil.replaceChar(product, '*', ".*");
                    if (databaseProductName.matches(regex)) {
                        isValidProduct = true;
                        break;
                    }
                }
                if (!isValidProduct) {
                    continue;
                }
                // check if it is the correct type
                //$NON-NLS-1$
                String type = ces[j].getAttribute("table-type").trim();
                if (!type.equalsIgnoreCase(tableType)) {
                    continue;
                }
                //$NON-NLS-1$
                AbstractNode childNode = (AbstractNode) ces[j].createExecutableExtension("class");
                childNode.setParent(this);
                childNode.setSession(psessionNode);
                return childNode;
            } catch (Throwable ex) {
                //$NON-NLS-1$
                SqlBuilderPlugin.log(Messages.getString("SchemaNode.logMessage2"), ex);
            }
        }
    }
    return null;
}
Also used : IExtensionPoint(org.eclipse.core.runtime.IExtensionPoint) IExtension(org.eclipse.core.runtime.IExtension) IConfigurationElement(org.eclipse.core.runtime.IConfigurationElement) IExtensionPoint(org.eclipse.core.runtime.IExtensionPoint) IExtensionRegistry(org.eclipse.core.runtime.IExtensionRegistry)

Example 90 with IExtensionPoint

use of org.eclipse.core.runtime.IExtensionPoint in project tdi-studio-se by Talend.

the class DataSetTableActionGroup method fillContextMenu.

/**
     * Fill the context menu with all the correct actions.
     * @see org.eclipse.ui.actions.ActionGroup#fillContextMenu(org.eclipse.jface.action.IMenuManager)
     */
public void fillContextMenu(IMenuManager menu) {
    IExtensionRegistry registry = Platform.getExtensionRegistry();
    //$NON-NLS-1$ //$NON-NLS-2$
    IExtensionPoint point = registry.getExtensionPoint("net.sourceforge.sqlexplorer", "dataSetTableContextAction");
    IExtension[] extensions = point.getExtensions();
    for (int i = 0; i < extensions.length; i++) {
        IExtension e = extensions[i];
        IConfigurationElement[] ces = e.getConfigurationElements();
        for (int j = 0; j < ces.length; j++) {
            try {
                //$NON-NLS-1$
                String group = ces[j].getAttribute("group");
                if (group == null || !group.equalsIgnoreCase("export")) {
                    //$NON-NLS-1$
                    // check if the action thinks it is suitable..
                    AbstractDataSetTableContextAction action = (AbstractDataSetTableContextAction) ces[j].createExecutableExtension(//$NON-NLS-1$
                    "class");
                    action.setTable(ptable);
                    action.setTableCursor(pcursor);
                    if (action.isAvailable()) {
                        menu.add(action);
                    }
                }
            } catch (Throwable ex) {
                //$NON-NLS-1$
                SqlBuilderPlugin.log(Messages.getString("DataSetTableActionGroup.logMessage1"), ex);
            }
        }
    }
    menu.add(new Separator());
    // add export options
    //$NON-NLS-1$
    MenuManager subMenu = new MenuManager(Messages.getString("DataSetTable.Actions.ExportSubMenu"));
    for (int i = 0; i < extensions.length; i++) {
        IExtension e = extensions[i];
        IConfigurationElement[] ces = e.getConfigurationElements();
        for (int j = 0; j < ces.length; j++) {
            try {
                //$NON-NLS-1$
                String group = ces[j].getAttribute("group");
                if (group != null && group.equalsIgnoreCase("export")) {
                    //$NON-NLS-1$
                    // check if the action thinks it is suitable..
                    AbstractDataSetTableContextAction action = (AbstractDataSetTableContextAction) ces[j].createExecutableExtension(//$NON-NLS-1$
                    "class");
                    action.setTable(ptable);
                    action.setTableCursor(pcursor);
                    if (action.isAvailable()) {
                        subMenu.add(action);
                    }
                }
            } catch (Throwable ex) {
                //$NON-NLS-1$
                SqlBuilderPlugin.log(Messages.getString("DataSetTableActionGroup.logMessage1"), ex);
            }
        }
    }
    menu.add(subMenu);
    menu.add(new Separator());
    menu.add(pcopyTableAction);
}
Also used : IExtensionPoint(org.eclipse.core.runtime.IExtensionPoint) IExtension(org.eclipse.core.runtime.IExtension) MenuManager(org.eclipse.jface.action.MenuManager) IMenuManager(org.eclipse.jface.action.IMenuManager) AbstractDataSetTableContextAction(org.talend.sqlbuilder.dataset.actions.AbstractDataSetTableContextAction) IConfigurationElement(org.eclipse.core.runtime.IConfigurationElement) IExtensionPoint(org.eclipse.core.runtime.IExtensionPoint) Separator(org.eclipse.jface.action.Separator) IExtensionRegistry(org.eclipse.core.runtime.IExtensionRegistry)

Aggregations

IExtensionPoint (org.eclipse.core.runtime.IExtensionPoint)187 IConfigurationElement (org.eclipse.core.runtime.IConfigurationElement)160 IExtensionRegistry (org.eclipse.core.runtime.IExtensionRegistry)107 IExtension (org.eclipse.core.runtime.IExtension)92 CoreException (org.eclipse.core.runtime.CoreException)70 ArrayList (java.util.ArrayList)29 HashMap (java.util.HashMap)17 Platform (org.eclipse.core.runtime.Platform)17 Stream (java.util.stream.Stream)16 List (java.util.List)15 NodeLogger (org.knime.core.node.NodeLogger)15 Map (java.util.Map)14 Optional (java.util.Optional)14 Collection (java.util.Collection)9 Bundle (org.osgi.framework.Bundle)9 Collectors (java.util.stream.Collectors)8 IOException (java.io.IOException)6 Collections (java.util.Collections)6 LinkedList (java.util.LinkedList)6 Objects (java.util.Objects)6