Matisse is a new Java GUI builder for the NetBeans IDE. I already use NetBeans to lay out most of the Java GUI I do, but Matisse looks like a nice improvement to the existing code. Be sure to check out the Flash demo, if you are interested.
Matisse is still rather new, so no information seems to be available on the more important GUI builder aspects:
- What is its round-tripping strategy? It is great that you can quickly copy Netscape's e-mail prefereces dialog, but what happens when you need to modify an already-functioning GUI? Does Matisse annotate the code, use custom JavaDoc, etc...
- How does Matisse store its completed GUI components? Is it pure-Java code (text), a classfile format (compiled code), a serialized object graph, etc...?
- How does Matisse handle custom GUI components? It is great to be able to sling around the base button and field classes, but many of us have built large libraries of custom widgets over time? How does one add a custom widget to Matisse's palette?
- Does Matisse have (or support) and MVC strategies? Roughing out the GUI is often the easiest part; binding the controls to behavior, event propagation, adding higher-level validation, and loading / unloading the GUI with data from the model tends to be somewhat harder.
- Does Matisse require the GUI to ship with any Matisse-specific libraries?
I'd love to read more about the implementation of Matisse.