JavaFX Tooling and Runtime for Eclipse and OSGi
e(fx)clipse provides JavaFX tooling for the Eclipse IDE.
It's not all about tooling in the e(fx)clipse project: we also provide a runtime platform and libraries you can use in your JavaFX 8 applications.
OpenJFX / JavaFX 8 is currently available on Windows, Mac OS X, and Linux as part of the OpenJDK 8 & Oracle JDK 8. Our tooling supports all of these three platforms.
You can read about the latest developments on BestSolution's specific blog.
Please check out our community section or visit also project's addons-channel. We are sure you'll find all answers needed there.
By integrating into the Eclipse JDT, e.g., by providing a specialized classpath container, e(fx)clipse allows users to develop JavaFX applications in the same fashion they develop Swing and SWT applications.
By integrating into the Eclipse 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 allows for defining the UI structure using an XML format named FXML. Unlike other XML formats, FXML has no DTD/Schema but it provides serialization for an arbitrary (JavaFX) object graph, which means standard XML editors are useless when it comes to FXML.
e(fx)clipse is going another route by providing a tooling for a very simple object graph definition language named FXGraph which gets translated into FXML in the background. So you don't need an extra library at runtime since JavaFX 2 can load FXML files natively.
One of the coolest feature of FXGraph is that it integrates with the Eclipse JDT, giving you for instance the Javadoc for all referenced elements and autocompletion support. The DSL allows the user to attach some extra information (e.g. CSS files) such 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, which knows the CSS properties used by JavaFX 2, authoring CSS files for your JavaFX project is as easy as in web projects.
When you define your UI using FXGraph, you will see immediately the effect of your CSS changes on your application at runtime. This feature helps you try out different CSS settings without having to start and stop your application.
FXML is a DTD/Schema-less XML serialization specification for the definition of JavaFX UIs and Java object graphs in general. e(fx)clipse provides you with advanced tooling for authoring this file format. As the FXML file references Java elements, the editor tightly integrates with the Eclipse JDT such that, for instance, you can see the Javadoc of Java elements like classes and methods in your FXML editor.
EMF Edit UI for JavaFX allows you to view your EMF models in JavaFX TextFields, ListViews, TreeViews and TableViews with only a few lines of code. It provides out-of-the-box support for drag & drop, undo / redo, inline editing, dynamic icons, labels and overlays.
The e(fx)clipse standard library provides some useful extensions for writing JavaFX code. The library offers, among other features, additional layout panels people are familiar with in SWT, using Google Guice together with FXML, Eclipse databinding for JavaFX properties, and much more.
Unfortunately, JavaFX was not written with OSGi in mind so there are various sources of error when running inside OSGi. These problems include the location of the JavaFX binaries in your Java installation and class loading issues because of OSGi's visibility rules. e(fx)clipse provides helper libraries for dealing with all of those problems and makes writing JavaFX applications on top of Eclipse Equinox feel as easy as it is with SWT and Swing.
Once you start developing medium-sized to big JavaFX applications, you'll ask for a platform that provides a command/handler framework, a generic extension API, dependency injection, etc. Fortunately, such a platform is offered by the Eclipse 4.x SDK which, due to its design, can be used with any UI technology. e(fx)clipse provides so called JavaFX renderers for writing JavaFX RCP applications on this platform.