SlideShare a Scribd company logo
Eclipse 4.0 ….also known as Eclipse e4Lars Vogelhttp://www.vogella.dehttp://www.twitter.com/vogella
Eclipse e4 -Agenda What is e4?Whom does e4 try to help?Building blocksQ&A
Eclipse e4Eclipse e4 is the incubator project which will produce the Eclipse 4.0 SDK
How does Eclipse e4  help me?
Java MEJava EEJava SEAndroid, Spring, GWT,….
Eclipse e4 ScopeMake developmentfor Eclipseeasier
from Eclipse DeveloperEclipse E4to Eclipse Developer
At the beginning Eclipse e4 will not produce valuable functionality for the user of the Eclipse IDE……
Mid- and long term …much better toolingBy modernizing the Eclipse programming model the user will benefit from the increased development speedOnly little things……
So, what’s wrong with Eclipse 3.X?
Eclipse 3.x programming modelComplexLots of APIPlatform functionality via singletonsNot easy to testNot a consistent way to define the UI
Inheritance in Eclipse 3.XObjectEventManagerWorkbenchPartViewPartView
The smallest Eclipse RCP app in Eclipse 3.XAlready looks like the Eclipse IDELots of boilerplate code
If only Eclipse development would be easier and more visual appealing.14
The first amazing change Eclipse e4 uses Java 1.5 language features!AAbout time I would say….
Eclipse e4 – Building blocksModeled WorkbenchRendering EngineDeclarative StylingDependecy InjectionContextCore Services
The Modeled Workbench
The e4 Workbench Modele4 Workbench ModelEMF inside
The e4 Workbench ModelWorkbench window Menu with menu items Window Trim, e.g. toolbar with toolbar items Parts Sash ContainerPartsPart Stack (CTabFolder)PartsHandlersKey BindingsCommands
Model is FlexibleNo distinction between View and EditorPerspectives are optionalStack / Sash are optionalSeveral windows possibleFlexible Toolbars
Model removes the need for boilerplate codeMinimal Eclipse e4 app: zero classes
Model URI’sThe Part in the ModelThe Part’s URI
Lessions learned from Java Web developmentThe POJO* has won!* Plain Old Java Objects
Model Elements in e4POJO‘s
Usage of annotationsAnnotations are usedTo indicate which methods are called
Model available at runtime
Limits of the e4 application modelOnly models the Application (frame)Modeled WorkbenchContent of the individual Parts not included in the model
How is this model translated into UI components?© Lars Vogel and others, Licensed under Creative Commons by-nc-nd-3.0 (de)
Model and UI RenderersModelI don’t care who draws meThe Workbench model is independent of a specific UI toolkit
RenderersWidget RendererRenderer FactoryReturns for every model element Standard SWT renderer can be exchanged
Renderer: flexible but complex
e4 CSS Styling
In reality all RCP apps look like the an IDE
Eclipse3.X  - IDE feelingEclipse e4 – CSS StylingExample from Kai ToedterLimitations for: Menu bar background
 Table headers e4 supports theme switching during runtime
