@Pawel
According to this IMHO it should work:
http://www.vogella.com/tutorials/EclipseRCP/article.html#commandsmore_coreexpressions

I used this some time ago and the Visible-When Core Expression is working
fine so far.

@Tom
Why was it wrong to add it to the application model? The use cases for
visible-when exist. Is it just the implementation you think that is wrong?

IMHO the visible-when concept in E4 is really not easy to understand. And
you still need the plugin.xml to get it working with the application model.
It feels a bit too complicated the way it is now.

@Nicolas
You could set a value for the active perspective to the IEclipseContext as
described in the tutorial I posted above. And then let your expression
evaluate your custom value. In that case you would need to implement a
listener that reacts on perspective change so you are able to change the
value for your expression in the context.
I didn't found a special perspective change event, but as a starting point
you could try to listen for UIEvents.Perspective.TOPIC_ALL and evaluate the
current active perspective.

To be honest, I didn't try this myself, but from my understanding this
would be the first thing to try.


On Mon, Jan 20, 2014 at 12:11 PM, Tom Schindl
<[email protected]>wrote:

> I think it was wrong to add the visible-when expression to the model.
>
> Tom
>
> On 20.01.14 12:09, Paweł Doleciński wrote:
> > Hi Nicolas,
> >
> > what you need to do is to implement and register your own Visible-When
> > Expression which will look up Active Perspective. To do so, you simple
> > can inject MPerspectiveStack from which you can retrieve selected
> > perspective.
> >
> > But this is only one step. Next one is that expressions are not
> > supported if your menu item is directly placed in Application Model
> > under MenuToolbar.
> > To have it working, your menu item with visible-when expression needs to
> > be under Menu Contributions node.
> >
> > Anyway, it seems to be a bug. Either visble-when expression should be
> > evaluated if menu is somewhere in Windows node or option to set one
> > should be not available.
> >
> > Cheers,
> > Paweł.
> >
> > --
> > Pozdrawiam / Best regards
> > Paweł Doleciński
> >
> >
> > On 20 January 2014 11:57, Nicolas Sarazin <[email protected]
> > <mailto:[email protected]>> wrote:
> >
> >     Thank you for answer !
> >
> >     But :
> >
> >             MPerspective mpOffers = (MPerspective)
> >     modelService.find("fr.sogeti.e4.sogeti.perspective.vdoffers",
> >     application);
> >             MMenu mmOffers = (MMenu)
> >     modelService.find("fr.sogeti.e4.sogeti.menu.business", application);
> >             partService.switchPerspective(mpOffers);
> >             mmOffers.setEnabled(false);
> >
> >     In this code, mmOffers is null, and I think that it is bound to this
> >     bug : https://bugs.eclipse.org/bugs/show_bug.cgi?id=383403
> >
> >     I think that I can't change programatically the state of menu. No ?
> >
> >     Thank you in advance
> >
> >
> >     2014/1/20 Dirk Fauth <[email protected]
> >     <mailto:[email protected]>>
> >
> >         Hi,
> >
> >         this question was asked on the forum a while ago:
> >
> >         http://www.eclipse.org/forums/index.php/t/627845/
> >
> >
> >         There is no equivalent for that, as there is no workbenchWindow
> >         in e4. You could try to workaround that by providing your own
> >         value for the definition which is set by a event listener that
> >         reacts on perspective changes for example.
> >
> >         Greez,
> >         Dirk
> >
> >
> >         On Mon, Jan 20, 2014 at 10:32 AM, Nicolas Sarazin
> >         <[email protected]
> >         <mailto:[email protected]>> wrote:
> >
> >             Hello,
> >
> >             I use Eclipse 4.3.1 and Eclipse e4 Tools 0.14.0.
> >
> >             How can I show / hide a menu according to the current
> >             perspective ?
> >
> >             Menu : Trimmed Window -> Main Menu -> Menu
> >
> >             I looked for "Visible-When Expression", but I don't find the
> >             variable equivalent of
> >             "|activeWorkbenchWindow.activePerspective|" in e4.
> >
> >             Thanks in advance !
> >
> >             _______________________________________________
> >             e4-dev mailing list
> >             [email protected] <mailto:[email protected]>
> >             https://dev.eclipse.org/mailman/listinfo/e4-dev
> >
> >
> >
> >         _______________________________________________
> >         e4-dev mailing list
> >         [email protected] <mailto:[email protected]>
> >         https://dev.eclipse.org/mailman/listinfo/e4-dev
> >
> >
> >
> >     _______________________________________________
> >     e4-dev mailing list
> >     [email protected] <mailto:[email protected]>
> >     https://dev.eclipse.org/mailman/listinfo/e4-dev
> >
> >
> >
> >
> > _______________________________________________
> > e4-dev mailing list
> > [email protected]
> > https://dev.eclipse.org/mailman/listinfo/e4-dev
> >
>
> _______________________________________________
> e4-dev mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/e4-dev
>
_______________________________________________
e4-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/e4-dev

Reply via email to