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