08 March 2010

JavaFX Composer Overview (Update)

Since the preview 2 release many changes have been made to JavaFX Composer. The majority of the changes are with the Data Source templates.

Changes Made

  • More properties exposed in the Properties window
  • Shapes, colours, effects are now available in the Palette window
  • HTTP Data Source now handles the HTTP Post method
  • JDBC Data Source now supports setting up CRUD instead of just reading from a DB table
  • When setting up animations one can now use an inherited state animation
  • Standard attribute names used for extracting data for each data source (in Data Source Customiser)
  • File Data Source now supports loading files from additional sources (local FS, resource from class path, storage using the Storage API)
  • Analyser added to identify design problems with a form

Improvements Needed

  • Remove irritating requirement to have an object selected first (in design pane) before having it moved, rotated, bring up an accompanying context menu etc
  • Display chart(s) in real time inside the design pane
  • When an event handler's name is renamed some refactoring needs to occur on every property that is affected by the change
  • Still there is no ability to add custom controls/nodes to the palette (absolutely essential)
  • Allow shapes to be visually resized/rotated/skewed inside the design pane
  • Display animations for affected objects inside the design pane (eg an animation preview like OO Impress)
  • Display all visual objects inside the design pane in real time based on their set properties
  • Provide facilities for easily creating custom controls (visual and non visual) in a visual way (eg wizards, templates in palette, design pane setup for designing a custom control)

In general the biggest improvement that needs to be made in the JavaFX Composer is to allow custom controls/nodes to be incorporated. Since JavaFX is designed to allow custom front ends to be developed why prevent people from using 3rd party content (eg controls, graphics)?

JavaFX composer doesn't stop custom graphics from being incorporated so why should custom controls be any different? After all JavaFX already has a standard system for developing custom controls (using MVC – Model/View/Controller), so it should be possible to use custom controls.


  1. I think real question is what'is composer or is it designer. My answer is it's helper for programmer. So what is developer's requirements for composer as helper. Sorry for bad grammer.

  2. A composer tool in my view is a visual tool that allows content to be "composed" into a complete graphical UI (User Interface). That is the content can be tied in and manipulated (at a basic level) to develop a complete, polished UI.

    One other aspect to a composer tool is to allow software developers to compose custom controls visually. For example tie in graphics/video/animation made by a content designer with other elements/content that is available in the palette and/or the project, and customise that content to create the final result.

    What a composer tool shouldn't be is a tool for graphics/content designers where new content is created visually from scratch. Custom controls are not a particular type of content due to the fact that they are one part of the UI. Thus custom controls should be handled entirely by a composer tool.