Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [e4-dev] Show / hide a menu according to the perspective

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 <tom.schindl@xxxxxxxxxxxxxxx> 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 <nicolas.sarazin.pro@xxxxxxxxx
> <mailto:nicolas.sarazin.pro@xxxxxxxxx>> 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 <dirk.fauth@xxxxxxxxx
>     <mailto:dirk.fauth@xxxxxxxxx>>
>
>         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
>         <nicolas.sarazin.pro@xxxxxxxxx
>         <mailto:nicolas.sarazin.pro@xxxxxxxxx>> 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
>             e4-dev@xxxxxxxxxxx <mailto:e4-dev@xxxxxxxxxxx>
>             https://dev.eclipse.org/mailman/listinfo/e4-dev
>
>
>
>         _______________________________________________
>         e4-dev mailing list
>         e4-dev@xxxxxxxxxxx <mailto:e4-dev@xxxxxxxxxxx>
>         https://dev.eclipse.org/mailman/listinfo/e4-dev
>
>
>
>     _______________________________________________
>     e4-dev mailing list
>     e4-dev@xxxxxxxxxxx <mailto:e4-dev@xxxxxxxxxxx>
>     https://dev.eclipse.org/mailman/listinfo/e4-dev
>
>
>
>
> _______________________________________________
> e4-dev mailing list
> e4-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/e4-dev
>

_______________________________________________
e4-dev mailing list
e4-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/e4-dev


Back to the top