How to enable CSS StylingExtension point "org.eclipse.e4.ui.css.swt.theme“ defines the style sheet<extension         point="org.eclipse.e4.ui.css.swt.theme">      <themebasestylesheeturi="css/styles.css"            id="org.eclipse.e4.minimal.theme.standard"            label=“Standard">      </theme></extension>
How to enable CSS StylingProperty "cssTheme” for extension point "org.eclipse.core.runtime.products"  selects the initial theme <extension         id="product"         point="org.eclipse.core.runtime.products">      <product            application="org.eclipse.e4.ui.workbench.swt.E4Application"            name="E4 Contacs Demo">         ....         <property               name="cssTheme"               value="org.eclipse.e4.demo.contacts.themes.darkgradient">         </property>		 ....
Example CSSLabel {   font: Verdana 8px;   color: rgb(240, 240, 240);}Table {   background-color: gradient radial #575757 #101010 100%;   color: rgb(240, 240, 240);   font: Verdana 8px;}ToolBar {   background-color: #777777 #373737 #202020 50% 50%;   color: white;   font: Verdana 8px;}
JavaLabel label = new Label(parent, SWT.NONE);label.setData("org.eclipse.e4.ui.css.id", "SeparatorLabel");CSS#SeparatorLabel {    color: #f08d00;}Assign custom attributes
New Look & Feel for Eclipse 4.0 – SDK https://bugs.eclipse.org/bugs/show_bug.cgi?id=293481
The e4 Programming Model
Dependency InjectionInversion of control: The necessary functionality is injected into the classJava Class
Dependency Injection in e4JSR 330 compatible injection implementation@javax.inject.Inject – Field, Constructor and Method injection@javax.inject.Named – Specify a custom qualifier to context object (default is fully qualified classname of the injected type)e4 specific annotations, e.g. @Optional
Java Class	Services are injected via the the e4 frameworkpublicclassListView {   @Inject   privateIEclipseContextcontext;@Inject    private Loggerlogger;   @Inject   publicListView(Composite parent) {// ...
Lifecycle@PostConstruct: Called after Object created and Fields- and Methods-Injection finished
@PreDestroy: Called before the object is destroyed (e.g. the Part shown in the UI is removed)What can be injected?
IEclipseContextStores information of possible Injection ValuesOSGi Services part of the ContextDefine your own services and use DI for them
Example: Writing HandlersMethod identified via @Execute annotationCan have any number of argumentsUse IServiceConstants for general context informationspublic class AboutHandler {@Execute  public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell){MessageDialog.openInformation(      shell, "About", "e4 Application example.");  }}
Services© Lars Vogel and others, Licensed under Creative Commons by-nc-nd-3.0 (de)
Eclipse Application Services (“Twenty Things”)Long-running operations
Progress reporting
Error handling
Navigation model
Resource management
Status line
Drag and drop
Undo/Redo

More Related Content

PPTX
Eclipse 40 and Eclipse e4
PDF
Eclipse 40 - Eclipse Summit Europe 2010
PPT
Java for Mainframers
PPTX
Eclipse e4 Overview
PPTX
Eclipse e4 Tutorial - EclipseCon 2010
PDF
I pad uicatalog_lesson02
PPTX
LEARNING  iPAD STORYBOARDS IN OBJ-­‐C LESSON 1
PPT
Plug-in Architectures
Eclipse 40 and Eclipse e4
Eclipse 40 - Eclipse Summit Europe 2010
Java for Mainframers
Eclipse e4 Overview
Eclipse e4 Tutorial - EclipseCon 2010
I pad uicatalog_lesson02
LEARNING  iPAD STORYBOARDS IN OBJ-­‐C LESSON 1
Plug-in Architectures

What's hot (20)

PDF
Selenium Basics Tutorial
PPT
Tellurium 0.7.0 presentation
PDF
Android programming-basics
PDF
Exploring Angular 2 - Episode 1
PDF
Seven Versions of One Web Application
PPTX
SharePoint Saturday St. Louis - SharePoint & jQuery
PPTX
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
PDF
Speed up your Web applications with HTML5 WebSockets
PDF
Ten Minutes To Tellurium
PPTX
Learning C# iPad Programming
PPTX
Azure rev002
PPTX
Apache Cordova In Action
PPT
Architecture | Busy Java Developers Guide to NoSQL | Ted Neward
PPTX
C# Security Testing and Debugging
PDF
Interview question & Answers for 3+ years experienced in Selenium | LearningSlot
PPT
Getting Started with Zend Framework
PDF
Interview Question & Answers for Selenium Freshers | LearningSlot
PDF
Create Your Own Framework by Fabien Potencier
PPTX
#SPSEMEA SharePoint & jQuery - What I wish I would have known a year ago..
PPTX
Selenium
Selenium Basics Tutorial
Tellurium 0.7.0 presentation
Android programming-basics
Exploring Angular 2 - Episode 1
Seven Versions of One Web Application
SharePoint Saturday St. Louis - SharePoint & jQuery
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
Speed up your Web applications with HTML5 WebSockets
Ten Minutes To Tellurium
Learning C# iPad Programming
Azure rev002
Apache Cordova In Action
Architecture | Busy Java Developers Guide to NoSQL | Ted Neward
C# Security Testing and Debugging
Interview question & Answers for 3+ years experienced in Selenium | LearningSlot
Getting Started with Zend Framework
Interview Question & Answers for Selenium Freshers | LearningSlot
Create Your Own Framework by Fabien Potencier
#SPSEMEA SharePoint & jQuery - What I wish I would have known a year ago..
Selenium
Ad

Similar to Eclipse e4 on Java Forum Stuttgart 2010 (20)

PPTX
Eclipse Overview
PDF
Learn about Eclipse e4 from Lars Vogel at SF-JUG
PPT
Eclipse 2011 Hot Topics
PDF
Eclipse e4
PPT
Overview of CSharp MVC3 and EF4
PDF
Eclipse e4 - Google Eclipse Day
ODP
Plug yourself in and your app will never be the same (1 hr edition)
PPT
iPhone development from a Java perspective (Jazoon '09)
PPT
EJB 3.0 Java Persistence with Oracle TopLink
PPT
Entity Framework 4 In Microsoft Visual Studio 2010
PPTX
Mastering Test Automation: How To Use Selenium Successfully
PDF
Ionic framework one day training
PPT
Developing a Struts & Tiles application using WebSphere Studio
PPTX
Abstract #236765 advanced essbase java api tips and tricks
ODP
Simplifying RCP Update and Install
PPTX
Eclipse Modeling Framework
PPT
Zend_Layout & Zend_View Enhancements
PPTX
PPTX
Developing Lightning Components for Communities.pptx
PDF
WebNet Conference 2012 - Designing complex applications using html5 and knock...
Eclipse Overview
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Eclipse 2011 Hot Topics
Eclipse e4
Overview of CSharp MVC3 and EF4
Eclipse e4 - Google Eclipse Day
Plug yourself in and your app will never be the same (1 hr edition)
iPhone development from a Java perspective (Jazoon '09)
EJB 3.0 Java Persistence with Oracle TopLink
Entity Framework 4 In Microsoft Visual Studio 2010
Mastering Test Automation: How To Use Selenium Successfully
Ionic framework one day training
Developing a Struts & Tiles application using WebSphere Studio
Abstract #236765 advanced essbase java api tips and tricks
Simplifying RCP Update and Install
Eclipse Modeling Framework
Zend_Layout & Zend_View Enhancements
Developing Lightning Components for Communities.pptx
WebNet Conference 2012 - Designing complex applications using html5 and knock...
Ad

More from Lars Vogel (20)

PDF
Eclipse IDE and Platform news on Fosdem 2020
PDF
Eclipse platform news and how to contribute to the Eclipse Open Source project
PDF
Android design and Custom views
PDF
How to become an Eclipse committer in 20 minutes and fork the IDE
PDF
Building beautiful User Interface in Android
PDF
What is so cool about Android 4.0
PDF
What is so cool about Android 4.0?
PDF
Android Jumpstart Jfokus
PPT
Android C2DM Presentation at O'Reilly AndroidOpen Conference
PPTX
Android Overview (Karlsruhe VKSI)
PPTX
Android Introduction on Java Forum Stuttgart 11
PPT
Google App Engine for Java
PPTX
Android Cloud to Device Messaging with the Google App Engine
PDF
Google App Engine for Java
PPTX
Eclipse 4.0 - Dynamic Models
PDF
Eclipse 40 Labs- Eclipse Summit Europe 2010
PPTX
Android Programming made easy
PPTX
Eclipse RCP Overview @ Rheinjug
PPT
Google App Engine for Java (GAE/J)
PPTX
Programming Android
Eclipse IDE and Platform news on Fosdem 2020
Eclipse platform news and how to contribute to the Eclipse Open Source project
Android design and Custom views
How to become an Eclipse committer in 20 minutes and fork the IDE
Building beautiful User Interface in Android
What is so cool about Android 4.0
What is so cool about Android 4.0?
Android Jumpstart Jfokus
Android C2DM Presentation at O'Reilly AndroidOpen Conference
Android Overview (Karlsruhe VKSI)
Android Introduction on Java Forum Stuttgart 11
Google App Engine for Java
Android Cloud to Device Messaging with the Google App Engine
Google App Engine for Java
Eclipse 4.0 - Dynamic Models
Eclipse 40 Labs- Eclipse Summit Europe 2010
Android Programming made easy
Eclipse RCP Overview @ Rheinjug
Google App Engine for Java (GAE/J)
Programming Android

Recently uploaded (20)

PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Big Data Technologies - Introduction.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Cloud computing and distributed systems.
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Empathic Computing: Creating Shared Understanding
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Encapsulation theory and applications.pdf
Unlocking AI with Model Context Protocol (MCP)
Advanced methodologies resolving dimensionality complications for autism neur...
The Rise and Fall of 3GPP – Time for a Sabbatical?
Big Data Technologies - Introduction.pptx
Review of recent advances in non-invasive hemoglobin estimation
NewMind AI Monthly Chronicles - July 2025
Digital-Transformation-Roadmap-for-Companies.pptx
Cloud computing and distributed systems.
NewMind AI Weekly Chronicles - August'25 Week I
Empathic Computing: Creating Shared Understanding
Dropbox Q2 2025 Financial Results & Investor Presentation
Encapsulation_ Review paper, used for researhc scholars
Network Security Unit 5.pdf for BCA BBA.
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Understanding_Digital_Forensics_Presentation.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Encapsulation theory and applications.pdf

Eclipse e4 on Java Forum Stuttgart 2010