Eclipse Plugins RCP GEF
 
 
Advanced Eclipse Plugins Development
 
Duration:   5 days Level:  Advanced Format:   50% lab
 
Description:

This course presents advanced concepts required to develop high performance integrated development environments based on the eclipse platform.

As GEF is based on MVC architecture, every GEF-based application uses a model to represent the state of the diagrams being created and edited. GEF allows you to use any objects as model objects within your application, however, using an EMF model provides some advantages over using arbitrary objects. This course covers the basics of both GEF and EMF.

Custom editors can enhance productivity. You will learn how to create a customized text editor by using the facilities provided in the platform.

Executables built by your plug-ins can be invoked correctly by using a launcher. The program can be launched for regular execution or in debug mode, depending on the capabilities of your plug-in. You can learn more about this here.
 
Topics:
1 Eclipse Plugin Architecture
2 Plug-in Development Environment (PDE) & Eclipse Plugin Development
3 Draw2D API
4 Graphical Editor Framework (GEF)
5 Data Transfer using Drag and Drop and Clipboard
6 Developing text based editors
7 Eclipse Modeling Framework (EMF)
8 Eclipse Modeling Framework – Customize Code Generation
9 Eclipse Concurrency
10 Extending JDT
 
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 (Include lab)
 
  • Why PDE?
  • Concepts
  • Plug-in and Life cycle
  • 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 Draw 2D API (Include lab)
 
  • Draw 2D introduction
  • Overview of Draw 2D system
  • Figures
  • LightweightSystem and its components
  • Draw 2D Shapes
  • Draw 2D Widgets
  • Major features of Draw 2D API
  • Draw 2D application
    • Creating Shell and LightweightSystem
    • Creating Figures and Connection
    • Registering event handlers
    • Handling Draw 2D events
   
4 Draw 2D and Graphical Editor Framework (GEF) API (Include lab)
 
  • Draw 2D
    • Draw 2D introduction
    • Overview of Draw 2D system
    • Figures
    • LightweightSystem and its components
    • Major features of Draw 2D API
    • Handling events on Figures
    • Draw 2D application
  • GEF Components
    • Introduction
    • MVC for GEF
    • In-memory model of GEF editor
    • EditorParts
    • Connecting Figures
    • Handling events on Figures
    • Creating a model and responding to Model Changes
    • Implementing editing behavior using EditPolicies, Request and Commands
   
5 Enhancing Views (include lab)
 
  • Drag and Drop in the Eclipse UI
    • Understand Eclipse Drag-n-Drop facility
    • Understand SWT Drag-n-Drop API
    • Program drag source and drop target to add drag and drop support to Eclipse views
    • Transfer data within application using Clipboard
  • Understanding Decorators in Eclipse
    • What are Decorators?
    • Types of Decorations
    • Decorator classes
    • Defining decorators in plugin.xml
    • Defining and Enabling custom decorators
   
6 Developing Editors (include lab)
 
  • Introduction
  • Understand Eclipse JFace Text framework
  • Editor Configuration – Customization Points
  • Text Editor classes
  • The AbstractTextEditor class
    • Class relationships
    • Model-View-Controller relationships
  • How to create custom text editor
    • Create a basic text editor
    • Add Content Assistant
    • Add syntax-based Color Highlighting
    • Add Content Formatting
   
7 Eclipse Modeling Framework (EMF) – Introduction (include lab)
 
  • Understand Eclipse Modeling Framework (EMF)
  • The ecore model
  • The Generator Model
  • Generating EMF Model from Annotated Java Code
  • Generate Model implementation code
  • Generate model.edit and model.editor plug-ins
   
8 EMF – Customize Code Generation (include lab)
 
  • Learn techniques to customize code generation in EMF
  • Understand GenModel properties
  • Edit GenModel properties to customize code generation
  • EMF.Edit framework overview
  • Modify presentation behavior
  • EMF Reflective API overview
  • Create model instance using Reflective API
  • Serialize model in XMI format
  • Introduction to JET
  • Use of JET in EMF
   
9 Eclipse Concurrency (include lab)
 
  • Concurrency infrastructure of Eclipse
  • The Job Manager
  • Coding & Scheduling Jobs
  • Listening for Job Change Events
  • Scheduling Rules
  • Providing Exclusive Access for Shared Objects
  • Reporting progress/feedback about the jobs
   
10 Extending the Java Development Tools (include lab)
 
  • Java Development Tooling (JDT) and its uses
  • Major components of JDT
  • Java Model
  • Java Model Elements and relationship
  • About JavaCore
  • About ICompilationUnit
  • Abstract Syntax Tree (AST)
    • AST, ASTParser, and AST Node
    • Handling element change notifications
  • Ways of extending the JDT User Interface
   
Hands-on Labs:
1 ExPDE: Develop a ReadDataPlugin using PDE in Eclipse
2 ExDraw2D: Developing shapes using the Eclipse Draw 2D API
3 ExGEF: Developing Graphical Editor using Draw 2D and GEF API
4 ExEclipseDnD: Using Drag-n-Drop in Eclipse
5 ExSQLEditor: Create custom Text Editor using JFace Text Framework
6 ExEMF-Model: Generating EMF Model
7 ExEMF-CustomizeCoding: Customizing and manipulating the Model
8 ExJob: Understanding the Job API
9 ExExtendingJDT: Extending the Java Development Tools
   
Prerequisites:
Understanding of basic eclipse concepts
Ability to create and deploy simple plug-ins
Prerequisites can be satisfied by taking Eclipse University course: Developing Eclipse Plugins
   
Audience:
Tool developers, tool vendors, and consultants who need to build their own plugins for Eclipse-based tools.