JEP 209: JavaFX Scene Builder Update
Owner | Simon Vienot |
Type | Feature |
Scope | JDK |
Status | Closed / Delivered |
Release | 8u40 |
Component | client-libs |
Discussion | openjfx dash dev at openjdk dot java dot net |
Effort | M |
Duration | M |
Relates to | JEP 205: New Controls for JavaFX |
JEP 204: JavaFX Accessibility | |
Reviewed by | Eric Le Ponner |
Endorsed by | Richard Bair |
Created | 2014/06/25 17:51 |
Updated | 2014/10/01 16:14 |
Issue | 8048125 |
Summary
Update Scene Builder (SB) to support the new JavaFX features introduced in the 8u40 release and also address the most critical limitations of the SB 2.0 release, in particular the handling of FXML references. No significant new features will be added.
Goals
-
Allow the user to open and edit FXML documents which contain the new JFX UI components introduced in 8u40 (Spinner, Dialogs, and FormattedTextField).
-
Allow the user to drag and drop the new UI components from the palette into the document.
-
Provide minimal support to edit the properties of the new UI components and re-parent them within the document hierarchy.
-
Make sure all the accessible UI Controls behave properly in the SB UI.
-
Make FXML support more robust.
Non-Goals
-
Provide full editing capability for the new UI components.
-
Provide new direct-manipulation gestures.
-
Provide the ability to visualize components which are not JFX nodes in the design view.
-
Provide extended capabilities to make an accessible UI design.
-
Make SB fully accessible.
Motivation
JDK 8u40 release brings important changes to JavaFX with new UI components and the support of accessibility. Scene Builder must be updated to support this new functionality. Beyond the need to expose the new features to the user, such as providing new UI components in the builtin library, we must update SB to allow the user to work with documents containing any of the new UI components. This is due to the fact that SB is packaged as a self contained application bundle, with its own private copy of the JRE. The private JRE determines the set of builtin components which SB is able to instantiate, so it should always be aligned with the last release of the platform. We also need to address the main limitations of the SB 2.0 release, especially those which prevent preserving the integrity of the content (and formatting) of FXML documents.
Description
- Support for the Spinner UI Control
The Spinner control will be made available in the Controls section of the Library Panel so that the user can drag and drop it into the Content or Hierarchy panels, and further position or re-parent it, edit its properties, similar to what is done with a ComboBox control today.
- Support the FormattedTextField UI Control
The FormattedText control will be made available in the Controls section of the Library Panel so the user can drag and drop it into the Content or Hierarchy panels, and further position or re-parent it, edit its properties, similar to what is done with a TextField control today. The StringConverter used by the control will not be provided by Scene Builder and will have to be set programmatically by the user.
- Support of the new Dialog(s) components
The Dialog and Dialogs components will be made available in the Miscellaneous section of the Library Panel so the user can drag and drop them into the Content and Hierarchy Panels, provided they are placed at the root of the document. The user will be able to edit the properties of the Dialog and Dialogs using the Inspector panel. It will not be possible to render the content of the Dialog(s) inside the Content Panel since SB is currently only able to render root components which are JFX Nodes, and the Dialog(s) are not Nodes. It will be possible to Preview the content of the Dialog(s) in a separate window.
- Support of Accessibility
Accessibility is likely to require an extension of the FXML file format. Scene Builder adheres strongly to the FXML specification. Some work will be required to ensure that SB is able to read, edit, and write FXML files which include accessibility information. SB will not support the editing of this information but it will preserve any existing information found in an FXML file (e.g., hand-coded by the developer).
- Overcome major limitations of the existing FXML support
Scene Builder 2.0.1 will provide support for the fx:reference
and
$fxid
constructs such that FXML documents using these constructs can be
safely edited and remain valid.
Testing
This minor update of Scene Builder does not introduce any significant new feature or UI workflow. No significant change to the existing SB UI is planned either. It should be possible to re-use existing test frameworks and extend existing test suites with new test cases similar to existing ones.