SlideShare une entreprise Scribd logo
1  sur  58
Télécharger pour lire hors ligne
Goulwen Le Fur – Obeo
EclipseCon NA 2014
Most of the Eclipse RCP developers
need to design GUIs
Thank you
Captain Obvious!
Fortunately,
the Eclipse community can help you!
The very large ...
… and very prolific community
Many presentation frameworks are
proposed to Eclipse RCP developers...
Therefore a choice must be done...
Lost?
Ultimately,
This presentation will help
you!
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
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
First technology
Sapphire
Sapphire
Creation: October 20th, 2010
Site: http://www.eclipse.org/sapphire/
Status: Incubation
Current release: 0.7.1
Project lead: Konstantin Komissarchik (Oracle)
Outline
An GUI model
Designed with java interfaces
Annotated with dedicated Sapphire annotations
Sapphire generates the implementations of the interfaces
With a specific compiler
Hooked on the JDT compiler
Generated GUIs are rendered into Sapphire graphical hosts
Wizards, Editors...
Outline (II)
User doesn't take care of GUI implementations details
Sapphire choose widgets, layouts...
Choice based on the model annotations
GUIs are well integrated in Eclipse Workbench
JFace wizards or dialogs
Integration with WTP XML editor
Automatic Model GUI↔ bidirectional mapping
GUI data are stored into the generated model
Sapphire annotations can be used to define XML mapping
In action...
For the sample application
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 :-)
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...
… and then create the sapphire descriptor file
With a nice editor :-) 
Finally, after some questions on the forum...
TaDaaa, I've got my conference editor
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
Second technology
Extended Editing Framework
(EEF)
Disclamer: The speaker may be the project leader of this technology
EEF
Creation: April 8th, 2009
Site: http://www.eclipse.org/eef/
Status: Mature
Current release: 1.3.0
Project lead: Goulwen Le Fur (Obeo)
Outline
GUI modeling via EMF models
Ecore for the business model
View model for the graphical parts
Binding model mapping Ecore concepts with views
Code generation from the GUI models
Generating all GUI artefacts required for the
application
An extensible architecture to customize the default
behavior
Code well integrated with Eclipse Workbench
Easy integration with properties views, wizards, editors.
Oultine (II)
Focused on parametrization
User can define the widgets used, the view layout...
He can also use its own specific widgets
View and mapping reuse
Easy to use
GUI generated with only a few clicks
Incremental design process
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
Ok, then I can use the EEF initializer to create models
Here we use the EEF Architecture Initializer
We have a second set of models to produce
We have another initializer for these models: the Editor model initializer
I'm ready to launch the EEF generators...
And here we have a second conference editor
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
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...
Third technology
EMF Client Platform
EMF Client Platform
Creation: August 25th, 2010
Site: http://eclipse.org/ecp/
Status: Mature
Current release: 1.2.0
Project leads: Jonas Helming (Eclipse Source)
Maximilian Koegel (Eclipse Source)
But... Let's be more specific
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
Outline
EMF Forms runtime provides editing GUI for EMF models
No configuration required
Default strategy defined for each Ecore concept
User can customize the editing views
By providing a view description model
Customization mainly focused on the the view layout
Outline (II)
Result can be integrated in external applications
API provided to render an EMF element on a Composite
User can choose the configuration to use for rendering
This can be used directly inside ECP
Using the provided RCP application
Requires to include the application in ECP
Let's make another conference editor;)
Good news, I can reuse my Ecore model!
Good news... for me:)
The default views don't match with my expectations
Let's customize them
Hopefully I've got only some classes
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
After some lines of code
Here we are, my third conference editor
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
Fourth technology
Eclipse Scout
Eclipse Scout
Creation: April 7th, 2010
Site: http://eclipse.org/scout/
Status: Mature
Current release: 3.9.0
Project leads: Andreas Hoegger (BSI)
Matthias Zimmermann (BSI)
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 outlines
An outline presents a set of data
Forms can be attached to these outlines
Scout SDK compute a model of the application
Easy GUI customization through assistants
Very traditional way to model GUI
Outline (II)
Scout natively produce GUI with multiple renderers
SWT, Swing, RAP...
Clients generated by Scout have the same logic
All necessary elements for GUI alignment are provided
by Scout runtime
We're reaching the limit of the topic!
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
Example of Scout editing form
For a conference participant
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
Fifth technology
Wazaabi
Wazaabi
Creation: January 4th, 2012
Site: http://eclipse.org/wazaabi/
Status: Incubation
Current release: ???
Project lead: Olivier Moises (Generic Concept)
Due to a lack of release, the
wazaabi experimation was not
performed
Wazaabi is a project undergoing a major restructuring,
I'm confident that it will be soon released
With all the necessary documentation
Summary
What I liked...
+ a clean site
What I found difficult...
- No release
- No documentation
Hithhiker guide to eclipse presentation frameworks galaxy
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 us
Captain Obvious!
Recap (II)
Projects that rely on EMF to handle data should
use EEF or ECP
EEF (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
Recap (III)
Projects out of the EMF world can use Sapphire or
Scout
Sapphire 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
Thanks!
Goulwen Le Fur – goulwen.lefur@obeo.fr
Evaluate This Session
Sign-in: www.eclipsecon.org
Select session from schedule
Evaluate:
1
2
3
Credentials
Titlepage: Sennett, Tomas
P2: 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_sapphire
P12: 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/3898808431
P30: 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.

Contenu connexe

Tendances

Developing maintainable Cordova applications
Developing maintainable Cordova applicationsDeveloping maintainable Cordova applications
Developing maintainable Cordova applicationsIvano Malavolta
 
OSCON Titanium Tutorial
OSCON Titanium TutorialOSCON Titanium Tutorial
OSCON Titanium TutorialKevin Whinnery
 
Common Client Rich Client Platforms
Common Client   Rich Client PlatformsCommon Client   Rich Client Platforms
Common Client Rich Client PlatformsGeertjan Wielenga
 
The Business of Microsoft Silverlight
The Business of Microsoft SilverlightThe Business of Microsoft Silverlight
The Business of Microsoft Silverlightgoodfriday
 
Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?NIIT India
 
Uml to code with acceleo
Uml to code with acceleoUml to code with acceleo
Uml to code with acceleoTarun Telang
 
Does The Delphi IDE Narrow You? Extend It! - ITDevConX European Delphi Confer...
Does The Delphi IDE Narrow You? Extend It! - ITDevConX European Delphi Confer...Does The Delphi IDE Narrow You? Extend It! - ITDevConX European Delphi Confer...
Does The Delphi IDE Narrow You? Extend It! - ITDevConX European Delphi Confer...Marco Breveglieri
 

Tendances (10)

Developing maintainable Cordova applications
Developing maintainable Cordova applicationsDeveloping maintainable Cordova applications
Developing maintainable Cordova applications
 
OSCON Titanium Tutorial
OSCON Titanium TutorialOSCON Titanium Tutorial
OSCON Titanium Tutorial
 
Common Client Rich Client Platforms
Common Client   Rich Client PlatformsCommon Client   Rich Client Platforms
Common Client Rich Client Platforms
 
The Business of Microsoft Silverlight
The Business of Microsoft SilverlightThe Business of Microsoft Silverlight
The Business of Microsoft Silverlight
 
Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?
 
Java1 in mumbai
Java1 in mumbaiJava1 in mumbai
Java1 in mumbai
 
Uml to code with acceleo
Uml to code with acceleoUml to code with acceleo
Uml to code with acceleo
 
Does The Delphi IDE Narrow You? Extend It! - ITDevConX European Delphi Confer...
Does The Delphi IDE Narrow You? Extend It! - ITDevConX European Delphi Confer...Does The Delphi IDE Narrow You? Extend It! - ITDevConX European Delphi Confer...
Does The Delphi IDE Narrow You? Extend It! - ITDevConX European Delphi Confer...
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
J introtojava1-pdf
J introtojava1-pdfJ introtojava1-pdf
J introtojava1-pdf
 

En vedette

Témoignage client Zenika
Témoignage client ZenikaTémoignage client Zenika
Témoignage client ZenikaEclipseDayParis
 
Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...
Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...
Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...tamarmot
 
Eclipse RCP Overview @ Rheinjug
Eclipse RCP Overview @ RheinjugEclipse RCP Overview @ Rheinjug
Eclipse RCP Overview @ RheinjugLars Vogel
 
Eclipse RCP outside of Eclipse IDE - Gradle to the rescue!
Eclipse RCP outside of Eclipse IDE - Gradle to the rescue!Eclipse RCP outside of Eclipse IDE - Gradle to the rescue!
Eclipse RCP outside of Eclipse IDE - Gradle to the rescue!Michał Ćmil
 
Technologies pour Clients Riches
Technologies pour Clients RichesTechnologies pour Clients Riches
Technologies pour Clients RichesDavid Sciamma
 
Introduction To Eclipse RCP
Introduction To Eclipse RCPIntroduction To Eclipse RCP
Introduction To Eclipse RCPwhbath
 
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!melbats
 

En vedette (8)

Témoignage client Zenika
Témoignage client ZenikaTémoignage client Zenika
Témoignage client Zenika
 
Eclipse RCP
Eclipse RCPEclipse RCP
Eclipse RCP
 
Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...
Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...
Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...
 
Eclipse RCP Overview @ Rheinjug
Eclipse RCP Overview @ RheinjugEclipse RCP Overview @ Rheinjug
Eclipse RCP Overview @ Rheinjug
 
Eclipse RCP outside of Eclipse IDE - Gradle to the rescue!
Eclipse RCP outside of Eclipse IDE - Gradle to the rescue!Eclipse RCP outside of Eclipse IDE - Gradle to the rescue!
Eclipse RCP outside of Eclipse IDE - Gradle to the rescue!
 
Technologies pour Clients Riches
Technologies pour Clients RichesTechnologies pour Clients Riches
Technologies pour Clients Riches
 
Introduction To Eclipse RCP
Introduction To Eclipse RCPIntroduction To Eclipse RCP
Introduction To Eclipse RCP
 
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
 

Similaire à Hithhiker guide to eclipse presentation frameworks galaxy

Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview Lars Vogel
 
What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !Cédric Brun
 
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the FutureEclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the FutureTonny Madsen
 
EEF You Want Sexy Properties ...
EEF You Want Sexy Properties ...EEF You Want Sexy Properties ...
EEF You Want Sexy Properties ...glefur
 
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application PlatformEclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application PlatformTonny Madsen
 
Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)Mikkel Flindt Heisterberg
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformNuxeo
 
