Visual Web tool was originally written as standalone IDE called Sun Java Studio Creator (code named Rave) which was later integrated in to Netbeans. Following are the major areas I contributed.
Window Manager (WM)
Java Studio Creator was a fork of Netbeans 3.5. One of the main sluggishness of NB 3.5 is its Window Manager which was re-written later. I proposed to use a third party tool called JIDE. Even though JIDE is architected as MVC, using it as a whole would break the Netbeans modules as they depend heavily on the Netbeans Window Manager architecture. So I chose to rewrite the Model and Controller part of the Window System Architecture (a major re-write called Rave Window Manager ) and use JIDE as View (Layout Manager). This layered architecture facilitates easy substitution of another layout manager with out any modification to the Window manager controller. I worked effectively with JIDE software to resolve many of the issues associated with integrating their product with Rave and we successfully did the Rave demo with JIDE integrated at Java ONE , May 2002.
Due to licensing issue, we had to drop JIDE. Since I already architected such as way JIDE could be easily replaced this was not a major issue. I designed the new Layout manager from scratch and did the coding along with a contractor from Germany.
Toolbox & Designer-Toolbox interaction Model
One of the main deficiency of Netbeans is lack of Palette and provision to drag and drop components on to designer. For this we need two parts.
I designed and developed the toolbox from scratch which can display set of components . Additionally, I implemented the simple Drag and Drop component model to drop the components on to the designer
Modifying Netbeans core platform
In order to make the Netbeans into a ease of use tool there were several changes needed to Netbeans IDE as a whole, including
Server based application debugging for ease use
Even though Netbeans IDE has a well defined debugger and attaching to a remote JVM for remote debugging, it is a tedious process to debug a web application. Everything is manual including
I designed a methodology to automate the whole process using project profiles that has a flag to inform that the project is in “debug” mode. Also introduced logic for the project to invoke the application server in debug mode, if the project is in debug mode. Overall implemented such a way that a simple menu “debug project” would do all the step with out any manual interaction.
Server based web application error handling
I architected, designed the socket based simple client server model for handling error occurs in a web application developed using Rave IDE (see for details
The concept has three parts
Other Architectural Areas
Over the years, I also involved considerably in various architectural areas
Next Generation Web Page Designer
Visual JSF designer in Netbeans is limited to JSP based JSF web pages. I proposed a generic Web page designer that includes designing of HTML, PHP, JSP, RHTML (Ruby on Rails), XML (facelet) pages. The generic Web Page Designer proposal is available at http://wiki.netbeans.org/WebPageDesigner The proposal includes Web Page Designer Concept Overview and Web Page Designer Design Concepts. The details of the prototype I wrote are available at one of my blog entry titles Generic Web Page Designer for Netbeans.
Visual Web Articles and Blogs
I have written various articles for using Visual Web Tool and periodically written tip blogs on how to use various aspects of Visual Web Tool