我正在尝试使用扩展点中的“处理程序”来激活复制命令以应对多种情况。如果我添加该条件以使其适用于单个视图,则它可以正常工作。
<extension
point="org.eclipse.ui.handlers">
<handler class="example.xyz.CopyHandler"
commandId="org.eclipse.ui.edit.copy">
<activeWhen
<with
variable="activePartId">
</with>
<equals
value="example.xyz.view1">
</equals>
</with>
</activeWhen>
</handler>
</extension>
但是当我在多种条件下使用时..
条件:
我尝试了使用此代码段,但它不起作用。 这段代码有什么问题?
<extension
point="org.eclipse.ui.handlers">
<handler
class="example.xyz.CopyHandler"
commandId="org.eclipse.ui.edit.copy">
<activeWhen>
<with
variable="activePartId">
<iterate
operator="or">
<equals
value="example.xyz.view1">
</equals>
<equals
value="example.xyz.view2">
</equals>
</iterate>
</with>
<with
variable="selection">
<count
value="1">
</count>
<iterate>
<instanceof
value="example.xyz.ICharacteristicValue">
</instanceof></iterate>
</with>
</activeWhen>
</handler>
</extension>
答案 0 :(得分:1)
<activeWhen
仅接受一个子元素-您有两个。您需要将它们与<and>
组合:
<activeWhen>
<and>
<with
variable="activePartId">
.....
</with>
<with
variable="selection">
.....
</with>
</and>
</activeWhen>