Eclipse RCP Advanced Topics

The Eclipse Rich Client Platform (RCP) is very powerful but extremely comprehensive. No matter how much you know, there is always more to learn. You might be facing a project requiring specific knowledge, need to scale up your RCP efforts or simply be looking to broaden your understanding of the platform. Either way this course is for you.

Using course material that was designed by the RCP project leaders and committers, the people who literally wrote the book on the subject, this course builds on your current knowledge by adding insights on key aspects of the technology. Our veteran Eclipse developers, with years of product development experience, provide deep insights, best practices and context to help drive your development efforts and optimize your use of Eclipse.

Course participants are given a functional RCP application which they expand, extend and optimize in a series of hands-on sessions. Keeping a small class format (max. 6-8 participants) ensures that you’ll gain a deep understanding of Eclipse RCP and get plenty of individual support from our experts.

Duration: 3 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 advanced Eclipse RCP topics in depth
  • Learn Eclipse RCP concepts to create large-scale platforms and applications
  • Explore packaging and delivery strategies available to RCP-based systems

Target Audience

  • RCP developers looking to deepen their knowledge
  • Software architects interested in building business-wide software platforms
  • Eclipse plug-in developers wanting to round off their knowledge for RCP-specific scenarios


  • A good understanding of RCP concepts
  • Experience of using the Eclipse IDE
  • Knowledge of Java and object-oriented programming

Course Outline

Plug-in (Bundle) Best Practices

  • Modularity and loose coupling
  • Lazy loading
  • Plug-in and package dependencies
  • Plug-in lifecycle
  • Versioning and naming conventions

Jobs and Liveness

  • Busy Cursor
  • Progress Monitoring
  • Concurrency and the Jobs Framework
  • Reusing the Progress View


  • Adaptable objects
  • Extending object behavior the Eclipse way
  • Working with adapter factories

Data Binding

  • Synchronizing data models and their presentation
  • Binding to POJOs, Beans and SWT widgets
  • Introduction to validation and conversion

User Assistance

  • Reusing the Eclipse Help framework in RCP
  • Static and Active Help
  • Context sensitive help
  • Cheat Sheets

Virtual Trees and Tables

  • Displaying and manipulating large data sets
  • SWT.VIRTUAL and Lazy Content Providers
  • Limitations and Best Practices

Defining Extension Points

  • The Equinox Extension registry
  • Defining extension points
  • Creating contributions and accessing the extension registry
  • Platforms as a structured system of extension points and contributions
  • Executable Extensions and extension factories

Customizing the Look and Feel

  • The Eclipse Presentation API
  • Creating a small custom presentation

Provisioning with p2

  • p2 Overview
  • Concepts and Technology
  • Integrating p2 into an RCP application
  • Manual Install / Update / Rollback with p2
  • p2 Tips and Tricks

Headless Build

  • Introduction to PDE build
  • Configuring and running headless Eclipse RCP product builds
  • Generating p2 repositories in the build

Eclipse Preferences

  • Preference and scopes
  • Storing and retrieving preferences
  • Initializing default values
  • Preference pages
  • Secure preferences

More Info


  • Course duration: 3 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 bring their own computer with an up-to-date installation of Eclipse