Wednesday, July 27, 2005

NetBeans Dev 4.2 Q Build - Exploration of Matisse features

I managed to get NetBeans 4.2 Dev back into reasonable shape by uninstalling the application and reinstalling it. I then installed only a very few plugins from the Development Update Center; specifically plugins that support development of NetBeans Modules projects. I have a feeling that there are one or more development plugins in the Infrastructure folder that conflict with the core infrastructure plugins that come bundled with NetBeans. So I think for the time being I'll just leave those be.

I've pushed forward with learning what I can do with Matisse. I created a second simple panel, taking as my inspiration Hacknot's "Beware The GUI Builder." The author raises a number of important points with regards to how GUI builders are used and the poor quality code they produce.
But the GUI Builder's inability to recognize repetitive structures in the GUI (opportunities for reusing a custom component) has the potential to create a great deal of unnecessary code, should the scope of duplication involve a larger number of components.
He then shows the following example panel, which I reproduced quite easily and quickly in Matisse.



The Home panel was created quickly by first dropping the Home panel on the form and then laying each of the controls into the Home panel. I then selected the Home panel, copied it, and then pasted it onto the main form. I moved the second Home panel and beneath the first and changed the border's title to Work. It was simple, fast, and generated a lot of duplicate code.


I show the form's inspector panel to illustrate the relative maturity of Matisse. The code behind Matisse recognized that I was copying a collection of components and renamed them in order to avoid naming conflicts. The problem, however, is that there is a lot of duplicate code. What could Matisse do to help minimize this and foster reuse?

The answer may already be in Matisse. Current versions have an empty Beans section in the Palette and there is a Palette Manager that can be invoked from the top of the Designer. There's even a section in Help about adding a bean to the palette window.



What it takes to add new components, to extend the palette as well as foster reuse, is something I am very interested in. Eclipse's Visual Editor has the ability to extend it and add new controls, but I've worked with the Eclipse visual editor. Matisse in its current incomplete state is better than Eclipse VE in its 1.1 release, and Matisse has the potential to pull even further ahead in usability and functionality for the forseeable future.

1 comment:

  1. I read the "Beware..." article. Interesting look at some boundary issues, but frankly not all that relevant given my priorities. My priorities are: 1) developing a good looking GUI, that 2) responds correctly to resizing requests, and 3) is localizable.

    Promoting GUI code reuse? That is only important when there is time taken in creating a GUI. In this particular GUI, that isn't relevant. I've been doing GUIs for years, and in most cases it isn't relevant.

    BTW: Thank you for the article on Matisse. It looks to be pretty sweet once some of the rough edges are filed off.

    ReplyDelete

All comments are checked. Comment SPAM will be blocked and deleted.

Note: Only a member of this blog may post a comment.