我正在构建一个 eclipse 插件,并且我有一个树表示,其中显示了 A 类型元素的结构(见下文)。
Class A{
List<B> children;
}
Abstract Class B{
...
}
Class C extend B{
...
}
Class D extend B{
...
}
我有一个命令,只有当三个中的选定元素是 A 的实例时才能启动。这是我正在使用的表达式。
<extension point="org.eclipse.core.expressions.definitions">
<definition id="SelectionOfA">
<with variable="selection">
<and>
<count value="1"></count>
<iterate ifEmpty="false" operator="or">
<instanceof value="A"></instanceof>
</iterate>
</and>
</with>
</definition>
</extension>
现在我想细化这个条件。我只想在选择 A 的实例并且子列表至少包含一个作为 C 实例的元素时启用该命令。我尝试保留此表达式并定义一个新表达式。只有当两个表达式都为真时,我才会启用该命令。我从上面报告的表达式开始,我尝试instanceof
用 tags替换 tag with
,iterate
但adapt
没有好的结果。
我该怎么做?