| 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
|
| |
|
|
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.
|