The e(fx)clipse project is a proposed open source project under the Technology.
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the Eclipse community. Please send all feedback to the Eclipse Proposals Forum.
JavaFX is the new UI and graphics toolkit developed by Oracle and the official successor of Swing. Since Java7 Update 7 it has been part of the JRE/JDK distributions and the entire source code is expected to be open sourced by February 2013 as part of the OpenJDK.
JavaFX is designed to run not only on desktop systems but also on low-cost hardware like the Rasperry PI and Beagleboard and plays an important role in Oracle "Internet of things" vision.
From a developer perspective, developing JavaFX applications involves the following technologies:
Developers intending to develop a JavaFX application will most likely deal with three technologies: Java, CSS and FXML.
To simplify development, the project provides:
To help developers to build and deploy their applications, JavaFX provides specialized ant-tasks that aid the developer when packaging an application as an installable unit (msi, rpm, dmg). e(fx)clipse tooling provides a specialized editor to help the developer configure and drive the build process.
For developers who do not want to define their UI in XML, the project provides an alternative format named FXGraph that looks similar to JSON. More information about the format can be found at http://efxclipse.org/trac/wiki/FXGraph
Developers who are developing JavaFX applications on top of OSGi will most likely use PDE as their development tool. Because JavaFX is not on the bootclasspath, PDE needs to be tweaked in order to allow a decent development experience. Besides the low-level integration into PDE, the project also provides wizards to easily bootstrap applications.
JavaFX is not on the bootclasspath and not JSRed until Java9. So Equinox will not know about it out of the box. e(fx)clipse provides an extension for equinox to fill this gap.
Beside this low level support, the project provides all sorts of utilities, for example easened integration of JavaFX components when run inside OSGi.
Eclipse Databinding is a technology to bind domain objects to UI-Controls. JavaFX has a custom property and binding system. e(fx)clipse provides adapters for the JavaFX property system so that default Eclipse databinding can be used.
Developers using EMF to model their domain models often use code generated out of their Ecore definition. This allows them to setup structured controls like List, Table and Tree with very few lines of code. The project provides integration for EMF edit so that developers get the same benefits they do when using EMF in conjunction with SWT.
The Eclipse 4 Application Platform has been designed from day one to be widget toolkit neutral. The e(fx)clipse project provides so called JavaFX-renderers, allowing developers to leverage all parts of the Eclipse 4 Application Platform (Dependency Injection, Application Model, Command-Framework, .....) without using SWT.
e(fx)clipse is a project currently hosted at github (https://github.com/tomsontom/e-fx-clipse), providing tooling and runtime components that help developers to create JavaFX applications.
Since its creation in July 2011, the project has seen sixteen releases and has gained an active user base that has started adopting different parts of the project. The project maintains a public bug-tracker (http://efxclipse.org/trac) and a discussion forum (https://groups.google.com/forum/#!forum/efxclipse).
Like outlined in the initial paragraphs JavaFX is THE next UI-Toolkit for Java and it is expected that many people will develop applications with it in the near future.
To stay relevant in future the Eclipse IDE has to provide top quality support for JavaFX.
The project provides runtime components who can be adopted by other Eclipse.org projects (like Riena, Scout) and because the Eclipse Process ensures IP code the adoption in commercial products is going to be much easier.
The current code is hosted at github and provides an implementation of all mentionned editors, wizards and runtime items.
It is structured in OSGi-Bundles and split in 3 categories:
The following individuals are proposed as initial committers to the project:
The following Architecture Council members will mentor this project:
The following individuals, organisations, companies and projects have expressed interest in this project:
|29-01-2013||Added more interested parties|
Back to the top