布尔表达式和操作过滤器

当插件使用菜单扩展点之一将操作添加至工作台 UI 时, 它可以指定菜单项在菜单中启用(或可视)的条件。 除了提供简单启用条件(如选择计数和选择类)之外,插件还可以使用布尔表达式来启用操作。

布尔表达式

布尔表达式可以包含简单布尔运算符(NOT、AND 和 OR)以及可以对下列条件求值的预定义表达式:

例如,下列代码片段表示可以用于操作集中试探性操作的启用表达式:

<action id="org.eclipse.examples.actionEnablement.class"
       label="Red Element"
            menubarPath="additions"
       class="org.eclipse.examples.actionEnablement.ObjectTestAction">
       <enablement>
 <and>
   <objectClass name="org.eclipse.examples.actionEnablement.TestElement"/>
           <objectState name="name" value="red"/>
 </and>
       </enablement>
</action>
<action id="org.eclipse.examples.actionEnablement.property"
       label="Property"
            menubarPath="additions"
       class="org.eclipse.examples.actionEnablement.PropertyTestAction">
       <enablement>
           <systemProperty name="MyTestProperty" value="puppy"/>
       </enablement>
</action>
<action id="org.eclipse.examples.actionEnablement.pluginState"
       label="Installed"
            menubarPath="additions"
       class="org.eclipse.examples.actionEnablement.PluginTestAction">
       <enablement>
           <pluginState id="x.y.z.anotherPlugin" value="installed"/> 
       </enablement>
</action>

有关这些表达式的更详细的样本和 XML 的完整的描述, 参见操作表达式

下表列示扩展点,它们添加操作并总结可以如何使用 XML 标记属性和布尔表达式来影响启用。

扩展点名称

影响启用的属性

布尔表达式

viewActions

enablesFor — 指定要启用操作所必须满足的选择计数

选择 — 选择的对象必须子类化或实现才能启用操作的类

选择名称 — 可以应用于选择中的各个对象的通配符过滤器。

启用 — 布尔表达式。

应用启用表达式前,必须满足选择名称enablesFor

editorActions

enablesFor — 指定要启用操作所必须满足的选择计数

选择 — 选择的对象必须子类化或实现才能启用操作的类

选择名称 — 可以应用于选择中的各个对象的通配符过滤器。

 

启用 — 布尔表达式。

应用启用表达式前,必须满足选择名称enablesFor

popupMenus

(仅适用于对象添加项。)

objectClass — 指定选择中的各个对象必须子类化或实现的类

(适用于对象和查看器添加项)

enablesFor — 指定要启用操作所必须满足的选择计数

选择 — 选择的对象必须子类化或实现才能启用操作的类

选择名称 — 可以应用于选择中的各个对象的通配符过滤器。

 

可视性 — 布尔表达式。

应用启用表达式前,必须满足选择名称enablesFor

 

actionSets

enablesFor — 指定要启用操作所必须满足的选择计数

选择 — 选择的对象必须子类化或实现才能启用操作的类

选择名称 — 可以应用于选择中的各个对象的通配符过滤器。

 

启用 — 布尔表达式。

应用启用表达式前,必须满足选择名称enablesFor

 

Copyright IBM Corp. and others 2000,2002.