Popular Courses

Browse Our Free Resources

  • whitepapers
  • whitepapers
  • webinars
  • blogs

Our Locations

Training Centres

Vancouver, BC
Calgary, AB
Edmonton, AB
Toronto, ON
Ottawa, ON
Montreal, QC
Hunt Valley

locations map


550 6th Av SW
Suite 475
Calgary, AB
T2P 0S2


821A Bloor Street West
Toronto, ON
M6G 1M1


409 Granville St
Suite 902
Vancouver, BC
V6C 1T2

U.S. Office

436 York Road
Suite 1
Jenkintown, PA

Other Locations

Dallas, TX
Miami, FL

Home > Training > Eclipse IDE > Developing Rich Client Platform (RCP) Plug-ins Training

Developing Rich Client Platform (RCP) Plug-ins Training

Course#: WA1812

Learn how to harness the power of the Eclipse Foundation’s Rich Client Platform to develop feature-rich end-user applications.


  Key benefits and unique features of this course:
  • The course is lab-centric: the slides support the lab exercises rather than the reverse.
  • The lab instructions allow students to choose their own level of depth: hints and solutions are provided at the end of each lab and optional challenge learning activities are included. Many labs include diagrams and other supplementary reference material.
  • Most labs build on each other but some optional labs are also included.
  • Course material is updated regularly based on student feedback.



System architects, application developers and software engineers who will be designing and/or implementing applications using the Eclipse Rich Client Platform (RCP).




Each student should have some previous Java programming experience.




Five Days.

Outline of WA1812 Developing Rich Client Platform (RCP) Plug-ins Training

Unit 1: OSGi Bundle Overview

  • The Big Picture: Modules
  • Background: JAR Files and Their Limitations
  • The OSGi Service Platform
  • OSGi Bundles
  • Native Code Libraries
  • Activators and Bundle Lifecycle
  • Remote Administration

Unit 2: Threads and SWT/JFace GUIs

  • Bundles and Threads: Activators, Tasks, and Thread Executors
  • Adding an SWT/JFace GUI
  • Display and Shell
  • The UI Thread

Unit 3: Bundle Class Loading & Bundle Dependencies

  • Background: Classes and Class Loaders
  • Typical Class Loader Delegation
  • A New Level of Visibility
  • Bundle Dependencies
  • Require-Bundle vs. Import-Package
  • Bundle Version Numbering
  • Bundle Class Loading
  • Refresh

Unit 4: Avoiding Bundle Dependency Errors

  • The Bundle Class Space
  • Avoiding ClassCastExceptions
  • Avoiding Loader Constraint Violations

Unit 5: Bundle Localization

  • Manifest Localization Keys
  • Properties Files
  • Specifying the Locale
  • Accessing Headers Programmatically

Unit 6: Bundle Fragments

  • Example Fragment Uses
  • The Fragment-Host Header
  • Fragments and Dependencies
  • The Eclipse Build Properties Editor
  • Project Structure vs. Bundle Structure
  • The File
  • Eclipse Run Configurations

Unit 7: Dynamic Services (Optional)

  • Dynamic Services Big Picture
  • Examples: The Services Compendium
  • Service Providers
  • Service Consumers
  • Using Service Trackers
  • Filtering on Properties

Unit 8: More SWT/JFace

  • Basic Widgets (Label, Text, Button)
  • Dispose
  • Events
  • Listeners

Unit 9: Layouts

  • Layouts (FillLayout, RowLayout, GridLayout)
  • GridData
  • Layout() and pack()

Unit 10: JFace Actions

  • Menus
  • Toolbars
  • Actions

Unit 11: Resource Management

  • Preventing Leaks
  • Colors, Images, Fonts, GraphicsContext

Unit 12: Tables and Trees

  • Tables and Table Styles
  • Trees and Tree Styles

Unit 13: Platform Independence (Optional)

  • Platform-Independent Status Line
  • Platform-Independent Logging
  • Platform-Independent Jobs

Unit 14: JFace Viewers (Optional)

  • TableViewers
  • TreeViewers

Unit 15: Data Binding (Optional)

  • The Data Binding Alternative
  • Observable: a bean/property/thread combination
  • Using a DataBindingContext to create bindings between observables
  • Realms, Setting the default realm
  • Validation

Unit 16: RCP Overview

  • What is RCP?
  • RCP Benefits
  • Example Plug-ins
  • RCP Footprint
  • RCP Deliverable Configurations
  • The Eclipse Foundation

Unit 17: Plug-ins

  • What is a Plug-in?
  • Extensions and Extension Points
  • Application Structure
  • Key RCP Application Classes
  • A “Hello, world” Application

Unit 18: The Workbench

  • The org.eclipse.ui Plug-in
  • Workbench Visual Elements: Menus, Toolbars, Perspectives, Views
  • Classes: IWorkbench, etc.
  • Classes: EditorPart, ViewPart
  • Classes: The Advisor Classes
  • Classes: Perspective, View
  • Classes: Site

Unit 19: Status

  • IStatus
  • StatusManager
  • MultiStatus

Unit 20: The Selection Service

  • SelectionService Overview
  • Implementing ISelectionProvider
  • Registering a Provider
  • Acquiring the Current Selection
  • Adding a SelectionListener
  • Implementing IPropertySource
  • The IAdaptable Interface
  • A Complete Example

Unit 21: The Command Framework

  • Part 1 — an End-to-End Example
    • The Command Framework
    • The commands Extension Point
    • Command Parameters
    • Handlers
    • The handlers Extension Point
    • The bindings Extension Point
  • Part 2 — menus rather than bindings
    • The menus Extension Point
    • LocationURI
    • Command Categories
    • Contexts
    • Programmatic Command Invocation

Unit 22: Core Expressions

  • Using Core Expressions
  • Example
  • The definitions Extension Point
  • Handlers
  • Command Framework Variables

Unit 23: Jobs

  • The Eclipse Jobs API: Advantages
  • A “Hello, World” Job
  • The Job Class
  • Jobs and the Status Line

Unit 24: Preferences

  • Preference Terms
  • Nodes
  • Scopes
  • The Default Scope
  • The Instance Scope
  • Alternative Access to Instance-Scope Preferences
  • The Configuration Scope
  • Adding a Preference Page
  • Adding the Preference Menu Item
  • Example
  • File Access

Unit 25: Deployment

  • Product
  • Deployment Structure
  • Branding
  • The Product Configuration Editor
  • Exporting
  • Deployment Options

Unit 26: Fragments and Features

  • Fragments
  • Fragment Uses
  • Fragments and Dependencies
  • Example Fragment.xml
  • Example MANIFEST.MF
  • Version Numbering
  • Features
  • Update Sites

Unit 27: Conclusion

We regularly offer classes in these and other cities. Atlanta, Austin, Baltimore, Calgary, Chicago, Cleveland, Dallas, Denver, Detroit, Houston, Jacksonville, Miami, Montreal, New York City, Orlando, Ottawa, Philadelphia, Phoenix, Pittsburgh, Seattle, Toronto, Vancouver, Washington DC.
*Your name:

*Your e-mail:


*Company name:

Additional notes:

We have received your message. A sales representative will contact you soon.

Thank you!.

more details
buy this course

Register for a courseware sample

It's simple, and free.


Thank You!

You will receive an email shortly containing a link to download the requested sample of the labs for this course.