[UNIX Review]

X-Designer: Java Edition

Two years ago, this product was our pick for "easiest to use." Today, its improved toolset and bidirectional support for Java make it the best GUI builder available.

Tim Parker

X-Designer:Java Edition (4.6)

Imperial Software Technology
883 N. Shoreline Blvd., Suite D-220
Mountain View, CA 94043
(650) 919-0200
(650) 335-1054 fax
sales@ist-inc.com
http://www.ist-inc.com
Price: $5,800. Free upgrades are available for users on a support contract.
Platforms: AIX, HP-UX, IRIX, LynxOS, QNX, SCO ODTS, SCO UnixWare, Solaris 2.4, Solaris X.86, SunOS, and VMS.
Summary: A classic toolkit for GUI design gets better. Java support adds the finishing touch to an excellent new version.
We looked at X-Designer two years ago as part of a review of several GUI-design tools ("GUI Development Tools Roundup," September 1995, p. 65) and concluded that "X-Designer has them all beat in ease of use." At the time, we were looking at version 3.2. In the intervening years, Imperial Software Technology (IST) has been busy improving X-Designer. The latest version, X-Designer: Java Edition (4.6), adds many new features and utilities. We thought it was worth taking another look at X-Designer--this time on its own.

The X-Designer package consists of a CD-ROM or tape, an installation booklet, a thick user's guide, and two laminated quick-reference cards. To install X-Designer, you can follow the installation book or use a process shown on one of the laminated cards. After the CD-ROM is mounted, an installation script takes care of almost everything else for you. The installation routine prompts for a directory and operating-system version, then copies everything you need to the hard drive. After you set an environment variable, X-Designer is ready to go. You can run from the CD-ROM if you need to, which will work better on some systems. X-Designer uses the FlexLM license manager, which lets you add licenses on different hosts. All told, the installation procedure took only ten minutes and proceeded smoothly.

As with many other GUI-development packages, X-Designer uses a WYSIWYG drag-and-drop paint-like interface to provide interface-design capabilities. X-Designer not only generates code (C, C++, and UIL) for Motif, but also can generate Java code directly. Using X-Designer, you can create a user interface quickly and test it in a fraction of the time manual Motif coding would require. When the Generate button in X-Designer's code generation window is pushed, X-Designer generates a set of Motif code that can be previewed in an editor or left for compilation with the rest of an application. The code-generation window gives you control over the types of code (UILs, pixmaps, externs, and so on) created at each pass. All the standard GUI features are supported by X-Designer, including tear-off and drag-and-drop menus (which are missing from some competing GUI-design tools).

The primary claim to fame of X-Designer 4.6, other than its heritage as one of the best GUI-development tools on the market, is its use of Java. Java has become the hottest commodity on the computer scene, and while its virtues often are exaggerated, most software vendors are finding that the absence of the Java label from their software can affect sales negatively. Java may not be suitable for many tasks, but it is useful for GUI design and not at all out of place in X-Designer 4.6.

Because Java support is the primary selling point of this release of X-Designer, we took a closer look at this aspect of the tool. Numerous GUI tools generate straight Java code from a user's interface design, but X-Designer does more, providing several Motif widgets and some Java components designed specifically to let developers move more easily from Motif to Java and vice versa. Because Java's Abstract Window Toolkit (AWT) classes do not have equivalents of Motif widgets, IST provides 48 new Java classes (called MWT by IST) to provide Motif-like behavior. The purpose of the MWT classes is to allow a design to look the same under both Motif- and Java-generated code. This works surprisingly well. While some GUI-design tools that generate Java code employ a technique that is "almost like Motif," X-Designer's MWT classes make it difficult to tell whether you are looking at Java or Motif output.

In counterpoint, Java allows some layout components that have no direct equivalent under Motif. X-Designer handles this situation with five new Motif widgets designed to duplicate Java behavior. As with the Motif-to-Java classes, these Java-to-Motif widgets work well, providing seamless appearance across both languages. By adding the classes and widgets to X-Designer, IST has made a toolset that provides both Java and Motif GUI building. While you may not need Java code generation right now, it is comforting to know that your established GUIs can be translated easily from Motif to Java without losing their look and feel.

