Thanks to all for your answers. Nevertheless, seen the complexity to make it, I think that I am not going to show / hide the menus.
I shall use this system if the API allows its implementation simply. In my opinion, the implementation by injection seems to be a good solution. And especially, a solution simple to use ! On the other hand, the object "Trimmed Menu > Main Menu > Menu" is not associated with a class at present. 2014/1/20 Dirk Fauth <[email protected]> > So if I understand you correctly, instead of having a "Visible-When"-Core > Expression, it would be better to have a mechanism that uses DI. > > To get a picture, we could introduce a new annotation like @Visible, which > works similar to @CanExecute, so the visible state is calculated on > request. Or would you suggest to create a new service that needs to be > called manually to enable/disable the visible state? > > The @Visible annotation seems to be the approach that matches the E4 > concepts, not sure about the implementation details. :) > > > On Mon, Jan 20, 2014 at 2:01 PM, Tom Schindl > <[email protected]>wrote: > >> Just one more note: The enabled handling is working in the opposite! >> >> Tom >> >> On 20.01.14 14:00, Tom Schindl wrote: >> > Hi, >> > >> > Well the model is the backing state of the UI which is represented by >> > the visible-attribute and the renderer should act according to this >> > attribute. >> > >> > Now we have the situation that this value is calculated based upon 2 >> > informations: >> > a) the value of the attribute >> > b) the value of the expression >> > >> > The renderer need to check both of them and changes must be propagated >> > by both so that the renderer is able to update the UI. >> > >> > I would have found it more logical if the visible-when concept would >> > have been implemented by a service where you connect the visible-when >> > calculation to a certain *workbench-element* and this service would >> > simply set the visible-attribute of the model element. >> > >> > Tom >> > >> > On 20.01.14 13:08, Dirk Fauth wrote: >> >> @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] <mailto:[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]> >> >> > <mailto:[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]> >> >> > <mailto:[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]> >> >> > <mailto:[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]> >> >> <mailto:[email protected] <mailto:[email protected]>> >> >> > https://dev.eclipse.org/mailman/listinfo/e4-dev >> >> > >> >> > >> >> > >> >> > _______________________________________________ >> >> > e4-dev mailing list >> >> > [email protected] <mailto:[email protected]> >> >> <mailto:[email protected] <mailto:[email protected]>> >> >> > https://dev.eclipse.org/mailman/listinfo/e4-dev >> >> > >> >> > >> >> > >> >> > _______________________________________________ >> >> > e4-dev mailing list >> >> > [email protected] <mailto:[email protected]> >> >> <mailto:[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 >> > > > _______________________________________________ > 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
