As described in my last post, redVoodo is a project which target is to provide an environment that supports a developer to write business applications on a very quickly and easy way. A lot of base functions like selection support, lookups,… should be provided by the framework itself.
Also the scoping of actions and menu items should be handled by redVoodo and no additional code should be required for this issue.
Scoping of actions and menu items means, that only actions and menu items that are in the scope of an active ui part should be visible. If the active ui part changes, also the visible actions and menu items should be adjusted to the current active part. In order to avoid confusion of users it is good practice to hide actions which are not required right now.
This image shows what i am talking about. The “purchasing (scoped) actions” and the “purchasing (scoped) menu items” are only visible if the purchasing framework is active.
For instance, if the inventory framework is active, no scoped actions and menu items are available. See next image.
Of course, scoping is not limited to frameworks. Also active applications can cause actions and menu items to become visible.
My current solution is well grounded and based on EMF (eclipse modeling framework). The ui is abstracted by an EMF metamodel. Instances of this metamodel (ui models based on this metamodel) are used by the core runtime to build the ui. States like active framework, active subapplication, open subapplications,… are stored in this model.
Additionally a “selection support OSGi service” was implemented. Ui parts are using the selection support to observe active ui model controller like “active framework controller” and “active sub application controller”. Based on the selections and the ui EMF model the parts are adjusting the actions and menu parts.
Since the ui is based on an EMF model I am going to write a Xtext grammar in a few week which allows the developer to define the ui model on a very very comfortable way.
Further it should be also possible to use the redVoodo Xtext grammar to change the ui during runtime.
- open an redVoodo grammar editor in eclipse
- connect to a running OSGi server
- open the currently used ui model
- modify the ui at runtime
- changes are immediatelly pushed to the ui
This implementation is a well grounded default. But since redVoodo offers a really extendable API everybody can easily write its own implementation.
The sourcecode will be available in about 2 – 4 weeks.
I have prepared a movie which shows how actions and menu items are hidden and showed again based on an active ui part. I hope you enjoy the movie.
Direct link to the movie:
If you are interested in redVoodo just follow our blogs and website.