But, there's a lot more to X-Designer 4.6 than Java code generation. One addition we really like is XD/Replay, which records and plays back Xt applications. XD/Replay gives developers a high-level view of user actions. After recording a set of actions, such as pushing buttons or entering text into a field, developers can replay the actions with full examination of any widget in the application. This not only eases testing and debugging, but ensures widgets behave exactly how you want them to. Since XD/Replay requires no special steps to invoke (no recompilation or add-in libraries), it is simple to employ.

A companion tool to XD/Replay is XD/Capture, which takes a snapshot of an existing Motif application and lets you import it into X-Designer. X-Designer then recreates the interface using Motif, thus preserving your old applications. Once you have imported the interface, you can update and modify it. XD/Capture works with any running application, so it is simple to use.

XD/Help is another component developers will find helpful. It lets you build interfaces to any online HTML documents into your application. As with other versions of X-Designer, you also can link in documents from FrameMaker (Adobe Systems, San Jose, CA) and Interleaf (Interleaf Inc., Waltham, MA).

For nuts-and-bolts use, X-Designer 4.6 is even more of a joy to use than the previous version we looked at. Simple things, such as the ability to edit callbacks from within X-Designer or the ability to set resource values for any number of widgets at once, make designing interfaces elegant and easy. A few changes stand out from X-Designer 3.2, such as the layout editor, which lets you move widgets without losing attachments, and selection of overlapping widgets. Resources can be generated with either loose or tight bindings, a subtlety some GUI-design packages ignore. By using tight bindings, you can ensure no ambiguities across application resources exist. With loose bindings, resources can be more easily shared, resulting in a more consistent look to applications.

The pixel editor in X-Designer is excellent. With it, you can readily generate a consistent set of pixmaps for application elements, from the palettes to the icons. The PixMap editor uses a fairly standard set of icons to control your pen's behavior, with preview and zoom functions to provide both the close-up and real-sized views. The X-Designer PixMap editor uses the now-standard XPM format for storing pixmaps, so pixmaps can be exported to and from other applications. One or two features stood out on the X-Designer editor, such as the ability to provide transparent color (which allows for stippling on icons, adding texture or shading to enhance viewing). It's a subtle but effective style effect.

An integral part of any GUI-development tool is the font editor. X-Designer's font editor allows unlimited fonts to be handled by family, orientation, size, or any criteria you develop. When you select a font, you can bind it to an object, which allows reuse throughout an application.

For quick-and-dirty application interfaces, X-Designer includes AppGuru, which uses a set of templates to create common setups. You can design templates of your own or modify existing templates, so you have a repeatable starting point for a common interface among many applications. AppGuru works fast and can produce an interface in a few minutes.

The earlier version of X-Designer let us generate test application interfaces quickly, and while the overall speed of X-Designer has not changed noticeably, we did find that when we designed a complex interface with the new version, the process was quicker. This can be attributed to the XD tools included with X-Designer and better resource management in this new version.

The laminated quick-reference cards are a big help in getting started with X-Designer 4.6. One side has pictures and names for widgets, while the other has a list of most keyboard shortcuts. The learning curve for X-Designer is remarkably short--the intuitive interface will help newcomers to GUI-design tools, and those migrating from other GUI-development tools will find X-Designer familiar.

After using X-Designer 4.6 for a couple of weeks, we found it to be a solid, mature application. We loved the last version of X-Designer we tested, and version 4.6 adds more features and functions. The XD toolkits that allow rapid testing, importing of legacy applications, and online help are excellent additions. The Java code generation capability will be important to some but of little import to others. But even without Java, X-Designer 4.6 is still the best GUI development tool we have seen in a long time.


Tim Parker is a frequent contributor to UNIX Review. He is technical editor of SCO World magazine and the author of more than 20 books. His latest is Slackware Linux Unleashed, third edition, published by Sams.

This article first appeared in the October 1997 issue of UNIX Review.

Copyright 1997 Miller Freeman Inc.