Sirius Role Playing Game - Build diagram, table and tree editors in 20 minutes
Sirius Role Playing Game  - Build diagram, table and tree editors in 20 minutesSirius Role Playing Game  - Build diagram, table and tree editors in 20 minutes
Sirius Role Playing Game - Build diagram, table and tree editors in 20 minutesCédric Brun
 
Run your Java apps on Cloud Foundry
Run your Java apps on Cloud FoundryRun your Java apps on Cloud Foundry
Run your Java apps on Cloud FoundryAndy Piper
 
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)jaxLondonConference
 
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Mikkel Flindt Heisterberg
 
Eclipse IDE and Platform news on Fosdem 2020
Eclipse IDE and Platform news on Fosdem 2020Eclipse IDE and Platform news on Fosdem 2020
Eclipse IDE and Platform news on Fosdem 2020Lars Vogel
 
EclipseCon Fr 2018 - Modeling tools go up to the cloud…
EclipseCon Fr 2018 - Modeling tools go up to the cloud…EclipseCon Fr 2018 - Modeling tools go up to the cloud…
EclipseCon Fr 2018 - Modeling tools go up to the cloud…melbats
 
Eclipse platform news and how to contribute to the Eclipse Open Source project
Eclipse platform news and how to contribute to the Eclipse Open Source projectEclipse platform news and how to contribute to the Eclipse Open Source project
Eclipse platform news and how to contribute to the Eclipse Open Source projectLars Vogel
 
