SlideShare a Scribd company logo
Building Applications with
     Eclipse 4.x (e4)

                  |




Lars Vogel        Tom Schindl
About Tom

✤
    CEO BestSolution Systemhaus GmbH

✤
    Eclipse Committer

    ✤
        e4

    ✤
        Platform UI

    ✤
        EMF

✤
    Projectlead: UFaceKit, Nebula

✤   Member of the Architectual Council
About Lars

Works as independent Eclipse and Android Developer
and Trainer


Maintains http://www.vogella.de Java, Eclipse and
Android related Tutorials with ~40 000 visitors per day

Starting to publish (e)books at Amazon
Presentation


                             w
     •     Eclipse e4 Overvie
     •     Model
                              ion
     •     Dependency Inject
      •    Styling
                               r
      •     Compatibility Laye
                                 e4
       •    JavaFX and Eclipse
       •    Q&A
What is the purpose of the
  Eclipse 4.x project?
Eclipse e4 Scope

Make development for
   Eclipse easier
It is not making development
          with easier.

„Normal“ developer should
see no difference, except...
Eclipse 3.x - areas of improvement

                   • Testing

                   • Consistent way to define
                     the UI

                   • Styling the application

                   • Easy way to use OSGI
                     services
If I only had a
consistent view of
the Eclipse
workbench


                 9
The e4 Workbench Model


              • Workbench window
                – Menu with menu items
                – Window Trim, e.g. toolbar
                  with toolbar items
                – Parts Sash Container
                    • Parts
                – Part Stack (CTabFolder)
                    • Parts
                – Handlers
                – Key Bindings
                – Commands
Limits of the e4 application model

• Only models the Application (frame)


                Modeled
               Workbench



              Content of the
            individual Parts not
              included in the
                   model
The e4 Programming Model
Dependency Injection in e4

• JSR 330 compatible injection
  implementation
   – @javax.inject.Inject – Field, Constructor and
     Method
   – @javax.inject.Named
• e4 specific annotations, e.g. @Optional
a
               Jav s
                Clas                        Services are injected
                                        via the the e4
                                        framework

public class ListView {


  @Inject
  private IEclipseContext context;
  @Inject
  private Logger logger;


