Blog

Eclipse 4.1 Application Platform - A platform for anyone

This post is dedicated to "Eclipse 4.1 Application Platform" (EAP). So what is the EAP? In short it is a Widget-Toolkit agonstic UI-Application framework for OSGi which provides the following features:

  • An extensible central application model abstracting the main concepts of UI-Applications:
    • UI-Concepts like Windows, Toolbars, Parts, ...
    • None-UI Concepts like Commands and Handlers, Extensions, ...
    • An event bus to get away with listeners
    • UI-State persistance
    • ...
  • A dependency injection container to keep up with modern programming technologies
  • An extension system build applications from various modules instead one big

As said the EAP-Core is widget agonstic and can be used with any native UI-Technology you want to write your applications with. Here's an example application coded 3 times with the native technologies. The only thing they share is the EAP which provides the runtime platform.

  • SWT
  • Swing
  • JavaFX

As of now SWT is the platform with the best support because the Eclipse 4.1 SDK is built on top of EAP and ships with a set of default SWT-Renderes. The Swing and JavaFX implementations for EAP are currently proof of concepts but can be used as a show case of how powerful and flexible the design of EAP is (you'll find the sources in my github-repo). The only interface EAP requires you to implement and register looks is this:

public interface IPresentationEngine {
 public Object createGui(MUIElement element, Object parentWidget, IEclipseContext parentContext);

 public Object createGui(MUIElement element);

 public void removeGui(MUIElement element);

 public Object run(MApplicationElement uiRoot, IEclipseContext appContext);

 public void stop();

This where EAP hands over control to you to build and keep the UI in sync with the model. The already written IPresentationEngine implementation for Eclipse 4.1 is a good source of inspiration on how one could approach the problem but finally it is up to you - all the EAP expects you to respect is the IPresentationEngine-Interface. ... and before some mentions that the current application model is not supporting modern UI-Concepts needed to built App-UIs as you know them from smart phones, tablets, ... . You can extend the application model and add the concepts you think are missing. All I can say: If you have the task to write an UI-Application you should take a look at this new but quite solid runtime platform because it offers you many advanced concepts you'd have to reinvent if not doing so.

published on
Previous
Introducing e(fx)clipse