Put the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight SessionPut the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight SessionObeo
 
Overview of Eclipse technologies
Overview of Eclipse technologiesOverview of Eclipse technologies
Overview of Eclipse technologiesPT.JUG
 
Ordina SOFTC Presentation - TFS and JAVA, better together
Ordina SOFTC Presentation - TFS and JAVA, better togetherOrdina SOFTC Presentation - TFS and JAVA, better together
Ordina SOFTC Presentation - TFS and JAVA, better togetherOrdina Belgium
 
Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++Minko3D
 

Similaire à Hithhiker guide to eclipse presentation frameworks galaxy (20)

Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
 
What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !
 
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the FutureEclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
 
EEF You Want Sexy Properties ...
EEF You Want Sexy Properties ...EEF You Want Sexy Properties ...
EEF You Want Sexy Properties ...
 
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application PlatformEclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
 
Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platform
 
Sirius Role Playing Game - Build diagram, table and tree editors in 20 minutes
Sirius Role Playing Game  - Build diagram, table and tree editors in 20 minutesSirius Role Playing Game  - Build diagram, table and tree editors in 20 minutes
Sirius Role Playing Game - Build diagram, table and tree editors in 20 minutes
 
Run your Java apps on Cloud Foundry
Run your Java apps on Cloud FoundryRun your Java apps on Cloud Foundry
Run your Java apps on Cloud Foundry
 
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
 
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)
 
