Search in sources :

Example 11 with Expression

use of org.eclipse.core.expressions.Expression in project eclipse.platform.runtime by eclipse.

the class ExpressionTests method testForcePluginActivation.

public void testForcePluginActivation() throws Exception {
    IExtensionRegistry registry = Platform.getExtensionRegistry();
    // $NON-NLS-1$ //$NON-NLS-2$
    IConfigurationElement[] ces = registry.getConfigurationElementsFor("org.eclipse.core.expressions.tests", "testParticipants");
    // $NON-NLS-1$ //$NON-NLS-2$
    IConfigurationElement enable = findExtension(ces, "test2").getChildren("enablement")[0];
    EnablementExpression exp = (EnablementExpression) ExpressionConverter.getDefault().perform(enable);
    Expression[] children = exp.getChildren();
    assertTrue(children.length == 3);
    TestExpression test = (TestExpression) children[0];
    assertTrue(test.testGetForcePluginActivation());
    test = (TestExpression) children[1];
    assertTrue(!test.testGetForcePluginActivation());
    test = (TestExpression) children[2];
    assertTrue(!test.testGetForcePluginActivation());
}
Also used : AndExpression(org.eclipse.core.internal.expressions.AndExpression) SystemTestExpression(org.eclipse.core.internal.expressions.SystemTestExpression) ResolveExpression(org.eclipse.core.internal.expressions.ResolveExpression) OrExpression(org.eclipse.core.internal.expressions.OrExpression) Expression(org.eclipse.core.expressions.Expression) IterateExpression(org.eclipse.core.internal.expressions.IterateExpression) EnablementExpression(org.eclipse.core.internal.expressions.EnablementExpression) InstanceofExpression(org.eclipse.core.internal.expressions.InstanceofExpression) CountExpression(org.eclipse.core.internal.expressions.CountExpression) WithExpression(org.eclipse.core.internal.expressions.WithExpression) NotExpression(org.eclipse.core.internal.expressions.NotExpression) AdaptExpression(org.eclipse.core.internal.expressions.AdaptExpression) EqualsExpression(org.eclipse.core.internal.expressions.EqualsExpression) TestExpression(org.eclipse.core.internal.expressions.TestExpression) EnablementExpression(org.eclipse.core.internal.expressions.EnablementExpression) SystemTestExpression(org.eclipse.core.internal.expressions.SystemTestExpression) TestExpression(org.eclipse.core.internal.expressions.TestExpression) IConfigurationElement(org.eclipse.core.runtime.IConfigurationElement) IExtensionRegistry(org.eclipse.core.runtime.IExtensionRegistry)

Example 12 with Expression

use of org.eclipse.core.expressions.Expression in project eclipse.platform.runtime by eclipse.

the class ExpressionTests method testIterateExpressionAndTrue.

public void testIterateExpressionAndTrue() throws Exception {
    final List<Object> result = new ArrayList<>();
    Expression myExpression = new Expression() {

        @Override
        public EvaluationResult evaluate(IEvaluationContext context) throws CoreException {
            result.add(context.getDefaultVariable());
            return EvaluationResult.TRUE;
        }
    };
    // $NON-NLS-1$
    IterateExpression exp = new IterateExpression("and");
    exp.add(myExpression);
    List<String> input = new ArrayList<>();
    // $NON-NLS-1$
    input.add("one");
    // $NON-NLS-1$
    input.add("two");
    EvaluationContext context = new EvaluationContext(null, input);
    assertTrue(EvaluationResult.TRUE == exp.evaluate(context));
    assertTrue(result.equals(input));
}
Also used : AndExpression(org.eclipse.core.internal.expressions.AndExpression) SystemTestExpression(org.eclipse.core.internal.expressions.SystemTestExpression) ResolveExpression(org.eclipse.core.internal.expressions.ResolveExpression) OrExpression(org.eclipse.core.internal.expressions.OrExpression) Expression(org.eclipse.core.expressions.Expression) IterateExpression(org.eclipse.core.internal.expressions.IterateExpression) EnablementExpression(org.eclipse.core.internal.expressions.EnablementExpression) InstanceofExpression(org.eclipse.core.internal.expressions.InstanceofExpression) CountExpression(org.eclipse.core.internal.expressions.CountExpression) WithExpression(org.eclipse.core.internal.expressions.WithExpression) NotExpression(org.eclipse.core.internal.expressions.NotExpression) AdaptExpression(org.eclipse.core.internal.expressions.AdaptExpression) EqualsExpression(org.eclipse.core.internal.expressions.EqualsExpression) TestExpression(org.eclipse.core.internal.expressions.TestExpression) ArrayList(java.util.ArrayList) IEvaluationContext(org.eclipse.core.expressions.IEvaluationContext) IterateExpression(org.eclipse.core.internal.expressions.IterateExpression) IEvaluationContext(org.eclipse.core.expressions.IEvaluationContext) EvaluationContext(org.eclipse.core.expressions.EvaluationContext)

