In late December 2009, Sun Microsystems (which eventually became part of Oracle) released the first preview version of JavaFX Composer - a What You See Is What You Get (WYSIWYG) tool for building rich, graphical GUIs. It borrows its visual metaphors from graphical design tools where developers drag components from a palette and arrange them on the stage during design. Composer
generates the appropriate JavaFX code to keep both design-view and code-view synchronized. JavaFX Composer
supports the following functionalities:
Drag-and-drop design
Composer
supports the ability to drag visual components and GUI controls directly on Stage.Composer
provides a WYSIWYG designer environment with on-the-fly alignment guides, property editors, and round-trip code synchronization (these are the same characteristics found in NetBeans Swing GUI Builder). Besides visual components, developers can drag-and-drop other visual components, including paint, effects, and charts.Composer
even provides a Design Analyser that dynamically detects design issues as they occur.The Data source framework
Composer
introduces theDataSource
API, designed to simplify and standardize access of data from different sources. Each source type comes with a correspondingDataSource
, includingHttpDataSource, DbDataSource, FileDataSource, StorageDataSource
, andClassPathDataSource
. TheDataSource
API also offers a filtering mechanism to let users select data nodes, using an XPath-like expression.Composer
provides configuration wizards as well, to help developers walk through the steps for setting up a data source.States this is a mechanism that lets developers organize visual components based on a set of current property values (or states). This feature is synonymous to building a presentation, where the slide represents a state in which a component can appear. For each state (slide), the components may have different property values. When the user switches to a different state, the new property values are applied to the components. Users may switch between states by generating an event or through user actions. The action of switching between states can be controlled to include transition animations and effects that are automatically scripted by
Composer
.Binding
Composer
builds on the data-binding functionality built in to JavaFX to facilitate binding of component properties to either simple values, data sources, or to other component properties. WithinComposer
, developers are able to specify arbitrary bound expressions with custom type conversion supported. Regardless of what the properties of a component are bound to, the mechanism is still the same: when the target expression is updated, the bound property is updated automatically.