![Page 1: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/1.jpg)
Goulwen Le Fur – ObeoEclipseCon NA 2014
![Page 2: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/2.jpg)
Most of the Eclipse RCP developersneed to design GUIs
Thank you Captain Obvious!
![Page 3: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/3.jpg)
Fortunately, the Eclipse community can help you!
The very large ...
… and very prolific community
![Page 4: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/4.jpg)
Many presentation frameworks are proposed to Eclipse RCP developers...
Therefore a choice must be done...
![Page 5: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/5.jpg)
Lost?
Ultimately, This presentation will help
you!
![Page 6: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/6.jpg)
This presentation is...
A guide to assist you in choosing a presentation framework
Focused on the features
Structured with the same sample application
Highlighting the strengths of the frawemorks
![Page 7: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/7.jpg)
This presentation is not...
A checklist of what the frameworks do or do not
A comparative table of all the features you can imagine for a GUI
A fight
![Page 8: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/8.jpg)
First technology
Sapphire
![Page 9: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/9.jpg)
Sapphire
Creation: October 20th, 2010Site: http://www.eclipse.org/sapphire/Status: IncubationCurrent release: 0.7.1Project lead: Konstantin Komissarchik (Oracle)
![Page 10: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/10.jpg)
Outline
An GUI modelDesigned with java interfacesAnnotated with dedicated Sapphire annotations
Sapphire generates the implementations of the interfaces With a specific compilerHooked on the JDT compiler
Generated GUIs are rendered into Sapphire graphical hostsWizards, Editors...
![Page 11: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/11.jpg)
Outline (II)
User doesn't take care of GUI implementations detailsSapphire choose widgets, layouts...Choice based on the model annotations
GUIs are well integrated in Eclipse WorkbenchJFace wizards or dialogsIntegration with WTP XML editor
Automatic Model GUI ↔ bidirectional mappingGUI data are stored into the generated modelSapphire annotations can be used to define XML mapping
![Page 12: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/12.jpg)
In action...
For the sample application
![Page 13: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/13.jpg)
But what is this sample application?
I would like...A dedicated Eclipse editor to edit information about conference
I would like...A form editor, with several pages (participants, sessions, ...)
I would not like...
Waste too much time on the GUI design of course :-)
![Page 14: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/14.jpg)
Back to sapphire...
… I can easily create a model defining my conference
The most complicated part of this step was to set up the project...
![Page 15: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/15.jpg)
… and then create the sapphire descriptor file
With a nice editor :-)
![Page 16: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/16.jpg)
Finally, after some questions on the forum...
TaDaaa, I've got my conference editor
![Page 17: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/17.jpg)
Summary
What I liked...+ Good getting started tutorial+ Good framework architecture+ Good looking of the resulting GUI
What I found difficult...- Lack of a project initialization wizard- Lack of documentation for some cool features- Defining a model conforming to sapphire conventions could be a bit technical
![Page 18: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/18.jpg)
Second technology
Extended Editing Framework(EEF)
Disclamer: The speaker may be the project leader of this technology
![Page 19: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/19.jpg)
EEF
Creation: April 8th, 2009Site: http://www.eclipse.org/eef/Status: MatureCurrent release: 1.3.0Project lead: Goulwen Le Fur (Obeo)
![Page 20: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/20.jpg)
Outline
GUI modeling via EMF modelsEcore for the business modelView model for the graphical partsBinding model mapping Ecore concepts with views
Code generation from the GUI modelsGenerating all GUI artefacts required for the
applicationAn extensible architecture to customize the default behavior
Code well integrated with Eclipse WorkbenchEasy integration with properties views, wizards, editors.
![Page 21: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/21.jpg)
Oultine (II)
Focused on parametrizationUser can define the widgets used, the view layout...He can also use its own specific widgetsView and mapping reuse
Easy to useGUI generated with only a few clicksIncremental design process
![Page 22: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/22.jpg)
Back to my conference editor...
First, I must define my conference model with Ecore
Thanks to the sirius based Ecore Tools(*)
(*)Interested? Meet Cedric Wednesday @10:00 in this room
![Page 23: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/23.jpg)
Ok, then I can use the EEF initializer to create models
Here we use the EEF Architecture Initializer
![Page 24: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/24.jpg)
We have a second set of models to produce
We have another initializer for these models: the Editor model initializer
![Page 25: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/25.jpg)
I'm ready to launch the EEF generators...
And here we have a second conference editor
![Page 26: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/26.jpg)
Summary
What You will like...+ Good getting started guide+ Extensible architecture facilitating views customisation+ Good looking of the resulting GUI
What You can find difficult... - Lack of documentation for some cool features - No way to use EEF without code generation in V1
![Page 27: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/27.jpg)
About EEF v2
The EEF Team prepares a brand new version of EEF for two years now
This fully redesigned version will be highly modular and will no longer require code generation
The runtime will allow you to plug in renderer for Eclipse 3/4, SWT, JavaFX...
![Page 28: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/28.jpg)
Third technology
EMF Client Platform
![Page 29: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/29.jpg)
EMF Client Platform
Creation: August 25th, 2010Site: http://eclipse.org/ecp/Status: MatureCurrent release: 1.2.0Project leads: Jonas Helming (Eclipse Source)
Maximilian Koegel (Eclipse Source)
![Page 30: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/30.jpg)
But... Let's be more specific
![Page 31: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/31.jpg)
This session deals with EMF Forms...
A subcomponent of ECP dedicated to model editing
ECP provides other components for various features:• Collaborative editing• ...
Regarding to the topic of this session, I focused on EMF Forms
![Page 32: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/32.jpg)
Outline
EMF Forms runtime provides editing GUI for EMF models No configuration requiredDefault strategy defined for each Ecore concept
User can customize the editing viewsBy providing a view description modelCustomization mainly focused on the the view layout
![Page 33: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/33.jpg)
Outline (II)
Result can be integrated in external applicationsAPI provided to render an EMF element on a CompositeUser can choose the configuration to use for rendering
This can be used directly inside ECPUsing the provided RCP applicationRequires to include the application in ECP
![Page 34: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/34.jpg)
Let's make another conference editor;)
Good news, I can reuse my Ecore model!
Good news... for me:)
![Page 35: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/35.jpg)
The default views don't match with my expectations
Let's customize them
Hopefully I've got only some classes
![Page 36: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/36.jpg)
It's still lacking the editor
EMF Forms lets me render view on an SWT composite...
… but I want a mulitpage editor, with master/details for participants and sessions page
Ok, let's do some code
![Page 37: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/37.jpg)
After some lines of code
Here we are, my third conference editor
![Page 38: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/38.jpg)
Summary
What I liked...+ The default view production strategy+ Good integration with EMF.edit
What I found difficult...- Configuration can be verbose (1 model/concept!)- Limited Integration with external application - Not a perfect graphical rendering all the time
![Page 39: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/39.jpg)
Fourth technology
Eclipse Scout
![Page 40: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/40.jpg)
Eclipse Scout
Creation: April 7th, 2010Site: http://eclipse.org/scout/Status: MatureCurrent release: 3.9.0Project leads: Andreas Hoegger (BSI) Matthias Zimmermann (BSI)
![Page 41: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/41.jpg)
Outline
Scout is an application development framework Not only focused on the GUI part Addressing other concerns like persistence, security...
GUI part is structured by outlinesAn outline presents a set of dataForms can be attached to these outlines
Scout SDK compute a model of the applicationEasy GUI customization through assistantsVery traditional way to model GUI
![Page 42: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/42.jpg)
Outline (II)
Scout natively produce GUI with multiple renderersSWT, Swing, RAP...
Clients generated by Scout have the same logicAll necessary elements for GUI alignment are provided
by Scout runtime
![Page 43: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/43.jpg)
We're reaching the limit of the topic!
![Page 44: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/44.jpg)
Scout is more than a presentation framework
Basically, GUIs produced by Scout are intended to be used with the back ends produced by Scout
Scout is more than a presentation framework
I started the conference application but I didn't led the experimentation till the end – I focused only on the
client side
![Page 45: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/45.jpg)
Example of Scout editing form
For a conference participant
![Page 46: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/46.jpg)
Summary
What I liked...+ 1 model for multiple renderers+ Good tutorials to start+ Good management of i18n
What I found difficult...- Many configurations that could be difficult to leverage- Resulting architecture is constrained by the framework
![Page 47: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/47.jpg)
Fifth technology
Wazaabi
![Page 48: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/48.jpg)
Wazaabi
Creation: January 4th, 2012Site: http://eclipse.org/wazaabi/Status: IncubationCurrent release: ???Project lead: Olivier Moises (Generic Concept)
![Page 49: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/49.jpg)
Due to a lack of release, the wazaabi experimation was not
performed
![Page 50: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/50.jpg)
Wazaabi is a project undergoing a major restructuring, I'm confident that it will be soon released
With all the necessary documentation
![Page 51: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/51.jpg)
Summary
What I liked...+ a clean site
What I found difficult...- No release- No documentation
![Page 52: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/52.jpg)
![Page 53: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/53.jpg)
Recap
The Eclipse foundation hosts many presentation frameworks
They have different maturity levels
The choice relies on the context of your project
Always an eye on usCaptain Obvious!
![Page 54: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/54.jpg)
Recap (II)
Projects that rely on EMF to handle data should use EEF or ECPEEF (v1) has a generative approach
→ It generates a default configuration that user customize
→ The generated GUIs are intended to be integrated into existing applications
ECP (EMF Forms) has an interpreted approach → It has a default rendering strategy that user
can customize sporadically → The GUI development is more efficient if the
views are used inside the ECP platform
![Page 55: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/55.jpg)
Recap (III)
Projects out of the EMF world can use Sapphire or ScoutSapphire uses a high level GUI model
→ It generates code and takes the responsability of the technical details
→ It is also intended to be included into existing (Eclipse) applications
Scout is a global application framework → It has a very technical model → It manages all the aspects of an application
![Page 57: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/57.jpg)
Evaluate This Session
Sign-in: www.eclipsecon.org
Select session from schedule
Evaluate:
1
2
3
![Page 58: Hithhiker guide to Eclipse Presentation Frameworks Galaxy.pdf](https://reader031.vdocument.in/reader031/viewer/2022013117/586dfc521a28ab22378ba6f1/html5/thumbnails/58.jpg)
Credentials
Titlepage: Sennett, TomasP2: Chris Harrisson - http://www.flickr.com/photos/cdharrison/3973928028/P5: Lori Greig - http://www.flickr.com/photos/39585662@N00/5331407245/P8: http://en.wikipedia.org/wiki/Yogo_sapphireP12: Cellular Immunity - http://www.flickr.com/photos/58534808@N00/323527111/P18: arquera - http://www.flickr.com/photos/34145688@N00/90120985/P28: mike baird - http://www.flickr.com/photos/72825507@N00/3898808431P30: Kaysse - http://www.flickr.com/photos/29862505@N08/3129064412/P39: Ron Cogswell - http://www.flickr.com/photos/22711505@N05/7444596326/P43: joiseyshowaa- http://www.flickr.com/photos/30201239@N00/2179747557/P47: http://pixabay.com/fr/wasabinuesse-%C3%A9crous-wasabi-noyaux-141544/P49: Alan Klim - http://www.flickr.com/photos/61203681@N08/8149383268/P52: eamoncurry123 - http://www.flickr.com/photos/7159257@N04/6226070528/
Icons at pages 1, 3, 6, 7, 13, 17, 26, 38, 46, 51, 53, 54 and 55 come from The noun project: http://www.thenounproject.org
Thanks to Gabriele Fumero, Katie M Westbrook, Roger Cline, Quan Do, Ilsur Aptukov, Austin Condiff, Brennan Novak, Brian Gonzalez, Sarah Cavins and SuperAtic LABS.