A Widget for Everyone: Fine-Grained UI Extensions in the Eclipse Workbench


The Eclipse Platform boasts a rich set of tools for customizing the workbench. While the tools make it easy to add functionality, what if a savvy user wants to customize a single existing widget or even just a single existing widget for a single plugin? Such a savvy user should should at most only be required to provide the code for their new widget and the context in which it should be drawn. This may seem like an odd scenario when one considers the Platform from the perspective of an IDE, but as the Eclipse Platform continues to expand into a broader set of application the need to "simply tweak" the workbench becomes more pressing.

This talk will introduce users to the new fine-grained UI extensions API in the Eclipse Integrated Computational Environment (ICE) and its many applications. It will explain the origins of the idea from something to appease a bunch of (possibly rabid) scientists to a more general-purpose capability. ICE's data structures and their coupling to these extensions will be presented as well as the system's tight integration with Eclipse Forms. Concrete examples of non-traditional widgets for neutron scattering, nuclear energy, astrophysics and other areas will be presented using JavaFX and Eclipse technologies such as SWT-XY-Graph, NatTable and the Graphical Editing Framework. Future work to support classes from EMF and to integrate with e4 without the compatibility layer will also be discussed.

Attendees should have a decent knowledge of how to add extensions to Eclipse, including knowing something of Eclipse 3.x and 4.x as well as a decent amount of Java. Attendees can expect to see some very cool ways in which the Eclipse workbench can be extended with only a minor amount of new code. Information on the critical role of Facebook Open Academy students in this effort will also be presented. Slides will be uploaded in advance of the presentation.

The code in the talk is located at https://github.com/eclipse/ice/tree/next/org.eclipse.ice.demo and you can email jayjaybillings gmail com with specific questions.


Session details
Speaker(s): Session Type: Experience level:
Schedule info
Session Time Slot(s):
Thursday, March 10, 2016 - 13:45 to 14:20