Eclipse Plugins RCP GEF
 
 
Developing Eclipse Plugins
 
Duration:   5 days Level:  Advanced Format:   50% lab
 
Description:
NOTE: In all hands-on labs, you will learn to develop Eclipse plugins without developing an RCP application. Only in the last RCP module and lab, you will learn to develop an RCP application.
 
Eclipse is an open platform for tool integration built by an open community of tool providers. It is designed for building integrated development environments (IDEs) and Rich Client Platform (RCP) based applications that can be used to create applications as diverse as web sites, embedded Java programs, C++ programs, and Enterprise JavaBeans. The Eclipse Platform is built on a mechanism for discovering, integrating, and running modules called plug-ins. This allows the Platform to be extended to work with new content types or to do new things with existing content types. Except for a small kernel known as the Platform Runtime, all of the Eclipse Platform's functionality is located in plug-ins which are coded in Java. This is an in-depth course on how to build Eclipse plug-ins of increasing complexity.
 
Topics covered include:
1 Eclipse Plug-in architecture
2 Plug-in Development Environment (PDE)
3 The Standard Widget Toolkit (SWT)
4 Views
5 Adding Actions in the Workbench Window and Views
6 Editors
7 Dialogs
8 Wizards
9 Add help contents and context sensitive help contributions
10 Add Feature, Branding and Updates
11 Workspace Resource Programming
12 Processing Workspace Change Events
13 Managing Resources with Natures and Builders
14 Eclipse Forms to create rich and powerful user interfaces (Optional)
15 Multi-page Form Editor (Optional)
 
Contents:
1 Eclipse Plug-in Architecture
 
  • Eclipse Overview
  • Plug-in architecture
    • Plug-in, Extension Point, and Extension
    • Plug-in manifest
    • Eclipse overview
    • Plug-in features and fragments
  • Platform architecture
    • Workspace Component
    • Workspace and Resource API
    • Incremental Project Builders
    • SWT
    • JFace
    • Workbench, Editors, Views, Perspectives
    • Debug component
  • PDE Introduction
   
2 Plug-in Development Environment (PDE) & Eclipse Plug-in Development (includes lab)
 
  • Why PDE?
  • Concepts
    • RCP application file structure
    • Run an RCP application
  • Plug-in and Life cycle
    • Overview and Application control flow
    • Main application class and how it creates and run workbench
    • WorkbenchAdvisor class and its lifecycle events
    • Default (Initial) perspective
  • Plug-in structure
  • Work with PDE
    • Configure PDE
    • Create a new Plug-in project
    • Plug-in manifest file and editor
    • Dependencies
    • Runtime
    • Extensions and Extension points
    • Running the plug-in
  • Plug-in communication
  • Plug-in fragments
   
3 SWT - The Standard Widget Toolkit (includes lab)
 
  • Why SWT
  • SWT features
  • SWT packages
  • Shell and Display
  • Relationship between Thread and Display
  • Common SWT widgets
  • Constructor of an SWT control
  • Layout managers in SWT
    • FillLayout
    • RowLayout
    • GridLayout and GridData
    • FormLayout and FormData
  • SWT events
  • Error handling
  • SWT application at work
   
4 Views (includes lab)
 
  • Introduction
  • JFace Viewer Framework–In details
  • Views : The General-Purpose Workbench Part
    • Behavior and Architecture
    • Class diagram and Lifecycle
  • How to create a custom view
    • View Declaration
    • Adding the View to a Perspective
    • Creating the View Class (View Part)
  • Linking with the Properties View
    • Providing content in the Properties View
   
5 Adding Actions in the Workbench Window and Views (includes lab)
 
  • Introduction
  • Add a top-level menu and toolbar
    • Create Top-level Menu
    • Add standard File > Exit and Help > About actions
    • Create a custom action and place the it in the toolbar and menu
    • Customize the Toolbar by adding separator
  • System Tray Integration
    • Add Application icon to the task tray
    • Allow Application to minimize to the task tray
    • Add the standard action to the context menu of the task tray item
  • Adding View Actions
    • Defining a view context submenu
    • Defining a view context menu action
    • Defining a view toolbar action
    • Defining a view pull-down submenu and action
    • Filtering the View
    • Sorting the view
    • Add a view opened indicator to the status line
    • Saving and Restoring View State
  • Declaratively add Actions
    • org.eclipse.ui.menus extension point
    • org.eclipse.ui.commands extension point
    • org.eclipse.ui.handlers extension point
    • org.eclipse.ui.bindings extension point
    • Declaratively add Actions to:
      • Main menu and toolbar
      • View menu and toolbar
      • Context Menu
      • Status bar area
    • Use keyboard combinations to enable actions
6 Editors (includes lab)
 
  • Introduction
  • The difference between a View and an Editor
  • Editor behavior and architecture
  • Editor class diagram and its lifecycle
  • How to create custom editor
    • Editor declaration
    • Creating Editor class (Editor Part)
    • Editing – using Cell editors
    • Handling the Saving of the Editor input
    • Synchronizing the Model and the Editor
    • Editor Actions
      • Context menu
      • Top-level Menu
      • Toolbar buttons
      • Keyboard actions
      • undo / redo /cut /copy /paste
    • Linking an Editor and the outline view
   
