1

Application.e4xmi には、次の 2 つのパースペクティブがあります。

 ...  
  <children xsi:type="advanced:PerspectiveStack" xmi:id="_ySFusPeXEeKXHJPsnYiiYQ" elementId="com.myapplication.ui.perspectivestack.main">
  <children xsi:type="advanced:Perspective" xmi:id="_83bVsPeXEeKXHJPsnYiiYQ" elementId="com.myapplication.ui.perspective.testmanager" label="Test manager">
  ...
  <children xsi:type="advanced:Perspective" xmi:id="_bDA4oPeaEeKXHJPsnYiiYQ" elementId="com.myapplication.ui.perspective.configurator" label="Configurator">
  ...

および 2 つの項目を含むメイン メニュー:

<mainMenu xmi:id="_xanVgPfWEeKXHJPsnYiiYQ" elementId="com.myapplication.ui.menu.0">
  <children xsi:type="menu:HandledMenuItem" xmi:id="_22vnAPfWEeKXHJPsnYiiYQ" elementId="com.myapplication.ui.handledmenuitem.uno" label="uno" command="_LFFTsPhHEeK44MdhTvpdlg">
    <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_28cw8PfXEeKXHJPsnYiiYQ" coreExpressionId="com.myapplication.ui.perspectiveselected.testmanager"/>
  </children>
  <children xsi:type="menu:HandledMenuItem" xmi:id="_49obAPfWEeKXHJPsnYiiYQ" elementId="com.myapplication.ui.handledmenuitem.due" label="due" command="_NXT1APhHEeK44MdhTvpdlg">
    <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_ZP4lgPhHEeK44MdhTvpdlg" coreExpressionId="com.myapplication.ui.perspectiveselected.configurator"/>
  </children>
  </mainMenu>

パースペクティブ「com.myapplication.ui.perspective.testmanager」が表示されている場合、メニュー項目「com.myapplication.ui.handledmenuitem.uno」を表示する必要があります。パースペクティブ「com.myapplication.ui.perspective.configurator」が表示されている場合、メニュー項目「com.myapplication.ui.handledmenuitem.due」を表示する必要があります。

そのため、plugin.xml で次のように定義しました。

  <extension
         point="org.eclipse.core.expressions.definitions">
      <definition
            id="com.myapplication.ui.perspectiveselected.testmanager">
         <with
               variable="activeWorkbenchWindow.activePerspective">
            <equals
                  value="com.myapplication.ui.perspective.testmanager">
            </equals>
         </with>
      </definition>
   </extension>
   <extension
         point="org.eclipse.core.expressions.definitions">
      <definition
            id="com.myapplication.ui.perspectiveselected.configurator">
         <with
               variable="activeWorkbenchWindow.activePerspective">
            <equals
                  value="com.myapplication.ui.perspective.configurator">
            </equals>
         </with>
      </definition>
   </extension>

うまくいきません!! (メニュー項目は常に表示されます) 何かアイデアはありますか?

4

1 に答える 1