FeaturesPluginsDocs & SupportCommunityPartners

Matisse Roadmap

NetBeans GUI builder, also known as Matisse, went through a significant redesign in the 5.0 release focusing on radically simplifying Desktop Java layout design. With NetBeans 5.0 out of the door, the work on Matisse now continues at even faster pace, targeting a large set of new features as well as many improvements in the areas of usability, productivity, and overall user experience. If you are interested in seeing how things are moving forward, be sure to watch development builds and q-builds often!

Here is the outlook on mid-term future milestones/releases:

  • JavaOne update (Q2 2006)
  • NetBeans 5.5 (Q4 2006)
  • NetBeans 6.0 (Q2 2007)

JavaOne 2006

The plan is to release a Matisse update via the NetBeans 5.0 Beta Update Center around the JavaOne timeframe, targeting several new features as well as bug fixes. The content is currently defined as the following:

New features:

  • context sensitive help bar (providing tips in various situations)
  • possibility to switch look and feel in the design view
  • automated internationalization support
  • support for the new layout features in Java 6 (Mustang)
  • more flexibility in using custom components (drag&drop from project explorer, looking up a component from classtpath)
  • better sorting and categorization of the palette
  • bug fixing / overall stability improvements

NetBeans 5.5

5.5 is a special NetBeans release oriented on J2EE 5 support, so most of the new Matisse features will still continue being available via the NetBeans update centers. Some of the new Matisse features will however be ported to the standard 5.5 IDE distribution, most specifically support for the new layout features in Java 6 (Mustang).

NetBeans 6.0

6.0 will be a major NetBeans release and the next big step in shifting the IDE GUI building functionality to yet another level of ease-of-use, productivity, and friendly user experience. The planning for NetBeans 6.0 is still in progress, but the following incomplete list of high-level features and requirements should illustrate the overall direction:

Data Binding, Data-Aware Apps
Data binding technology (close cooperation with the JDK team), will allow binding Swing components to data easily. Matisse will fully support development of data-aware GUI applications that deal with various types of data sources.

GUI templates / component snippets
This feature will allow definition of pre-configured parts of a GUI, which then could be used as a larger building blocks. Matisse will provide a library of pre-defined GUI forms / layout fragments typically used in GUI design. By using the templates / component snippets, the users will get a particular piece of UI complete and correct right out of the box, saving lots of redundant work and avoiding the common mistakes. Matisse will make it simple to define custom form templates / component snippets and share them within development teams.

Visual inheritance and using forms in forms
Along with the templates / component snippets, Matisse will support a set of features to allow better reusability and easy GUI maintenance.

Declarative UI
In close cooperation w/ the JDK team, Matisse will provide support to a standard declarative GUI (Swing) format that will allow treating Java GUIs as a resource fully separated from the code.

Import from code
Importing forms from plain Java code, optimized support for importing forms from other competitive IDEs.

Seamless integration into NetBeans RCP-based application development
Matisse will work as an integrated part of NetBeans RCP, which in turn will be significantly improved to provide an easy-to-use application framework to cover all aspects of assembling a data aware Rich Client application

Other features

  • layout design tuning and improvements
    • support for two types of preferred gaps in layout (related/unrelated)
    • support for centered alignment of components
    • improved copying and duplicating, multiple components in layout
    • more control over fill and resizing attributes
    • and more...
  • layout visualization improvements: separate mode, more controls, easier to understand and use
  • customization of the spacing scheme (default gaps)
  • grouping components: into a container, or logical groups to ease multiselection
  • enhanced workflow / UI design for customizing components
  • changing component type in the form (morphing)
  • easier way to set icons to components, incl. import to project
  • enhanced support for custom code editing
  • better support for creating GUI forms without subclassing a visual class
  • XML bean persistence for property values
  • property sheet reorganization (properties, events)
  • more Swing "shielding", better support for JToolBar, JSplitPane, ButtonGroup, default button in JRootPane, etc.
  • complete support for Swing components (JSpinner, JFormattedTextField)
  • defining TAB order visually
  • ... much more :-)
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Open ESB - The Open Enterprise Service Bus Powered by