Example 13 with Expression

use of org.eclipse.core.expressions.Expression in project eclipse.platform.runtime by eclipse.

the class ExpressionTests method testReadDOMExpression.

public void testReadDOMExpression() throws Exception {
    IExtensionRegistry registry = Platform.getExtensionRegistry();
    // $NON-NLS-1$ //$NON-NLS-2$
    IConfigurationElement[] ces = registry.getConfigurationElementsFor("org.eclipse.core.expressions.tests", "testParticipants");
    DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    URL url = FrameworkUtil.getBundle(ExpressionTests.class).getEntry("plugin.xml");
    Document document = builder.parse(url.openStream());
    NodeList testParticipants = document.getElementsByTagName("testParticipant");
    for (int i = 0; i < testParticipants.getLength(); i++) {
        Element elem = (Element) testParticipants.item(i);
        String id = elem.getAttribute("id");
        Element enable1 = (Element) elem.getElementsByTagName("enablement").item(0);
        // $NON-NLS-1$
        IConfigurationElement enable2 = findExtension(ces, id).getChildren("enablement")[0];
        Expression exp1 = ExpressionConverter.getDefault().perform(enable1);
        Expression exp2 = ExpressionConverter.getDefault().perform(enable2);
        assertEquals(exp1, exp2);
    }
}
Also used : DocumentBuilder(javax.xml.parsers.DocumentBuilder) AndExpression(org.eclipse.core.internal.expressions.AndExpression) SystemTestExpression(org.eclipse.core.internal.expressions.SystemTestExpression) ResolveExpression(org.eclipse.core.internal.expressions.ResolveExpression) OrExpression(org.eclipse.core.internal.expressions.OrExpression) Expression(org.eclipse.core.expressions.Expression) IterateExpression(org.eclipse.core.internal.expressions.IterateExpression) EnablementExpression(org.eclipse.core.internal.expressions.EnablementExpression) InstanceofExpression(org.eclipse.core.internal.expressions.InstanceofExpression) CountExpression(org.eclipse.core.internal.expressions.CountExpression) WithExpression(org.eclipse.core.internal.expressions.WithExpression) NotExpression(org.eclipse.core.internal.expressions.NotExpression) AdaptExpression(org.eclipse.core.internal.expressions.AdaptExpression) EqualsExpression(org.eclipse.core.internal.expressions.EqualsExpression) TestExpression(org.eclipse.core.internal.expressions.TestExpression) NodeList(org.w3c.dom.NodeList) IConfigurationElement(org.eclipse.core.runtime.IConfigurationElement) Element(org.w3c.dom.Element) Document(org.w3c.dom.Document) IConfigurationElement(org.eclipse.core.runtime.IConfigurationElement) URL(java.net.URL) IExtensionRegistry(org.eclipse.core.runtime.IExtensionRegistry)

Example 14 with Expression

use of org.eclipse.core.expressions.Expression in project eclipse.platform.runtime by eclipse.

the class DefinitionRegistry method getExpression.

/**
 * Get the expression with the id defined by an extension. This class will
 * cache the expressions when appropriate, so it's OK to always ask the
 * registry.
 *
 * @param id The unique ID of the expression definition
 * @return the expression
 * @throws CoreException If the expression cannot be found.
 */
public Expression getExpression(String id) throws CoreException {
    Expression cachedExpression = getCache().get(id);
    if (cachedExpression != null) {
        return cachedExpression;
    }
    IExtensionRegistry registry = Platform.getExtensionRegistry();
    // $NON-NLS-1$ //$NON-NLS-2$
    IConfigurationElement[] ces = registry.getConfigurationElementsFor("org.eclipse.core.expressions", "definitions");
    Expression foundExpression = null;
    for (IConfigurationElement ce : ces) {
        // $NON-NLS-1$
        String cid = ce.getAttribute("id");
        if (cid != null && cid.equals(id)) {
            try {
                foundExpression = getExpression(id, ce);
                break;
            } catch (InvalidRegistryObjectException e) {
                throw new CoreException(new ExpressionStatus(ExpressionStatus.MISSING_EXPRESSION, Messages.format(ExpressionMessages.Missing_Expression, id)));
            }
        }
    }
    if (foundExpression == null) {
        throw new CoreException(new ExpressionStatus(ExpressionStatus.MISSING_EXPRESSION, Messages.format(ExpressionMessages.Missing_Expression, id)));
    }
    return foundExpression;
}
Also used : CoreException(org.eclipse.core.runtime.CoreException) Expression(org.eclipse.core.expressions.Expression) InvalidRegistryObjectException(org.eclipse.core.runtime.InvalidRegistryObjectException) IConfigurationElement(org.eclipse.core.runtime.IConfigurationElement) IExtensionRegistry(org.eclipse.core.runtime.IExtensionRegistry)

Example 15 with Expression

use of org.eclipse.core.expressions.Expression in project dbeaver by dbeaver.

