The Eclipse 4 (e4) Application Platform is the next major release of the Eclipse RCP SDK. In response to the changing software landscape, the Eclipse e4 team reimplemented basic parts of the Eclipse Platform to follow new paradigms. With the dual goals of decreasing complexity and making Eclipse applications visually more appealing, Eclipse 4 introduces innovative programming techniques such as: dependency injection, annotations and CSS styling. It reduces complexity by providing a consistent model of the workbench, based on EMF.
In this course you learn to develop applications based on the Eclipse 4 Application Platform.
During the course, you will iteratively create an Eclipse 4 application including a workbench, views, menu items, and services. You will learn how to use dependency injection and annotations with Eclipse 4 and how to style your application with Cascading Style Sheets (CSS). Finally, you will learn how to integrate innovations from Eclipse 4 into existing applications based on Eclipse 3.x.
This course is designed by Eclipse project leads and committers. We keep a small class format (max. 6-8 participants) to ensure you will gain a broad understanding of Eclipse 4 and receive plenty of individual support from our experts.
Basic familiarity using the Eclipse IDE and knowledge of Java and object oriented programming are prerequisites for this course.
Custom programs, for example, combining Eclipse 4 RCP Development and EMF are available.
Duration: 4 days
Dates and Registration
For dates of public trainings in Munich and exclusive onsite trainings please get in contact with us.
Course Goals, Audience and Prerequisites
Course Goals
- Understand the basic concepts of the Eclipse 4 Application Platform
- Apply those concepts to the development of general GUI-applications
- Gain a working knowledge of the Eclipse 4 architecture and individual subsystems
- Become familiar with best practices for Eclipse 4 RCP development
Target Audience
- Java developers looking to benefit from the Eclipse 4 Application Platform for developing general, non-IDE, GUI applications
- Software architects interested in building business-wide software platforms
- Eclipse plug-in developers wanting to advance their knowledge and optimize their skills for RCP-specific scenarios
Prerequisites
- Knowledge of Java and object-oriented programming
- Experience of using the Eclipse IDE is desirable
- Basic knowledge of design patterns and XML
Course Outline
Eclipse 4 Application Platform Overview
- History and Motivation for a new platform
- Core innovations
- Architecture of an RCP application
- Plug-in based modularization
The Application Model
- Overview EMF (optional)
- Eclipse 4 Tooling
- Modeling an application
- Windowing: Window, Menu, Page, Perspective, View, Editor
- Linking the workbench model to implementations
- Programmatically modifying the workbench model
- Extending a model using fragments
SWT Widgets
- Introduction to SWT
- SWT widgets / controls
- Basic structure of an SWT application
- Threading in SWT
- SWT events
SWT Layouts
- SWT layout concepts
- Using SWT layout managers
JFace Viewers
- Introduction to Structured Viewers
- Using a JFace Tree Viewer
- Content and Label Providers
- Tables and the JFace Table Viewer
Dependency Injection
- Overview
- The Eclipse context
- Manual injection
- Programming with Annotations
Services
- Overview
- Using existing services
- Declaring custom services
Commands and Handlers
- Introduction to commands, items and handlers
- Integrating with the selection service
- Pop-up menus
- Conditional enablement and visibility
- Key Bindings
Modular Application Models
- Contribute extensions to an application model
- Model Fragments
- Model Processors
Editors
- Contributing and opening an editor
- Implementing an editor
- Managing the dirty state of an editor
Additional Model Elements and Services
- Perspectives
- Placeholder
OSGi Essentials
- OSGi and RCP
- How plug-ins work together
- Plug-in and package dependencies
- Plug-in lifecycle
- Versioning and naming conventions
JFace Wizards
- Contributing Wizards
- Defining a wizard extension
- Implementing a wizard and wizard pages
- Customizing a wizard
- Controlling wizard page progression
Data Binding
- What is the JFace Databinding?
- Prerequisites and limitations
- Databinding example
Optional and additional Topics
- CSS Styling
- Event Bus
- Defining your own extension points
- Internationalization (i18n)
- Testing with JUnit
- Additional topics
Outlook
- Using Eclipse 4 technologies in 3.x
- Migrating to Eclipse 4
- Additional technologies
More Info
Format
- Course duration: 4 days
- Course structure: instructor led with at least 50% hands-on labs and tutorials
- Learn better in a small group: maximum 6-8 participants per instructor
- Equipment: participants supply their own computer with an up-to-date installation of Eclipse
Languages
Classes in Germany are held in German. All other courses are held in English. Other languages are available on request.