Is it declarative or model-based?
Actually it is both of them ! The key idea is to use the declarative support for building the model. As a result you can define your UI by declaration and you will get a model of your UI.
Hum, so it's not live, it's MDA?
No, it's live. That's a major difference comparing to the tradiational MDA approach which consists in generating code, in this case UI code, from a Model. In wazaabi, the UI is a live model, the same model that you have defined at the design phase. An engine, is then responsible for rendering your model as the final UI.
Why the hell, do I need a live model for UI ?
Having live model at runtime enable to avoid the generation code phase, this means that the same code is used at design and runtime. The designer is the developer. By the adapter pattern provided by EMF, any change on the model side are reflected on the UI, then you have a full control of modifying live the UI. Most interesting, a binding engine, fed with the used graphic models can make the link between the business objects and their graphical representation. It implements the link between business models and graphical models. At the end of the day, this is nothing else than a transformation between two or n models. Finally, Wazaabi enables the versionning of UI and comparison (M2M).
So what does Wazaabi change in my life?
Wazaabi might help any organisation to use its resources in a better way, make lower trained people participating to IT developments, and lower the global cost of a project by :
- Lowering the number of external resources needed
- Lowering the level of expertise needed for development
- Lowering the time spent on UI development and fixing
- Increasing the understandability of processes
- Increasing the understandability of data structure with the model representation
- Lowering the cost of knowledge transfer
- Giving an opportunity to business people to act directly on a technical point of view without accurately
OK but EMF UI is complex, isn't it?
Let's take a simple example
//create a pushButton
PushButton pushButton = WidgetsFactory.eINSTANCE.createPushButton();
pushButton.setText("Hello World");
// append the button to composite's children
list.composite.getChildren().add(pushButton);
Not so complex actually.
So, what's next?
Do you want to get more about Wazaabi? Find out what Wazaabi really is on the Framework overview corner.
Do you want to dive into the architecture and discover how it works? Get in the Technical description section.
