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 covered include:
1 Data Transfer using Drag and Drop and Clipboard
2 Developing text based editors
3 Eclipse Concurrency and the Job API
4 Eclipse Modeling Framework (EMF)
5 Eclipse Modeling Framework – Customize Code Generation
6 Extending the JDT
7 Draw2D API
8 Rendering a business model in the Graphical Editor Framework (GEF)
9 Editing using GEF
10 Creating and editing connections in GEF
11 Additional GEF techniques
 
Contents:
1 Data Transfer using Drag and Drop and Clipboard (includes 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 Decorators
    • Decorator classes
    • Defining decorators in plugin.xml
    • Defining and Enabling custom decorators
   
2 Developing text based Editors (includes lab)
 
  • Introduction
  • Understand Eclipse JFace Text framework
  • Standard Text Editor functions
  • 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
   
3 Eclipse Concurrency and the Job API (includes 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
   
4 Eclipse Modeling Framework (EMF) (includes 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
   
5 Eclipse Modeling Framework - Customize Code Generation (includes 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
   
6 Extending the Java Development Tools (JDT) (includes lab)
 
  • Java Develpment 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
   
7 Draw 2D API (includes 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    
   
8 Rendering a business model in Graphical Editor Framework (GEF) (includes lab)
 
  • Draw 2D Overview
  • GEF Components
  • Introduction
  • MVC for GEF
  • In-memory model of GEF editor
  • EditorParts
  • Creating Models
  • Creating Views
  • Creating Controllers
  • Handling events on Figures
   
9 Editing using GEF (includes lab)
 
  • Creating a model and responding to Model Changes
  • Role of the Edit Domain
  • Event flow on UI Actions
  • Handling Actions on EditPart Viewers
  • Tools, Requests and Feedback
  • Commands
  • Implementing the Command Stack
  • Edit Policies
  • Palette
   
10 Creating and editing Connections in GEF (includes lab)
 
  • Overview
  • Draw 2D Parts of a Connection
    • Polyline Class
    • Connection Interface
    • ConnectionAnchor Interface
    • ConnectionLayer Class
    • PolylineConnection Class
  • GEF Parts of a Connection
    • The View for a Connection
    • The Controller for a Connection
    • The Connection Nodes
  • Bending Connections
 
11 Additional GEF techniques (includes lab)
 
  • Drag and Drop
  • Adapting to the Properties View
  • Displaying Model Information in the Outline View
  • Printing
  • Zooming
  • Handling Keystrokes
 
   
Hands-on Labs:
1 ExEclipseDnD: Using Drag-and-Drop in Eclipse
2 ExSQLEditor: Build a custom text editor using the JFace Text Framework
3 ExJobAPI: Understanding the Job API
4 ExEMF-Model: Generating an EMF Model using Annotated Java Interfaces
5 ExEMF-CustomizeCoding: Customizing and Manipulating the Model
6 ExExtendingJDT: Extending the Java Development Tools
7 ExDraw2D: Draw Figures using Eclipse Draw 2D
8 ExBuildGEFEditor: Render a Database Schema Diagram using GEF
9 ExGEF_EditModel: Managing model and views using EditParts
10 ExGEF_Connections: Manage Connections Between Diagrams
11 ExGEF_Techniques: Use Additional Techniques to Create a Robust Editor
   
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.