Menu RCP应用程序:使用相同视图更改透视图时禁用菜单
我有一个问题,我很难排除。我们有两个包含相同视图的透视图。此视图有一个基于instanceof启用的菜单。如果我从树中选择该项并右键单击,则菜单将启用,因为instanceof符合条件。如果我随后更改为具有相同视图的其他透视图,则树中的选择不会更改,但如果我右键单击所选的相同项目,则菜单将不再启用。我必须单击关闭视图并返回以再次启用菜单。下面是如何定义plugin.xml的。我认为plugin.xml很好,因为它在不改变透视图的情况下工作良好。我只需要弄清楚为什么改变透视图会刷新菜单,但不会重新检查 此外,如果切换到不包含此视图的透视图,则返回时菜单将启用Menu RCP应用程序:使用相同视图更改透视图时禁用菜单,menu,views,eclipse-rcp,perspectives,Menu,Views,Eclipse Rcp,Perspectives,我有一个问题,我很难排除。我们有两个包含相同视图的透视图。此视图有一个基于instanceof启用的菜单。如果我从树中选择该项并右键单击,则菜单将启用,因为instanceof符合条件。如果我随后更改为具有相同视图的其他透视图,则树中的选择不会更改,但如果我右键单击所选的相同项目,则菜单将不再启用。我必须单击关闭视图并返回以再次启用菜单。下面是如何定义plugin.xml的。我认为plugin.xml很好,因为它在不改变透视图的情况下工作良好。我只需要弄清楚为什么改变透视图会刷新菜单,但不会重新
<extension
point="org.eclipse.ui.commands">
<command
id="com.cerner.automation.touchstone.workflow.Modify"
name="%com.cerner.automation.touchstone.workflow.Modify.label">
</command>
问题似乎出在元素中,因为选择是为透视图中的任何选择提供程序处理的。切换透视时,选择将发生更改,菜单项将被禁用。我使用valiable activePartID将选择提供程序的计数限制为一个视图。提供的例子:
<handler
class="ru.griffo.core.handlers.EditBOHandler"
commandId="ru.scops.applications.edit">
<activeWhen>
<and>
<with
variable="activePartId">
<equals
value="ru.scops.applications.applications">
</equals>
</with>
<count
value="+">
</count>
<with
variable="selection">
<iterate
ifEmpty="false"
operator="and">
<not>
<test
property="ru.griffo.core.ui.bo.super"
value="griffo.state.State">
</test>
</not>
</iterate>
</with>
</and>
</activeWhen>
</handler>
您很可能遇到了这个错误:您使用的是哪个版本的Eclipse?我用3.7 M5修复了它。在最近的版本或3.7 M6中会发生这种情况吗?谢谢,但这并没有改变任何事情。仍然有同样的问题。在两个透视图中都是相同的视图实例是否重要?
<handler
class="ru.griffo.core.handlers.EditBOHandler"
commandId="ru.scops.applications.edit">
<activeWhen>
<and>
<with
variable="activePartId">
<equals
value="ru.scops.applications.applications">
</equals>
</with>
<count
value="+">
</count>
<with
variable="selection">
<iterate
ifEmpty="false"
operator="and">
<not>
<test
property="ru.griffo.core.ui.bo.super"
value="griffo.state.State">
</test>
</not>
</iterate>
</with>
</and>
</activeWhen>
</handler>