Learn how to harness the power of the Eclipse Foundation's Rich Client Platform to develop feature-rich end-user applications.
System architects, application developers and software engineers who will be designing and/or implementing applications using the Eclipse Rich Client Platform (RCP).
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.
Each student should have some previous Java programming experience.
Outline of 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
Native Code Libraries
Activators and Bundle Lifecycle
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
Require-Bundle vs. Import-Package
Bundle Version Numbering
Bundle Class Loading
Unit 4: Avoiding Bundle Dependency Errors
The Bundle Class Space
Avoiding Loader Constraint Violations
Unit 5: Bundle Localization
Manifest Localization Keys
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 build.properties File
Eclipse Run Configurations
Unit 7: Dynamic Services (Optional)
Dynamic Services Big Picture
Examples: The Services Compendium
Using Service Trackers
Filtering on Properties
Unit 8: More SWT/JFace
Basic Widgets (Label, Text, Button)
Unit 9: Layouts
Layouts (FillLayout, RowLayout, GridLayout)
Layout() and pack()
Unit 10: JFace Actions
Unit 11: Resource Management
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
Unit 14: JFace Viewers (Optional)
Unit 15: Data Binding (Optional)
The Data Binding Alternative
Observable: a bean/property/thread combination
Using a DataBindingContext to create bindings between observables
Our clients have included prestigious national organisations such as Oxford University Press, multi-national private corporations such as JP Morgan and HSBC, as well
as public sector institutions such as the Department of Defence and the Department of Health.