Dr. Winston Prakash Ph.D. 

Personal Website

My involvement in Visual Web Development Tool

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.

  • A generic toolbox to display the set of components
  • A simple drag and drop model to drop components on to designer

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

  • Several changes to the look and Feel. Worked with HIE and external designers, Rocket communication to create and integrate the icons and modified the core to reflect their specifications and recommendations to create a “pretty” IDE.
  • Based on the rocket communication designers specifications (color and shading), I developed the pluggable Swing Look And Feel based on the Java Swing Look and Feel specification
  • A start page (welcome panel) where the user could start their new project or open the existing project.
  • Several modifications related to “active node” (a global way for interaction among IDE sub components) for proper interaction between toolbox, project, designer and property sheets and dynamic help system.

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

  • Creating a web application
  • Building a web application
  • Starting the server in debug mode
  • Deploying the web application
  • Starting the debugger
  • Attaching the debugger to Application Server
  • Running the application to reach the debug point

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

  • A error handler Servlet in the JSF application acts as the client that communicates with IDE.
  • An IDE module that acts as the server. The server accepts simple commands from the client and executes them
  • A simple protocol for mutual communication between the client and server.

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