German English

Eclipse Rich Client Platform (RCP) Training

Duration Duration
5 days Software developers
and architects

Training overview
In this intensive training you learn the professional development of Eclipse RCP applications based on the latest Eclipse release. The practical part is about 50% and due to many optional chapters, the course is suitable for both Eclipse RCP newcomers as well as for developers with Eclipse 3.x RCP knowledge. You will receive comprehensive courseware.
In the training you will work based on the latest Eclipse 4 Programming Interface (API). The Migration of Eclipse 3.x RCP applications will also be discussed.

If your are planning a migration from Eclipse 3.X to Eclipse 4, we also offer a Eclipse 4 RCP Delta training. In this training you will learn the new concepts of Eclipse 4 and the differences to Eclipse 3.x.

Training prerequisites
Knowledge of Java programming and basic knowledge of the Eclipse IDE are assumed. After registering for the training you will receive preparatory material that you may be able to use in order to freshen up your Java and Eclipse knowledge.

For the open training we ‚Äč‚Äčorganize the location, as well as the food and beverages during the training. Laptops can be provided on request.

Customer reviews

Public Training

Place Date Language Price
Remote 19 - 23.02.24 German or English 2.200 EUR *


* We offer a colleague discount starting from the second registration. All prices are listed w/o VAT.

Online Training

Language Price
Eclipse RCP Development in the vogella interactive Learning Portal English 450 EUR *


* Annual fee for the first year. For each additional year, the annual fee is 100 EUR. All prices are listed w/o VAT.

Onsite or virtual Training

Place Date Language Price
At your location or virtual tbd German / English Upon request


Agenda Download Agenda

Introduction into Eclipse and Eclipse 4

  • Components of the Eclipse platform
  • Eclipse 3.x in comparison with Eclipse 4.x
  • Eclipse license
  • Internet information sources

Eclipse architecture

  • Software components
  • Configuration files (plugin.xml, MANIFEST.MF)
  • Extensions and extension points
  • Important user interface components

Deployment of an Eclipse product

  • Product configuration file
  • Feature projects
  • Branding and product export
  • Run configuration
  • Problem analysis during export

Eclipse 4 application model

  • Application model and model components
  • Model editor
  • Naming schema for ID's

Dependency injection and annotations

  • Overview dependency injection
  • Dependency injection framework in Eclipse
  • Field, method and constructor dependency injection
  • Behavior annotations
  • Application lifecycle annotations

Commands, Handlers, Menus and Toolbars

  • Contributing to the menu and the toolbar
  • Handling of popup menus
  • Scope of handlers and core expressions
  • Defining keybindings

Scope of injection

  • IEclipseContext
  • Injection search strategy
  • Creation of injectable objects
  • Model elements and dependency injection

Modularity of the Eclipse platform with OSGi

  • Plug-ins and bundles
  • Definition of dependencies between plug-ins
  • Fragment projects
  • OSGi framework start configuration and usage of the OSGi console

OSGi services

  • Services and the OSGi service registry
  • Publishing services via OSGi declarative services
  • Usage of services in Eclipse 4
  • OSGi declarative service definition with annotations

User interface development with SWT

  • Overview Standard Widget Toolkit
  • SWT event handling
  • SWT layout manager: FillLayout, RowLayout and GridLayout
  • User interface builder: SWT Designer
  • Custom widgets and Nebula widgets

Introduction JFace

  • Overview JFace components
  • SWT resource management
  • Control decorations for user feedback
  • Introduction into the Viewer framework (LabelProvider, ContentProvider, ComboViewer)
  • Handling Viewer selection

JFace TableViewer and TreeViewer

  • ColumnLabelProvider and CellLabelProvider
  • Editable tables
  • Sorting, filtering, layouts and own label provider

Dialog and Wizards

  • SWT standard dialogs
  • JFace Dialogs
  • JFace Wizards

Declarative styling with CSS

  • Introduction into CSS
  • Definition of styles and themes, colors and gradients
  • Styling specific widgets
  • Dynamic style switching at runtime
  • Using the CSS Spy tooling

Platform services and interaction of components

  • Service overview
  • Part service
  • Model service
  • Selection service
  • Command and Handler service

Editor handling in Eclipse 4

  • Comparison Views and Editors
  • Getting parts which behave as editors
  • Using services to interact with parts

Accessing and extending the Eclipse context

  • Accessing the context
  • Extending the Eclipse context with own objects
  • Using dependency injection to create own objects

Settings and preferences

  • Configuration area and workspace
  • Persistence of the Eclipse application
  • Part persistence
  • Dependency injection for preference values

Modularity for Eclipse 4 applications

  • Contributing to the application model
  • Static model contributions with fragments
  • Dynamic model contributions with processors

Internationalization (i18n)

  • Adding support for multiple languages
  • Usage of fragment projects
  • Outlook: translation services in Eclipse 4

Concurrent UIs

  • SWT threading
  • Avoiding invalid thread access
  • Asynchronous processing with the Eclipse API

JFace Data Binding

  • Introduction into databinding
  • Observing properties
  • Conversion, validation and update strategies
  • Databinding for JFace Viewers
  • Master / detail bindings

Target Platform

  • Definition of development components
  • Creation of target platform definitions

Migrating Eclipse 3.x applications

  • Running Eclipse 3.x applications on top of Eclipse 4
  • Mixing Eclipse 3.x and Eclipse 4.x components
  • Discussion: Migration path for existing applications

Definition of own annotations for dependency injection

  • Definition of new annotations
  • Evaluation of new annotations
  • Use cases

Creating and evaluating extension points

  • Eclipse extensions and extension points
  • Accessing existing extensions
  • Creating and evaluating a new extension point

The Renderer framework

  • Purpose of the Renderer framework
  • Define your own renderer
  • Outlook: Using an alternative renderer
  • Outlook: Extending the application model

Building Eclipse applications with Maven *

  • High level overview of Tycho
  • Building plug-ins, features, products and update sites
  • Executing plug-in unit tests with Tycho

Best practices and tips & tricks

* Topics only included in the online training material.