The currently active shell. It can be a dialog or workbench window shell.

3.2

activeWorkbenchWindowShell

org.eclipse.swt.widgets.Shell

The active workbench window shell.

3.2

activeWorkbenchWindow

org.eclipse.ui.IWorkbenchWindow

The active workbench window.

3.2

activeWorkbenchWindow.isCoolbarVisible

java.lang.Boolean

Reports coolbar visibility for the currently active workbench window.

3.3

activeWorkbenchWindow.isPerspectiveBarVisible

java.lang.Boolean

Reports perspective bar visibility for the currently active workbench window.

3.3

activeEditor

org.eclipse.ui.IEditorPart

The currently active editor. This is remembered even if the editor is not the currently active part.

3.2

activeEditorId

java.lang.String

The ID of the currently active editor. This can be used for expressions on the editor type.

3.2

activePart

org.eclipse.ui.IWorkbenchPart

The active part, which can be the same as the active editor.

3.2

activePartId

java.lang.String

The ID of the currently active part.

3.2

activeSite

org.eclipse.ui.IWorkbenchPartSite

The site of the currently active part.

3.2

selection

org.eclipse.jface.viewers.ISelection

The current global selection. It can be used in <test/> elements with org.eclipse.core.expressions.PropertyTester, in programmatic core expressions, and in 3.3 with <iterate/> and <count/> elements.

3.2

activeMenu

A java.util.Collection of java.lang.String

This is the list of IDs of the showing context menu. Examples are like #TextEditorRuler or a part ID. Most commonly used with <iterate> and <count>, and can also be used with <test> and a org.eclipse.common.expressions.PropertyTester.

3.2

activeMenuSelection

org.eclipse.jface.viewers.ISelection

This is a selection that is available while a context menu is showing. It is the selection from the selection provider used to register the context menu, usually from getSite().registerContextMenu(*). It is usually the same as the selectionvariable, but not always. This is more for legacy compatibility.

3.3

activeMenuEditorInput

org.eclipse.jface.viewers.ISelection

This is a selection that is available while a context menu is showing. It is the selection from the editor input, usually if includeEditorInput was set to true during getEditorSite().registerContextMenu(*). This is more for legacy compatibility.

3.3

activeFocusControl

org.eclipse.swt.widgets.Control

A control that has focus and has been registered with the IFocusService.

3.3

activeFocusControlId

java.lang.String

The ID of a control that has focus and has been registered with the org.eclipse.ui.swt.IFocusService.

3.3

Property Testers

The Eclipse SDK provides a couple of property testers that can be used in core expressions. The expression defines a property attribute and then takes a combination of args and a value that is tester implementation dependent. The property attribute is the combination of the namespace and property name. For example, to test an IResource name the property would be org.eclipse.core.resources.name.

A property indicating whether the file is read only (value "readOnly").

projectNature

A property indicating the project nature (value "projectNature").

persistentProperty

A property indicating a persistent property on the selected resource (value "persistentProperty"). If two arguments are given, this treats the first as the property name, and the second as the expected property value. If only one argument (or just the expected value) is given, this treats it as the property name, and simply tests for existence of the property on the resource.

projectPersistentProperty

A property indicating a persistent property on the selected resource's project. (value "projectPersistentProperty"). If two arguments are given, this treats the first as the property name, and the second as the expected property value. If only one argument (or just the expected value) is given, this treats it as the property name, and simply tests for existence of the property on the resource.

sessionProperty

A property indicating a session property on the selected resource (value "sessionProperty"). If two arguments are given, this treats the first as the property name, and the second as the expected property value. If only one argument (or just the expected value) is given, this treats it as the property name, and simply tests for existence of the property on the resource.

projectSessionProperty

A property indicating a session property on the selected resource's project. (value "projectSessionProperty"). If two arguments are given, this treats the first as the property name, and the second as the expected property value. If only one argument (or just the expected value) is given, this treats it as the property name, and simply tests for existence of the property on the resource.

A property indicating a persistent property on the selected resource's project. (value "projectPersistentProperty"). If two arguments are given, this treats the first as the property name, and the second as the expected property value. If only one argument (or just the expected value) is given, this treats it as the property name, and simply tests for existence of the property on the resource.

Expression examples

Here are some examples. I'll pretend all of the examples are deciding when a handler is active.

Basic IStructuredSelection

A view provides a structured selection through its selection provider. An example would be the InfoView in org.eclipse.ui.examples.contributions. You can browse the plugin.xml and
InfoView.java files. The InfoView provides an IStructuredSelection with 0 or more org.eclipse.ui.examples.contributions.model.Person.

When using the default variable, you must treat it as an java.util.Collection. That means using <count> or <iterate>

New Core Expressions in 3.3

In 3.3 there were 2 additions to the core expressions framework.

count and iterate

Count and iterate have always worked against java.util.Collection. The <count/> and <iterate> elements can now be used on any variable that adapts to org.eclipse.core.expressions.ICountable and org.eclipse.core.expressions.IIterable or implements the interfaces directly. It wasn't possible to use the java 1.5 constructs for iterable.

The workbench provides an adapter for ISelection and IStructuredSelection.

definitions

The org.eclipse.core.expressions.definitions extension point was introduced. You can create core expression definitions, and then reference them from other core expressions.