the class DebugUIInternals method createShortcutActions.

public static Map<IAction, String> createShortcutActions(Object[] selected, String mode, int accelerator) {
    Map<IAction, String> result = new LinkedHashMap<IAction, String>();
    if (selected == null) {
        return result;
    }
    List<Object> selection = Arrays.asList(selected);
    IEvaluationContext context = DebugUIPlugin.createEvaluationContext(selection);
    context.setAllowPluginActivation(true);
    // $NON-NLS-1$
    context.addVariable("selection", selection);
    List<LaunchShortcutExtension> allShortCuts = DebugUIPlugin.getDefault().getLaunchConfigurationManager().getLaunchShortcuts();
    List<LaunchShortcutExtension> filteredShortCuts = new ArrayList<LaunchShortcutExtension>();
    Iterator<LaunchShortcutExtension> iter = allShortCuts.iterator();
    while (iter.hasNext()) {
        LaunchShortcutExtension ext = iter.next();
        if (WorkbenchActivityHelper.filterItem(ext)) {
            continue;
        }
        try {
            Expression expr = ext.getContextualLaunchEnablementExpression();
            if (ext.evalEnablementExpression(context, expr)) {
                filteredShortCuts.add(ext);
            }
        } catch (CoreException e) {
            IStatus status = new Status(IStatus.ERROR, DebugUIPlugin.getUniqueIdentifier(), // $NON-NLS-1$
            "Launch shortcut '" + ext.getId() + "' enablement expression caused exception. Shortcut was removed.", // $NON-NLS-1$
            e);
            DebugUIPlugin.log(status);
            iter.remove();
        }
    }
    for (LaunchShortcutExtension ext : filteredShortCuts) {
        for (String supported : ext.getModes()) {
            if (supported.equals(mode)) {
                LaunchShortcutAction action = new LaunchShortcutAction(supported, ext);
                // $NON-NLS-1$
                action.setActionDefinitionId(ext.getId() + "." + supported);
                String helpContextId = ext.getHelpContextId();
                if (helpContextId != null) {
                    PlatformUI.getWorkbench().getHelpSystem().setHelp(action, helpContextId);
                }
                StringBuffer label = new StringBuffer();
                if (accelerator >= 0 && accelerator < 10) {
                    // add the numerical accelerator
                    label.append('&');
                    label.append(accelerator);
                    label.append(' ');
                }
                String contextLabel = ext.getContextLabel(supported);
                // replace default action label with context label if
                // specified.
                label.append((contextLabel != null) ? contextLabel : action.getText());
                action.setText(label.toString());
                String category = ext.getCategory();
                result.put(action, category);
                accelerator++;
            }
        }
    }
    return result;
}
Also used : Status(org.eclipse.core.runtime.Status) IStatus(org.eclipse.core.runtime.IStatus) IStatus(org.eclipse.core.runtime.IStatus) IAction(org.eclipse.jface.action.IAction) IEvaluationContext(org.eclipse.core.expressions.IEvaluationContext) LaunchShortcutExtension(org.eclipse.debug.internal.ui.launchConfigurations.LaunchShortcutExtension) LaunchShortcutAction(org.eclipse.debug.internal.ui.actions.LaunchShortcutAction) CoreException(org.eclipse.core.runtime.CoreException) Expression(org.eclipse.core.expressions.Expression)

Aggregations

Expression (org.eclipse.core.expressions.Expression)17 IEvaluationContext (org.eclipse.core.expressions.IEvaluationContext)11 AdaptExpression (org.eclipse.core.internal.expressions.AdaptExpression)9 AndExpression (org.eclipse.core.internal.expressions.AndExpression)9 CountExpression (org.eclipse.core.internal.expressions.CountExpression)9 EnablementExpression (org.eclipse.core.internal.expressions.EnablementExpression)9 EqualsExpression (org.eclipse.core.internal.expressions.EqualsExpression)9 InstanceofExpression (org.eclipse.core.internal.expressions.InstanceofExpression)9 IterateExpression (org.eclipse.core.internal.expressions.IterateExpression)9 NotExpression (org.eclipse.core.internal.expressions.NotExpression)9 OrExpression (org.eclipse.core.internal.expressions.OrExpression)9 ResolveExpression (org.eclipse.core.internal.expressions.ResolveExpression)9 SystemTestExpression (org.eclipse.core.internal.expressions.SystemTestExpression)9 TestExpression (org.eclipse.core.internal.expressions.TestExpression)9 WithExpression (org.eclipse.core.internal.expressions.WithExpression)9 EvaluationContext (org.eclipse.core.expressions.EvaluationContext)8 CoreException (org.eclipse.core.runtime.CoreException)8 ArrayList (java.util.ArrayList)6 IConfigurationElement (org.eclipse.core.runtime.IConfigurationElement)5 IExtensionRegistry (org.eclipse.core.runtime.IExtensionRegistry)5