Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Menu RCP应用程序:使用相同视图更改透视图时禁用菜单_Menu_Views_Eclipse Rcp_Perspectives - Fatal编程技术网

Menu RCP应用程序:使用相同视图更改透视图时禁用菜单

Menu RCP应用程序:使用相同视图更改透视图时禁用菜单,menu,views,eclipse-rcp,perspectives,Menu,Views,Eclipse Rcp,Perspectives,我有一个问题,我很难排除。我们有两个包含相同视图的透视图。此视图有一个基于instanceof启用的菜单。如果我从树中选择该项并右键单击,则菜单将启用,因为instanceof符合条件。如果我随后更改为具有相同视图的其他透视图,则树中的选择不会更改,但如果我右键单击所选的相同项目,则菜单将不再启用。我必须单击关闭视图并返回以再次启用菜单。下面是如何定义plugin.xml的。我认为plugin.xml很好,因为它在不改变透视图的情况下工作良好。我只需要弄清楚为什么改变透视图会刷新菜单,但不会重新

我有一个问题,我很难排除。我们有两个包含相同视图的透视图。此视图有一个基于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>