Eclipse IDE and Platform news on Fosdem 2020
Eclipse IDE and Platform news on Fosdem 2020Eclipse IDE and Platform news on Fosdem 2020
Eclipse IDE and Platform news on Fosdem 2020
 
EclipseCon Fr 2018 - Modeling tools go up to the cloud…
EclipseCon Fr 2018 - Modeling tools go up to the cloud…EclipseCon Fr 2018 - Modeling tools go up to the cloud…
EclipseCon Fr 2018 - Modeling tools go up to the cloud…
 
Eclipse platform news and how to contribute to the Eclipse Open Source project
Eclipse platform news and how to contribute to the Eclipse Open Source projectEclipse platform news and how to contribute to the Eclipse Open Source project
Eclipse platform news and how to contribute to the Eclipse Open Source project
 
Eclipse
EclipseEclipse
Eclipse
 
Put the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight SessionPut the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight Session
 
Overview of Eclipse technologies
Overview of Eclipse technologiesOverview of Eclipse technologies
Overview of Eclipse technologies
 
Ordina SOFTC Presentation - TFS and JAVA, better together
Ordina SOFTC Presentation - TFS and JAVA, better togetherOrdina SOFTC Presentation - TFS and JAVA, better together
Ordina SOFTC Presentation - TFS and JAVA, better together
 
Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++
 
What's new in p2 (2009)?
What's new in p2 (2009)?What's new in p2 (2009)?
What's new in p2 (2009)?
 

Plus de glefur

SiriusCon2016 - Let's talk about your future sirius project
SiriusCon2016 - Let's talk about your future sirius projectSiriusCon2016 - Let's talk about your future sirius project
SiriusCon2016 - Let's talk about your future sirius projectglefur
 
Acceleo to generate jee applications
Acceleo to generate jee applicationsAcceleo to generate jee applications
Acceleo to generate jee applicationsglefur
 
Ece2011 ifp obeo
Ece2011 ifp obeoEce2011 ifp obeo
Ece2011 ifp obeoglefur
 
Emf community, time for moving on e4 thanks to eef2
Emf community, time for moving on e4 thanks to eef2Emf community, time for moving on e4 thanks to eef2
Emf community, time for moving on e4 thanks to eef2glefur
 
Eclipse4 et acceleo
Eclipse4 et acceleoEclipse4 et acceleo
Eclipse4 et acceleoglefur
 
Eef 1.0 for eclipse indigo
Eef 1.0 for eclipse indigoEef 1.0 for eclipse indigo
Eef 1.0 for eclipse indigoglefur
 
EEF past, present and future
EEF past, present and futureEEF past, present and future
EEF past, present and futureglefur
 
09 Eef Powered By Acceleo Mtl Acceleo Mtl ... And Punishment! Obeo
09   Eef Powered By Acceleo Mtl   Acceleo Mtl ... And Punishment!    Obeo09   Eef Powered By Acceleo Mtl   Acceleo Mtl ... And Punishment!    Obeo
09 Eef Powered By Acceleo Mtl Acceleo Mtl ... And Punishment! Obeoglefur
 

Plus de glefur (8)

