Eclipse 4 (e4) RCP Development

Contact us to book a training

The Eclipse 4 (e4) Application Platform is the next major release of the Eclipse RCP SDK. In response to the changing software landscape, the Eclipse e4 team reimplemented basic parts of the Eclipse Platform to follow new paradigms. With the dual goals of decreasing complexity and making Eclipse applications visually more appealing, Eclipse 4 introduces innovative programming techniques such as: dependency injection, annotations and CSS styling. It reduces complexity by providing a consistent model of the workbench, based on EMF.

In this course you learn to develop applications based on the Eclipse 4 Application Platform.

During the course, you will iteratively create an Eclipse 4 application including a workbench, views, menu items, and services. You will learn how to use dependency injection and annotations with Eclipse 4 and how to style your application with Cascading Style Sheets (CSS). Finally, you will learn how to integrate innovations from Eclipse 4 into existing applications based on Eclipse 3.x.

This course is designed by Eclipse project leads and committers. We keep a small class format (max. 6-8 participants) to ensure you will gain a broad understanding of Eclipse 4 and receive plenty of individual support from our experts.

Basic familiarity using the Eclipse IDE and knowledge of Java and object oriented programming are prerequisites for this course.

Custom programs, for example, combining Eclipse 4 RCP Development and EMF are available.

Duration: 4 days

Dates and Registration

For dates of public trainings in Munich and exclusive onsite trainings please get in contact with us.

Course Goals, Audience and Prerequisites

Course Goals

  • Understand the basic concepts of the Eclipse 4 Application Platform
  • Apply those concepts to the development of general GUI-applications
  • Gain a working knowledge of the Eclipse 4 architecture and individual subsystems
  • Become familiar with best practices for Eclipse 4 RCP development

Target Audience

  • Java developers looking to benefit from the Eclipse 4 Application Platform for developing general, non-IDE, GUI applications
  • Software architects interested in building business-wide software platforms
  • Eclipse plug-in developers wanting to advance their knowledge and optimize their skills for RCP-specific scenarios


  • Knowledge of Java and object-oriented programming
  • Experience of using the Eclipse IDE is desirable
  • Basic knowledge of design patterns and XML

Course Outline

Eclipse 4 Application Platform Overview

  • History and Motivation for a new platform
  • Core innovations
  • Architecture of an RCP application
  • Plug-in based modularization

The Application Model

  • Overview EMF (optional)
  • Eclipse 4 Tooling
  • Modeling an application
  • Windowing: Window, Menu, Page, Perspective, View, Editor
  • Linking the workbench model to implementations
  • Programmatically modifying the workbench model
  • Extending a model using fragments

SWT Widgets

  • Introduction to SWT
  • SWT widgets / controls
  • Basic structure of an SWT application
  • Threading in SWT
  • SWT events

SWT Layouts

  • SWT layout concepts
  • Using SWT layout managers

JFace Viewers

  • Introduction to Structured Viewers
  • Using a JFace Tree Viewer
  • Content and Label Providers
  • Tables and the JFace Table Viewer

Dependency Injection

  • Overview
  • The Eclipse context
  • Manual injection
  • Programming with Annotations


  • Overview
  • Using existing services
  • Declaring custom services

Commands and Handlers

  • Introduction to commands, items and handlers
  • Integrating with the selection service
  • Pop-up menus
  • Conditional enablement and visibility
  • Key Bindings

Modular Application Models

  • Contribute extensions to an application model
  • Model Fragments
  • Model Processors


  • Contributing and opening an editor
  • Implementing an editor
  • Managing the dirty state of an editor

Additional Model Elements and Services

  • Perspectives
  • Placeholder

OSGi Essentials

  • OSGi and RCP
  • How plug-ins work together
  • Plug-in and package dependencies
  • Plug-in lifecycle
  • Versioning and naming conventions

JFace Wizards

  • Contributing Wizards
  • Defining a wizard extension
  • Implementing a wizard and wizard pages
  • Customizing a wizard
  • Controlling wizard page progression

Data Binding

  • What is the JFace Databinding?
  • Prerequisites and limitations
  • Databinding example

Optional and additional Topics

  • CSS Styling
  • Event Bus
  • Defining your own extension points
  • Internationalization (i18n)
  • Testing with JUnit
  • Additional topics


  • Using Eclipse 4 technologies in 3.x
  • Migrating to Eclipse 4
  • Additional technologies

More Info


  • Course duration: 4 days
  • Course structure: instructor led with at least 50% hands-on labs and tutorials
  • Learn better in a small group: maximum 6-8 participants per instructor
  • Equipment: participants supply their own computer with an up-to-date installation of Eclipse


Classes in Germany are held in German. All other courses are held in English. Other languages are available on request.