Eclipse RCP Development

The Eclipse Rich Client Platform (RCP) is used in almost every industry. Using course materials designed by the RCP project leaders and committers, the people who literally wrote the book on the subject, this course accelerates your adoption of this comprehensive platform. Our veteran Eclipse developers, with years of product development experience, teach you the key technology and techniques you need to develop powerful RCP applications and plug-ins. Along the way they provide deep insights and context to help you to start your own development efforts and keep on track.

Course participants develop a functional RCP application from scratch in a series of hands-on focused sessions. Keeping a small class format (max. 6-8 participants) ensures that you'll gain a broad understanding of Eclipse RCP and get plenty of individual support from our experts.

Duration: 4 days

Dates and Registration

Course Goals, Audience and Prerequisites

Course Goals

  • Understand the most common concepts Eclipse Rich Client Platform (RCP)
  • Apply those concepts to the development of general GUI-applications
  • Gain working knowledge of the Eclipse RCP architecture and individual subsystems
  • Become familiar with best practices for RCP development

Target Audience

  • Java developers looking to benefit from Eclipse's Rich Client Platform for developing general, non-IDE, GUI applications
  • Software architects interested in building business-wide software platforms
  • Eclipse plug-in developers wanting to round off their knowledge and optimize their skills for RCP-specific scenarios

 Prerequisites

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

Course Outline

Introduction to RCP

  • History, Benefits and Examples
  • Architecture of an RCP application
  • Plug-in based modularization

Applications & Workbench

  • The Workbench - Eclipse's UI Metaphor
  • Windowing: Window, Menu, Page, Perspective, View, Editor
  • How is an RCP application launched?
  • Workbench advisor classes

Views & Perspectives

  • Introduction to extension points
  • Adding views
  • Adding perspectives
  • How to arrange views within a perspective
  • Saving the user interface state

JFace Viewers

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

Actions and Commands

  • Introduction to actions and commands
  • Where can I add actions/commands in the Eclipse UI?
  • Adding actions/commands through code and xml
  • Integrating with the selection service
  • Pop-up menus
  • Conditional enablement and visibility

Editors

  • Types of editors
  • Differences between views and editors
  • Contributing and opening an editor
  • Implementing an editor
  • Managing the dirty state of an editor

Branding and Packaging

  • Customize your application with product branding
  • Packaging an application with features
  • Deploying your RCP application

SWT Widgets

  • Introduction to SWT
  • SWT widgets / controls
  • Basic structure of an SWT application
  • Threading in SWT
  • SWT events
  • Integrating Swing / AWT with SWT

SWT Layouts

  • SWT layout concepts
  • Using SWT layout managers

SWT / JFace Dialogs

  • Reusable SWT and JFace Dialogs
  • Examples

Help

  • Overview of the Eclipse Help System
  • Adding help content
  • Adding context sensitive help

OSGi Essentials

  • OSGi and RCP
  • How do 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

Defining your own extension points

  • Extension Points, Extensions, Contributions
  • Extension Point Editor and Schema
  • Using the Extension Registry

Internationalization (i18n)

  • Adding support for multiple languages
  • Limitations

Testing with JUnit

  • What is PDE JUnit?
  • What is the best way to structure test code?

More Info

Format

  • 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

Languages

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