SiriusCon2016 - Let's talk about your future sirius project
SiriusCon2016 - Let's talk about your future sirius projectSiriusCon2016 - Let's talk about your future sirius project
SiriusCon2016 - Let's talk about your future sirius project
 
Acceleo to generate jee applications
Acceleo to generate jee applicationsAcceleo to generate jee applications
Acceleo to generate jee applications
 
Ece2011 ifp obeo
Ece2011 ifp obeoEce2011 ifp obeo
Ece2011 ifp obeo
 
Emf community, time for moving on e4 thanks to eef2
Emf community, time for moving on e4 thanks to eef2Emf community, time for moving on e4 thanks to eef2
Emf community, time for moving on e4 thanks to eef2
 
Eclipse4 et acceleo
Eclipse4 et acceleoEclipse4 et acceleo
Eclipse4 et acceleo
 
Eef 1.0 for eclipse indigo
Eef 1.0 for eclipse indigoEef 1.0 for eclipse indigo
Eef 1.0 for eclipse indigo
 
EEF past, present and future
EEF past, present and futureEEF past, present and future
EEF past, present and future
 
09 Eef Powered By Acceleo Mtl Acceleo Mtl ... And Punishment! Obeo
09   Eef Powered By Acceleo Mtl   Acceleo Mtl ... And Punishment!    Obeo09   Eef Powered By Acceleo Mtl   Acceleo Mtl ... And Punishment!    Obeo
09 Eef Powered By Acceleo Mtl Acceleo Mtl ... And Punishment! Obeo
 

Dernier

BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptx
BusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptxBusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptx
BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptxAGATSoftware
 
Mobile App Development process | Expert Tips
Mobile App Development process | Expert TipsMobile App Development process | Expert Tips
Mobile App Development process | Expert Tipsmichealwillson701
 
Mobile App Development company Houston
Mobile  App  Development  company HoustonMobile  App  Development  company Houston
Mobile App Development company Houstonjennysmithusa549
 
MUT4SLX: Extensions for Mutation Testing of Stateflow Models
MUT4SLX: Extensions for Mutation Testing of Stateflow ModelsMUT4SLX: Extensions for Mutation Testing of Stateflow Models
MUT4SLX: Extensions for Mutation Testing of Stateflow ModelsUniversity of Antwerp
 
MinionLabs_Mr. Gokul Srinivas_Young Entrepreneur
MinionLabs_Mr. Gokul Srinivas_Young EntrepreneurMinionLabs_Mr. Gokul Srinivas_Young Entrepreneur
MinionLabs_Mr. Gokul Srinivas_Young EntrepreneurPriyadarshini T
 
renewable energy renewable energy renewable energy renewable energy
renewable energy renewable energy renewable energy  renewable energyrenewable energy renewable energy renewable energy  renewable energy
renewable energy renewable energy renewable energy renewable energyjeyasrig
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsconfluent
 
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxCYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxBarakaMuyengi
 
Building Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to startBuilding Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to startMaxim Salnikov
 
8 Steps to Build a LangChain RAG Chatbot.
8 Steps to Build a LangChain RAG Chatbot.8 Steps to Build a LangChain RAG Chatbot.
8 Steps to Build a LangChain RAG Chatbot.Ritesh Kanjee
 
Unlocking AI: Navigating Open Source vs. Commercial Frontiers
Unlocking AI:Navigating Open Source vs. Commercial FrontiersUnlocking AI:Navigating Open Source vs. Commercial Frontiers
Unlocking AI: Navigating Open Source vs. Commercial FrontiersRaphaël Semeteys
 
Technical improvements. Reasons. Methods. Estimations. CJ
Technical improvements.  Reasons. Methods. Estimations. CJTechnical improvements.  Reasons. Methods. Estimations. CJ
Technical improvements. Reasons. Methods. Estimations. CJpolinaucc
 
8 key point on optimizing web hosting services in your business.pdf
8 key point on optimizing web hosting services in your business.pdf8 key point on optimizing web hosting services in your business.pdf
8 key point on optimizing web hosting services in your business.pdfOffsiteNOC
 
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...telebusocialmarketin
 