7 Dialogs (includes lab)
 
  • Introduction
  • Eclipse packages for Dialogs
  • Logical view of the Workspace
  • Standard dialogs
  • Preferences dialog (JFace)
    • Structural view
    • Preferences class
    • Preference page at work
  • Field editor preference page
    • Field editor preferences classes
    • Build a field editor preference page
  • Common reusable dialogs
   
8 Wizards (includes lab)
 
  • Introduction
  • Eclipse packages for Wizards
  • Contributing Wizards
  • Defining a Wizard Extension
  • Implementing a Wizard
  • Implementing a Wizard Page
  • Customizing a Wizard
  • Controlling Wizard Page Progression
    • Enable/ disable Next , Previous and Finish buttons
    • Finish Processing
  • Displaying messages on the title of the wizard
  • Reusable specialized wizard pages
   
9 Add help contents and context sensitive help contributions (includes lab)
 
  • Introduction
  • Getting the Help Plug-ins and It's configuration
  • Add the Help Action and Content
  • Searching online help
  • Help Content Structure
  • Context-Sensitive Help (F1)
   
10 Add Feature, Branding and Updates (includes lab)
 
  • Introduction
  • Add the Updates Manager Wizard (Help > Software Updates action)
  • Eclipse packages for adding Updates Manager wizard
  • Create eclipse Feature based product
  • Feature Branding - Introduction
  • Feature Branding
    • About.ini
    • About.properties
    • About.mappings
    • About.html
  • Create eclipse Update-site project to host the product feature and plug-ins
  • Exporting a Plug-in based on the Feature
   
11 Workspace Resource Programming (includes lab)
 
  • Resource Framework Concepts
  • Physical view of the Workspace
  • Logical view of the Workspace
  • Resource model and file system interaction
  • Workspace API
  • Resource properties
  • Markers
   
12 Processing Workspace Change Events (includes lab)
 
  • Workspace change events
    • Introduction
    • Resource change event types
    • Resource change event flags
    • Resource change event flow
    • Add / remove resource change listeners
    • Handle resource change event
    • Visiting Resource Delta
    • Handle batch events
  • Workspace save events
    • Save Events – what and when
    • Save Participants API
    • Implement Save Participant
    • Save Participant processing overview
   
13 Managing Resources with Natures and Builders
 
  • Customizing project processing
  • Projects and project descriptions
  • Define and implementing natures
  • Create natures to support project configuration
  • Add a nature to a project
  • Remove a nature to a project
  • Builder and Nature extension points
  • Add a builder to a project
  • Builder concepts
  • Builder requirements
  • Define builder
  • Remove builder
   
14 (Optional) Eclipse Forms to create rich and powerful user interfaces (include lab)
 
  • Introduction
  • Concept of forms (eclipse scrolled form)
  • Use of Eclipse plug-ins to create forms
  • Toolkit to manage colors, hyperlink groups and other aspects of a form, and serve as a factory for many SWT  controls
  • Create common controls
    • Hyper link
    • Image link
    • Sections
    • Expandable Controls
    • Form Text
  • Achieving a flat look using toolkit
  • Use of Layout manager that lays out controls in a manner similar to an HTML table layout algorithm
  • Concept of custom controls
  • Exporting an RCP application
   
15 (Optional) Multi-page Form Editor (includes lab)
 
  • Introduction
  • Use of FormEditor to create eclipse multi-page editor
  • Concept of Managed Forms
  • Define listeners for Hyperlinks
  • Create a FormPage with a master-details block
  • Create a FormPage with nested tabs
  • Manage events like dirty state, saving, commit for FormPage
 
Hands-on Labs:
1 ExPDE: Develop a ReadDataPlugin using PDE in Eclipse
2 ExSWT: Using SWT in an Application
3 ExViews: a custom View using JFace viewer Framework
4 ExActions: Adding Actions to Workbench Window and Views
5 ExEditor: Create a customized Database Table Editor using JFace Framework
6 ExDialog: Set a file name through Preference Page and view its data
7 ExWizard: Wizard to create JDBC database access configuration
8 ExHelp: Add help contents and context sensitive help contributions
9 ExUpdate: Add Feature, Branding and Updates
10 ExResources_Lab1: Workspace Resource Programming
11 ExResources_Lab2: Processing Workspace Events
12 (Optional) ExFormUI: Eclipse Forms to create rich and powerful user interface
13 (Optional) ExMultiPageEditor: Multi-page form editor
   
Prerequisites:
Extensible Markup Language (XML), Strong knowledge of Java, design patterns, and GUI development experience. Prerequisites can be satisfied by taking Eclipse University Courses: “Java Programming using Eclipse” and “XML for Java programmers using Eclipse”.
   
Audience:
Tool developers, tool vendors, and consultants who need to build their own plugins for Eclipse-based tools.