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
- 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 build.properties 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
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)
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 commands Extension Point
- Command Parameters
- Handlers
- The handlers Extension Point
- The bindings Extension Point
- Part 2 — menus rather than bindings
- The menus Extension Point
-
- 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
- File Access
Unit 25: Deployment
- Product
- Deployment Structure
- Branding
- The Product Configuration Editor
- Exporting
- Deployment Options
Unit 26: Fragments and Features
- Fragments
- Fragment Uses
- Example Fragment.xml
- Example MANIFEST.MF
- Version Numbering
- Features
- Update Sites
Unit 27: Conclusion