VuNet software organisation powerpoint deck
VuNet software organisation powerpoint deckVuNet software organisation powerpoint deck
VuNet software organisation powerpoint deckNaval Singh
 
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...Splashtop Inc
 
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...MyFAA
 
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...Maxim Salnikov
 
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...jackiepotts6
 

Dernier (20)

BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptx
BusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptxBusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptx
BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptx
 
Mobile App Development process | Expert Tips
Mobile App Development process | Expert TipsMobile App Development process | Expert Tips
Mobile App Development process | Expert Tips
 
Mobile App Development company Houston
Mobile  App  Development  company HoustonMobile  App  Development  company Houston
Mobile App Development company Houston
 
MUT4SLX: Extensions for Mutation Testing of Stateflow Models
MUT4SLX: Extensions for Mutation Testing of Stateflow ModelsMUT4SLX: Extensions for Mutation Testing of Stateflow Models
MUT4SLX: Extensions for Mutation Testing of Stateflow Models
 
MinionLabs_Mr. Gokul Srinivas_Young Entrepreneur
MinionLabs_Mr. Gokul Srinivas_Young EntrepreneurMinionLabs_Mr. Gokul Srinivas_Young Entrepreneur
MinionLabs_Mr. Gokul Srinivas_Young Entrepreneur
 
renewable energy renewable energy renewable energy renewable energy
renewable energy renewable energy renewable energy  renewable energyrenewable energy renewable energy renewable energy  renewable energy
renewable energy renewable energy renewable energy renewable energy
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insights
 
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxCYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
 
Building Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to startBuilding Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to start
 
8 Steps to Build a LangChain RAG Chatbot.
8 Steps to Build a LangChain RAG Chatbot.8 Steps to Build a LangChain RAG Chatbot.
8 Steps to Build a LangChain RAG Chatbot.
 
Unlocking AI: Navigating Open Source vs. Commercial Frontiers
Unlocking AI:Navigating Open Source vs. Commercial FrontiersUnlocking AI:Navigating Open Source vs. Commercial Frontiers
Unlocking AI: Navigating Open Source vs. Commercial Frontiers
 
Technical improvements. Reasons. Methods. Estimations. CJ
Technical improvements.  Reasons. Methods. Estimations. CJTechnical improvements.  Reasons. Methods. Estimations. CJ
Technical improvements. Reasons. Methods. Estimations. CJ
 
8 key point on optimizing web hosting services in your business.pdf
8 key point on optimizing web hosting services in your business.pdf8 key point on optimizing web hosting services in your business.pdf
8 key point on optimizing web hosting services in your business.pdf
 
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
 
VuNet software organisation powerpoint deck
VuNet software organisation powerpoint deckVuNet software organisation powerpoint deck
VuNet software organisation powerpoint deck
 
20140812 - OBD2 Solution
20140812 - OBD2 Solution20140812 - OBD2 Solution
20140812 - OBD2 Solution
 
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
 
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
 
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...
 
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
 