  @Inject
  public ListView(Composite parent) {
      // ...
e4 CSS Styling
How to enable CSS Styling
Property "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 CSS
Label {
   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;
}
Eclipse 4.2
planned to be
the basis of
Eclipse Juno SDK
4.2 still has some issues

And there will be Eclipse 3.8
e4: Where to go from here:
Eclipse e4 Wiki
http://wiki.eclipse.org/E4



Eclipse 4.2 Application Tutorial – Lars Vogel
http://www.vogella.de/articles/EclipseE4/article.html



Eclipse 4.0 Application Tutorial – Tom Schindl
http://tomsondev.bestsolution.at/2010/07/28/eclipse-4-0-and-tutorial-on-writing-e4-rcp-application-released/
Plugins zur Produkt / Feature
• Fügen sie die folgenden Plugins Ihrem Feature
  hinzu
  – org.eclipse.e4.ui.workbench.addons.swt
  – org.eclipse.equinox.ds
  – org.eclipse.equinox.event
  – org.eclipse.equinox.util
  – org.eclipse.platform
  – org.eclipse.ui.forms
  – org.eclipse.ui.intro

More Related Content

PPTX
Eclipse workshop presentation (March 2016)
PDF
Laravel - The PHP Framework for Web Artisans
PPTX
PDF
"Architecting and testing large iOS apps: lessons from Facebook". Adam Ernst,...
PPTX
ProtractorJS for automated testing of Angular 1.x/2.x applications
PDF
Foundations for Scaling ML in Apache Spark by Joseph Bradley at BigMine16
PDF
Testing Angular
PDF
Angular - Chapter 1 - Introduction
Eclipse workshop presentation (March 2016)
Laravel - The PHP Framework for Web Artisans
"Architecting and testing large iOS apps: lessons from Facebook". Adam Ernst,...
ProtractorJS for automated testing of Angular 1.x/2.x applications
Foundations for Scaling ML in Apache Spark by Joseph Bradley at BigMine16
Testing Angular
Angular - Chapter 1 - Introduction

What's hot (20)

PPT
Java Basics for selenium
PDF
Beyond Domino Designer
PPTX
Automate Your Data, Free Your Mind by Aaron Swerlein
PPTX
La vita nella corsia di sorpasso; A tutta velocità, XPages!
PDF
Using The Page Object Pattern
PPTX
Provar webinar 15-03-2018
PPTX
04 managing the database
PPTX
Laravel Tutorial PPT
PPTX
Practices and Tools for Building Better APIs
PPTX
Laravel overview
PPT
Ember.js: Jump Start
PDF
Spring Boot
PPTX
Basic Selenium Training
PDF
An Introduction to the Laravel Framework (AFUP Forum PHP 2014)
PDF
Laravel and CodeIgniter: pros & cons
PPTX
CPAN Curation
DOC
Selenium course syllabus
PDF
Alloy #DMC13
PDF
[2015/2016] Apache Cordova
PPTX
Laravel
Java Basics for selenium
Beyond Domino Designer
Automate Your Data, Free Your Mind by Aaron Swerlein
La vita nella corsia di sorpasso; A tutta velocità, XPages!
Using The Page Object Pattern
Provar webinar 15-03-2018
04 managing the database
Laravel Tutorial PPT
Practices and Tools for Building Better APIs
Laravel overview
Ember.js: Jump Start
Spring Boot
Basic Selenium Training
An Introduction to the Laravel Framework (AFUP Forum PHP 2014)
Laravel and CodeIgniter: pros & cons
CPAN Curation
Selenium course syllabus
Alloy #DMC13
[2015/2016] Apache Cordova
Laravel
Ad

Similar to Eclipse e4 - Google Eclipse Day (20)

PDF
Learn about Eclipse e4 from Lars Vogel at SF-JUG
PDF
Eclipse e4
PDF
Eclipse 40 - Eclipse Summit Europe 2010
PPTX
Eclipse Overview
PPTX
Eclipse 40 and Eclipse e4
PPTX
Eclipse e4 on Java Forum Stuttgart 2010
PPTX
Eclipse e4 Overview
PPT
Eclipse 2011 Hot Topics
PDF
WebObjects Developer Tools
PDF
APEX Application Lifecycle and Deployment 20220714.pdf
PDF
[meetup] Mastering Java enhancements like a Pro: practical design patterns an...
PPTX
Csharp introduction
PPTX
ZZ BC#7 asp.net mvc practice and guideline by NineMvp
PPTX
Selenium web driver_2.0_presentation
PPTX
Introduction to the Managed Extensibility Framework in Silverlight
PPT
The Nuxeo Way: leveraging open source to build a world-class ECM platform
PPTX
Eclipse RCP 4
PDF
01 web-apps
PDF
01 web-apps
PDF
Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Eclipse e4
Eclipse 40 - Eclipse Summit Europe 2010
Eclipse Overview
Eclipse 40 and Eclipse e4
Eclipse e4 on Java Forum Stuttgart 2010
Eclipse e4 Overview
Eclipse 2011 Hot Topics
WebObjects Developer Tools
APEX Application Lifecycle and Deployment 20220714.pdf
[meetup] Mastering Java enhancements like a Pro: practical design patterns an...
Csharp introduction
ZZ BC#7 asp.net mvc practice and guideline by NineMvp
Selenium web driver_2.0_presentation
Introduction to the Managed Extensibility Framework in Silverlight
The Nuxeo Way: leveraging open source to build a world-class ECM platform
Eclipse RCP 4
01 web-apps
01 web-apps
Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.
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
Encapsulation_ Review paper, used for researhc scholars
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPT
Teaching material agriculture food technology
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
NewMind AI Monthly Chronicles - July 2025
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Big Data Technologies - Introduction.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
Encapsulation_ Review paper, used for researhc scholars
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
NewMind AI Weekly Chronicles - August'25 Week I
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Dropbox Q2 2025 Financial Results & Investor Presentation
Teaching material agriculture food technology
Chapter 3 Spatial Domain Image Processing.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Digital-Transformation-Roadmap-for-Companies.pptx
NewMind AI Monthly Chronicles - July 2025
The AUB Centre for AI in Media Proposal.docx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Machine learning based COVID-19 study performance prediction
Big Data Technologies - Introduction.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Unlocking AI with Model Context Protocol (MCP)

Eclipse e4 - Google Eclipse Day

  • 1. Building Applications with Eclipse 4.x (e4) | Lars Vogel Tom Schindl
  • 2. About Tom ✤ CEO BestSolution Systemhaus GmbH ✤ Eclipse Committer ✤ e4 ✤ Platform UI ✤ EMF ✤ Projectlead: UFaceKit, Nebula ✤ Member of the Architectual Council
  • 3. About Lars Works as independent Eclipse and Android Developer and Trainer Maintains http://www.vogella.de Java, Eclipse and Android related Tutorials with ~40 000 visitors per day Starting to publish (e)books at Amazon
  • 4. Presentation w • Eclipse e4 Overvie • Model ion • Dependency Inject • Styling r • Compatibility Laye e4 • JavaFX and Eclipse • Q&A
  • 5. What is the purpose of the Eclipse 4.x project?
  • 6. Eclipse e4 Scope Make development for Eclipse easier
  • 7. It is not making development with easier. „Normal“ developer should see no difference, except...
  • 8. Eclipse 3.x - areas of improvement • Testing • Consistent way to define the UI • Styling the application • Easy way to use OSGI services
  • 9. If I only had a consistent view of the Eclipse workbench 9
  • 10. The e4 Workbench Model • Workbench window – Menu with menu items – Window Trim, e.g. toolbar with toolbar items – Parts Sash Container • Parts – Part Stack (CTabFolder) • Parts – Handlers – Key Bindings – Commands
  • 11. Limits of the e4 application model • Only models the Application (frame) Modeled Workbench Content of the individual Parts not included in the model
  • 13. Dependency Injection in e4 • JSR 330 compatible injection implementation – @javax.inject.Inject – Field, Constructor and Method – @javax.inject.Named • e4 specific annotations, e.g. @Optional
  • 14. a Jav s Clas Services are injected via the the e4 framework public class ListView { @Inject private IEclipseContext context; @Inject private Logger logger; @Inject public ListView(Composite parent) { // ...
  • 16. How to enable CSS Styling Property "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> ....
  • 17. Example CSS Label { 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; }
  • 18. Eclipse 4.2 planned to be the basis of Eclipse Juno SDK 4.2 still has some issues And there will be Eclipse 3.8
  • 19. e4: Where to go from here: Eclipse e4 Wiki http://wiki.eclipse.org/E4 Eclipse 4.2 Application Tutorial – Lars Vogel http://www.vogella.de/articles/EclipseE4/article.html Eclipse 4.0 Application Tutorial – Tom Schindl http://tomsondev.bestsolution.at/2010/07/28/eclipse-4-0-and-tutorial-on-writing-e4-rcp-application-released/
  • 20. Plugins zur Produkt / Feature • Fügen sie die folgenden Plugins Ihrem Feature hinzu – org.eclipse.e4.ui.workbench.addons.swt – org.eclipse.equinox.ds – org.eclipse.equinox.event – org.eclipse.equinox.util – org.eclipse.platform – org.eclipse.ui.forms – org.eclipse.ui.intro