EMF Parsley allows for easy and straightforward UI building starting from EMF Models; it provides a set of reusable UI components (trees, tables, forms, editors), which are completely customizable, and an Xtext/Xbase based DSL editor for defining/customizing the UI components, which then can be used by your application with few lines of code.
Here is why you should use it in your projects:
- it is very lightweight (it just leverages EMF.Edit layer, Xtext for the DSL and little more) and can be added to existing projects with minimum impact
- it provides out-of-the-box integrations with XMI, Teneo and CDO persistence implementations (it is however possible - and super easy - to provide your own I/O services)
- it uses Dependency Injection (via Google Guice) instead of Extension Point mechanism
- it ships with an Eclipse/JDT integrated DSL with rich tooling and a static type system
- it is generation-code oriented (debuggable!) instead of using a reflective approach (no bad runtime surprises). This also guarantees seamlessly upgrading when new versions are released.
- thanks to the out-of-the-box RAP integration it allows developers to build Web application with the same Eclipse RCP technology stack used for desktop (honouring the web/desktop ‘single-sourcing’ RAP pattern)
With respect to existing similar frameworks, we aim at static type system checks (avoiding runtime errors typical of reflective approaches) and we make it easy to debug possible problems (since the DSL can be debugged, in contrast to reflective approaches). Moreover, we honour existing .edit plugins, and this makes it easy to incrementally/partially migrate an existing EMF project to EMF Parsley.
In this presentation, mostly a live demo, you will see how easy is to get UI components out of an EMF model and also how to quickly customize them with the DSL.
This one is an enhanced version of the EclipseCon France 2016 talk, which received many (all positive) feedbacks. Here we will show the new EMF Parsley features, among which there is the out-of-the-box EMF validation errors showed in UI components.