Hithhiker guide to eclipse presentation frameworks galaxy

  • 1. Goulwen Le Fur – Obeo EclipseCon NA 2014
  • 2. Most of the Eclipse RCP developers need to design GUIs Thank you Captain Obvious!
  • 3. Fortunately, the Eclipse community can help you! The very large ... … and very prolific community
  • 4. Many presentation frameworks are proposed to Eclipse RCP developers... Therefore a choice must be done...
  • 6. 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
  • 7. 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
  • 9. Sapphire Creation: October 20th, 2010 Site: http://www.eclipse.org/sapphire/ Status: Incubation Current release: 0.7.1 Project lead: Konstantin Komissarchik (Oracle)
  • 10. Outline An GUI model Designed with java interfaces Annotated with dedicated Sapphire annotations Sapphire generates the implementations of the interfaces With a specific compiler Hooked on the JDT compiler Generated GUIs are rendered into Sapphire graphical hosts Wizards, Editors...
  • 11. Outline (II) User doesn't take care of GUI implementations details Sapphire choose widgets, layouts... Choice based on the model annotations GUIs are well integrated in Eclipse Workbench JFace wizards or dialogs Integration with WTP XML editor Automatic Model GUI↔ bidirectional mapping GUI data are stored into the generated model Sapphire annotations can be used to define XML mapping
  • 12. In action... For the sample application
  • 13. 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 :-)
  • 14. 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...
  • 15. … and then create the sapphire descriptor file With a nice editor :-) 
  • 16. Finally, after some questions on the forum... TaDaaa, I've got my conference editor
  • 17. 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
  • 18. Second technology Extended Editing Framework (EEF) Disclamer: The speaker may be the project leader of this technology
  • 19. EEF Creation: April 8th, 2009 Site: http://www.eclipse.org/eef/ Status: Mature Current release: 1.3.0 Project lead: Goulwen Le Fur (Obeo)
  • 20. Outline GUI modeling via EMF models Ecore for the business model View model for the graphical parts Binding model mapping Ecore concepts with views Code generation from the GUI models Generating all GUI artefacts required for the application An extensible architecture to customize the default behavior Code well integrated with Eclipse Workbench Easy integration with properties views, wizards, editors.
  • 21. Oultine (II) Focused on parametrization User can define the widgets used, the view layout... He can also use its own specific widgets View and mapping reuse Easy to use GUI generated with only a few clicks Incremental design process
  • 22. 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
  • 23. Ok, then I can use the EEF initializer to create models Here we use the EEF Architecture Initializer
  • 24. We have a second set of models to produce We have another initializer for these models: the Editor model initializer
  • 25. I'm ready to launch the EEF generators... And here we have a second conference editor
  • 26. 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
  • 27. 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...
  • 29. EMF Client Platform Creation: August 25th, 2010 Site: http://eclipse.org/ecp/ Status: Mature Current release: 1.2.0 Project leads: Jonas Helming (Eclipse Source) Maximilian Koegel (Eclipse Source)
  • 30. But... Let's be more specific
  • 31. 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
  • 32. Outline EMF Forms runtime provides editing GUI for EMF models No configuration required Default strategy defined for each Ecore concept User can customize the editing views By providing a view description model Customization mainly focused on the the view layout
  • 33. Outline (II) Result can be integrated in external applications API provided to render an EMF element on a Composite User can choose the configuration to use for rendering This can be used directly inside ECP Using the provided RCP application Requires to include the application in ECP
  • 34. Let's make another conference editor;) Good news, I can reuse my Ecore model! Good news... for me:)
  • 35. The default views don't match with my expectations Let's customize them Hopefully I've got only some classes
  • 36. 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
  • 37. After some lines of code Here we are, my third conference editor
  • 38. 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
  • 40. Eclipse Scout Creation: April 7th, 2010 Site: http://eclipse.org/scout/ Status: Mature Current release: 3.9.0 Project leads: Andreas Hoegger (BSI) Matthias Zimmermann (BSI)
  • 41. 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 outlines An outline presents a set of data Forms can be attached to these outlines Scout SDK compute a model of the application Easy GUI customization through assistants Very traditional way to model GUI
  • 42. Outline (II) Scout natively produce GUI with multiple renderers SWT, Swing, RAP... Clients generated by Scout have the same logic All necessary elements for GUI alignment are provided by Scout runtime
  • 43. We're reaching the limit of the topic!
  • 44. 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
  • 45. Example of Scout editing form For a conference participant
  • 46. 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
  • 48. Wazaabi Creation: January 4th, 2012 Site: http://eclipse.org/wazaabi/ Status: Incubation Current release: ??? Project lead: Olivier Moises (Generic Concept)
  • 49. Due to a lack of release, the wazaabi experimation was not performed
  • 50. Wazaabi is a project undergoing a major restructuring, I'm confident that it will be soon released With all the necessary documentation
  • 51. Summary What I liked... + a clean site What I found difficult... - No release - No documentation
  • 53. 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 us Captain Obvious!
  • 54. Recap (II) Projects that rely on EMF to handle data should use EEF or ECP EEF (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
  • 55. Recap (III) Projects out of the EMF world can use Sapphire or Scout Sapphire 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
  • 56. Thanks! Goulwen Le Fur – goulwen.lefur@obeo.fr
  • 57. Evaluate This Session Sign-in: www.eclipsecon.org Select session from schedule Evaluate: 1 2 3
  • 58. Credentials Titlepage: Sennett, Tomas P2: 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_sapphire P12: 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/3898808431 P30: 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.