UK-BASED IMPERIAL Software Technology (IST), maker of the UNIX-based graphical GUI builder X-Designer,
has a new product-Visaj (pronounced "Visa-Jay"), which is a 100% Pure development tool created with the
goal of complementing the GUI design functionality of Sun's Java development Studio and some other popular
Integrated Development Environments (IDEs). Despite bringing a couple of powerful elements to the
development of user interface tools, particularly in the way of highly intuitive implementation of the
AWT's GridBag Layout manager, Visaj will probably have a tough time breaking into the competitive market
for RAD software development tools having numerous highly functional IDEs (e.g., Symantec's Visual Cafe,
IBM's Visual Age) and visual design tools (e.g., Object Design's Parts for Java and Lotus Corporation's
BeanMachine)-all sporting intuitive drag-and-drop user interface builders, along with (especially in the
case of the IDEs) numerous other advanced facilities for building, testing, and distributing Java
applications and applets-priced at much less than the $995 IST wants for Visaj.
What It Delivers
Visaj provides an exceptionally easy to use interface with a Motif windows look and feel, which has
complete fidelity to Sun's JDK 1.1 specification allowing for true cross-platform Java development. Like
IBM's VisualAge and Lotus' BeanMachine, Visaj is built on a Java-Beans foundation, so you get all you need
to build robust component-based software. A library of a couple of dozen standard components allows you
to build layouts, menus, and other basic user interface elements. Third-party components are easily
integrated into the environment. It's easy to work with Microsoft's AFC and JavaSoft's JFC components, as
well as KL Groups Chart and BWT components, J-Scapes Widgets, and Neuron Data's MCT components, which
all ship with the current version 2.0 of the product. The release I looked at (1.01) didn't have any
third-party Beans, but provided a collection of what IST calls Diamond components offering a range of core
extensions to the AWT including a toolbar widget, various controllers, a status bar, and framed panel.
The Visual Class Editor is the first screen you come to on starting up a new project in Visaj.
A three-panel screen with Beans palette on the left, a class structure viewer on the right, and a
main viewing area in the middle where the user can drag-and-drop components onto the screen. Thumbnail
icons representing the components are displayed indicating the structural layout of both User
Interface elements and programmatic features bestowed to the project via invisible JavaBeans components.
Double-clicking on the icons on the design palette calls up a Properties sheet-a tree view allowing you
the ability to set all the beans1 properties and methods.
The Layout Editors provide a means of manipulating container objects such as windows, frames, and
panels. There's an editor for each of the JDK 1.1 AWT layout types including the GridBag, Grid, and
Border layouts as well as Diamond's SuperGrid component.
The Event Editor gives you the ability to bind events to objects. When you open the window, a
wizard-like interface walks you through selecting the event's source object, along with its type,
and assigning the method of the handler object. When you're done, click finish and you can see the
bindings right away. As with many visual development tools, Visaj is a dynamic environment in the sense
that any time either an element is dragged from the palette onto the main class view or some property
set or applied in any of the editors, the result is instantly reflected in the window indicating the
state of the applet or application. At the end of the day, an Event Binding list is provided showing
the association between a given event's source and target objects.
To facilitate the translation of the text in your application into numerous foreign languages Visaj
provides a Resource Bundle Editor. The editor is essentially a dictionary, which translate key values
from English (the assumed default language) into any of the dozens of languages supported by the
JDK 1.1 or greater. There's a toolbar that supports standard editor capabilities such as cut and
paste and undo/redo. Other capabilities of the Resource Editor include the ability to import/ export
entire files and setting up character encodings for entire files or selected pieces of text.
Visaj generates 100% Pure JDK1.1-compatible code. There are two contexts in which this occurs.
The first is when the user paints Beans or components onto the Class Editor and then graphically
wires in the events with the Event Editor. Using either the toolbar or pull down menu, the "Generate code"
option can be selected resulting in the creation of a class file with the usual .java suffix. Additions
can be made to the code by invoking an editor of your choice. The other context relates to the Resource
Bundle Editor. When the tabular key-value pairs are set, choosing "Generate all files" from the
Generate menu results in the construction of a class file that subclasses the ListResourceBundle
from the java.util package associated with each of the selected languages.
Visaj is the kind of tool that you either love because it fits perfectly into your work style, or
hate because you can't find any real use for it given the strengths of your current RAD toolkit. The
integrated editors allow you to painlessly build ] components and beans. What Visaj offers is a
flexible design environment that facilitates extendibility and easy integration with third-party
component tools and IDEs. It can serve the purpose of a prototyping tool for users whose current
development environment falls short on that end. As stated earlier, its cost-$995 for a single-use
license with 90 days of tech support-is a bit on the high side, but it's likely that IST will adjust this
entry price in light of the robust competition in the market for Java development tools.
Lowell E. Thomas is a freelance consultant based in New York City. He specializes in database and
multimedia applications. He can be contacted at firstname.lastname@example.org.