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

Reply via email to