JavaFX 2.0 Tooling and Runtime for Eclipse and OSGi
e(fx)clipse provides JavaFX tooling for the Eclipse IDE. We are currently supporting Eclipse 3.7.2 and the currently developed Eclipse 4.2.
It's not all about tooling in the e(fx)clipse project but we are also providing a runtime platform and libraries you can use in your JavaFX 2.0 applications.
JavaFX 2.0 is currently only available on Windows (GA), Mac OS X (Beta) and Linux (Developer Preview) the tooling is currently supported on all those 3 platforms as well.
By integrating into Eclipse JDT e.g. by providing a specialized classpath container, e(fx)clipse allows users to develop JavaFX applications like they develop Swing and SWT applications
By integrating into PDE e.g. by providing an enhanced PDEClasspath container, e(fx)clipse makes developing JavaFX applications for Eclipse Equinox as easy as developing SWT/Swing applications
JavaFX 2.0 allows to define the UI structure using an XML-Format named FXML unlike other XML-Formats this one has no DTD/Schema but in fact serialization for an arbitary (javafx) objectgraph which means standard XML editors are useless when it comes to fxml.
e(fx)clipse is going anther route by providing a tooling for a very simple object graph definition language named fxgraph which gets translated into fxml in the background. So at runtime you don't need an extra library because JavaFX 2.0 can load fxml-Files "natively".
One of the coolest feature of fxgraph is that it integrates with JDT (e.g. you get the JavaDoc for all referenced elements, autocompletion support, ...). The DSL allows the user to attach some extra information - e.g. CSS-Files - so that the integrated Live-Preview can make use of them.
Almost all IDEs provide a CSS-Editor but this editor only knows about the attributes used inside HTML-Browser applications. By providing a specialized CSS-Editor - who knows the CSS-Properties used by JavaFX 2.0 - authoring CSS files for your JavaFX application gets as easy as in web projects.
If you define your UI using fxgraph another nice feature is that you see directly what a change in your CSS-Definition will have in your application at runtime which helps you to try out different CSS settings without having to start and stop your application.
FXML is an DTD/Schemaless XML-Serialization specification to define JavaFX-UIs and Java object graphs in general. e(fx)clipse provides you advanced tooling to author this file format. Because the FXML-File references Java-Elements the editor tightly integrates with the JDT to e.g. show JavaDoc of Java-Elements like Classes, Methods, ... .
The e(fx)clipse standard library provides some useful extensions when writing JavaFX. The library provides for example additional layout panels people are familiar with in the SWT, using Google Guice together with FXML, Eclipse Databinding for JavaFX-Properties, ... .
Unfortunately JavaFX is not written with OSGi in mind so there are various places which are causing problems when running inside OSGi ranging from the fact JavaFX-Binaries are located somewhere on the users system, to problems when it comes to class loading because of OSGi's visibility rules. e(fx)clipse provides helper libraries to deal with all those problems and makes writing JavaFX applications ontop of Eclipse Equinox a feel as easy as it is with SWT and Swing
At the moment one wants to develop medium to big JavaFX application one immediately asks for a platform which e.g. provides a command/handler framework, a generic extension API, dependency injection, ... . Fortunately such a platform has been written already for the Eclipse 4.x SDK because of the design of this platform it can be used with an UI-Technology and so e(fx)clipse provides support by providing so called JavaFX-Renderers to write JavaFX RCP applications