core experssion not evaluated for wisibleWhen [message #1020954] |
Tue, 19 March 2013 04:51  |
Eclipse User |
|
|
|
I'm trying to contribute to a toolbar from a plugin and I want to show or hide button depending on the active part.
My application is split in two plugins
- One describe the main windows and place the perspective stack with this model :
<?xml version="1.0" encoding="UTF-8"?>
<application:Application xmi:version="2.0"
xmi:id="_8yVlkIsTEeKgZOk1yAcXPw"
elementId="org.eclipse.e4.ide.application">
<children xsi:type="basic:TrimmedWindow" xmi:id="_8yVlkYsTEeKgZOk1yAcXPw" label="app" width="500" height="400">
<children xsi:type="advanced:PerspectiveStack" xmi:id="_UKleYIsUEeKgZOk1yAcXPw" elementId="app.perspectivestack.main"/>
<mainMenu xmi:id="_q2A-IIu8EeKBdI72k9aRrQ" elementId="app.menu.main">
<children xsi:type="menu:Menu" xmi:id="_VW9qQIx6EeKFcYjUvyvuxA" elementId="app.menu.file" label="File"/>
</mainMenu>
<trimBars xmi:id="_C3yJgIvHEeKBdI72k9aRrQ" elementId="app.trimbar.main">
<children xsi:type="menu:ToolBar" xmi:id="_fLXbcIvpEeKmo9Wj0fPtng" elementId="app.toolbar.main"/>
<children xsi:type="menu:ToolControl" xmi:id="_WsSoMIyrEeKwBKsEERioyA" elementId="app.toolcontrol.1" contributionURI="bundleclass://app/app.PerspectiveToolBar">
<tags>stretch</tags>
</children>
</trimBars>
</children>
<rootContext xmi:id="_XDTNIIuyEeKBdI72k9aRrQ" elementId="app.bindingcontext.application" name="binding context for the application"/>
<addons xmi:id="_8yVlkosTEeKgZOk1yAcXPw" elementId="org.eclipse.e4.core.commands.service" contributionURI="bundleclass://org.eclipse.e4.core.commands/org.eclipse.e4.core.commands.CommandServiceAddon"/>
<addons xmi:id="_8yVlk4sTEeKgZOk1yAcXPw" elementId="org.eclipse.e4.ui.contexts.service" contributionURI="bundleclass://org.eclipse.e4.ui.services/org.eclipse.e4.ui.services.ContextServiceAddon"/>
<addons xmi:id="_8yVllIsTEeKgZOk1yAcXPw" elementId="org.eclipse.e4.ui.bindings.service" contributionURI="bundleclass://org.eclipse.e4.ui.bindings/org.eclipse.e4.ui.bindings.BindingServiceAddon"/>
<addons xmi:id="_8yVllYsTEeKgZOk1yAcXPw" elementId="org.eclipse.e4.ui.workbench.commands.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.CommandProcessingAddon"/>
<addons xmi:id="_8yVllosTEeKgZOk1yAcXPw" elementId="org.eclipse.e4.ui.workbench.contexts.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.ContextProcessingAddon"/>
<addons xmi:id="_8yVll4sTEeKgZOk1yAcXPw" elementId="org.eclipse.e4.ui.workbench.bindings.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.swt/org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon"/>
</application:Application>
the second plugin is contributing to the main model like this :
<?xml version="1.0" encoding="ASCII"?>
<fragment:ModelFragments xmi:version="2.0" xmi:id="_hZ_ZgIvFEeKBdI72k9aRrQ">
<fragments xsi:type="fragment:StringModelFragment" xmi:id="_lusI4IvFEeKBdI72k9aRrQ" featurename="children" parentElementId="app.perspectivestack.main">
<elements xsi:type="advanced:Perspective" xmi:id="_qGPX8IvFEeKBdI72k9aRrQ" elementId="planner.perspective.planning" label="planner">
<children xsi:type="basic:PartSashContainer" xmi:id="_sGA3UIvFEeKBdI72k9aRrQ" elementId="planner.partsashcontainer.0">
<children xsi:type="basic:PartStack" xmi:id="_scfdoIvFEeKBdI72k9aRrQ" elementId="planner.partstack.editors"/>
<children xsi:type="basic:PartStack" xmi:id="_uI58IIvFEeKBdI72k9aRrQ" elementId="planner.partstack.1">
<children xsi:type="basic:Part" xmi:id="_uis8MIvFEeKBdI72k9aRrQ" elementId="planner.part.0" label="Properties"/>
</children>
</children>
<properties key="displayButton" value="true"/>
</elements>
</fragments>
<fragments xsi:type="fragment:StringModelFragment" xmi:id="_YHDcMIyOEeKFcYjUvyvuxA" featurename="commands" parentElementId="org.eclipse.e4.ide.application">
<elements xsi:type="commands:Command" xmi:id="_aUdu8IyOEeKFcYjUvyvuxA" elementId="planner.command.open" commandName="open planning">
<parameters xmi:id="_e54dEIydEeKFcYjUvyvuxA" elementId="input.uri" name="input.uri"/>
</elements>
</fragments>
<fragments xsi:type="fragment:StringModelFragment" xmi:id="_de8G4IyOEeKFcYjUvyvuxA" featurename="handlers" parentElementId="org.eclipse.e4.ide.application">
<elements xsi:type="commands:Handler" xmi:id="_fKFaEIyOEeKFcYjUvyvuxA" elementId="planner.handler.0" contributionURI="bundleclass://planner/planner.handlers.OpenPlanningHandler" command="_aUdu8IyOEeKFcYjUvyvuxA"/>
</fragments>
<fragments xsi:type="fragment:StringModelFragment" xmi:id="_P_u0IIysEeKwBKsEERioyA" featurename="children" parentElementId="app.toolbar.main">
<elements xsi:type="menu:HandledToolItem" xmi:id="_Cv_2YJBwEeKqG_6TIukAgA" elementId="planner.handledtoolitem.0" accessibilityPhrase="" label="test" tooltip="test" command="_aUdu8IyOEeKFcYjUvyvuxA">
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_Dy3ooJBwEeKqG_6TIukAgA" coreExpressionId="planner.displayButton"/>
</elements>
</fragments>
</fragment:ModelFragments>
and finally my plugin.xml contain :
<extension point="org.eclipse.core.expressions.definitions">
<definition id="planner.displayButton">
<with variable="e4ActivePart">
<instanceof value="org.eclipse.e4.ui.model.application.ui.basic.MPart">
</instanceof>
</with>
</definition>
</extension>
when I run the application everything is display correctly but doesn't matter what I put in the instanceof element of my core expression the button is always displayed.
can someone tell what I missed ? seems that the expression is never evaluated.
|
|
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04913 seconds