Interacting with software can be extremely annoying or incredibly exciting
depending on the user interface. While one GUI can leave you hopelessly
confused and deny the execution of simple tasks because you can't find the
right button, another GUI can draw you in with its appealing and conclusive
features, making the implementation of even complex procedures a walk in the
park.
For a long time, the development of graphically advanced user interfaces
was something only desktop software developers could do, as Java simply
lacked the respective toolsets. AWT and later Swing have tried to fill the
gap, but are still greatly limited compared to Microsoft's Windows OS or
Apple's Mac OS X.
With the growing range of end-user devices that directly support Java,
it's increasingly becoming the one true platform-independent environment
every developer has been waiting for if only the graphical user interface
frameworks could compete with their native counterparts on Windows or Mac
OS.
This is where Our World Live's (OWL) Human Interface Package (HIP) comes
in. HIP 1.0 for PersonalJava and HIP 1.0 for Java 2 (J2SE and J2EE) are two
user-interface frameworks that provide a complete set of out-of-the-box APIs
and, according to OWL, "transcend the limitations of AWT and Swing and
revolutionize the development of Java GUIs in 100% Pure Java."
HIP 1.0 PJ
HIP PJ, written entirely in Java, is OWL's user-interface framework that
complies with PersonalJava 1.2 (JDK 1.1.8), which you'll find in most TV
set-top boxes, Pocket PCs, and Nokia and Ericsson cellphone communicators.
The most common virtual machine for Pocket PCs is the Jeode from Insignia
Solutions, which I used on my Compaq iPaq for this review. Developers can
use HIP PJ to implement a new and unique user interface for their Java
applications (or applets). Each UI component can be arbitrarily shaped, with
the mouse reacting correctly on it, and has a transparency property from 0 =
opaque to 100 = fully transparent. Components can overlap; they can be dragged, and their visual appearance,
including transparency, is automatically rendered accordingly. Skins can be
defined, changed, and switched on the fly, making it easier to give
applications the look you want. More than 80 classes, such as OWLButton,
OWLDialog, OWLSlider, and OWLWindow, make up the powerful and flexible
framework. The API is built and modeled after the AWT concepts and is easy
to use.
HIP 1.0 J2
HIP 1.0 J2 is OWL's user interface framework that's compliant with the
Java 2 specifications. It's written entirely in Java but built along the
Swing technology that's included in Java 2. It brings the same feature set
to the Java 2 platform as its PersonalJava counterpart, HIP 1.0 PJ. UI
components can be transparent, draggable, and have true free-form shapes
with the mouse reacting exactly to the defined shape. As with HIP PJ, skins
can be defined, changed, and switched at runtime. The framework consists of
over 60 classes, such as OWLJButton, OWLJMenuBar, OWLJSlider, and
OWLJTextArea, that can be used to develop state-of-the-art user interfaces
Installing and Using HIP
Both HIP packages can be downloaded from OWL's Web site. HIP comes
packaged as a JAR archive, thus it can be easily linked into any Java
project. No additional configuration is necessary.
When a compiled project is run the first time, HIP asks for a license
key and creates a license file that has to be stored beside the HIP JAR or
in the system classpath. As long as HIP finds the license file in one of
those two places, no further haggling with licenses is necessary. The
license key mechanism is network-aware and will detect if the same key is
used twice.
The included Read Me provides some basic information and pointers to the
extensive API documentation on OWL's Web site. The documentation lives up to
its task and provides a fully indexed and cross-linked Javadoc manual. If
you have experience with AWT or Swing, soon you'll be using HIP like an
expert. Starting with HIP, you'll notice that replacing Swing classes with
their HIP counterparts usually works, speeding up your development time.
It would have been easier if OWL had included a default skin and some
examples on how to use it to develop your own.
Sample Program
Let's take a simple example and do some programming. The goal is to
create a free-form crosshair that floats over the background (see Figure 1).
The task is simple. All you need are two graphics (JPEG or GIF), the
picture of the crosshair (see Figure 2), a simple mask (see Figure 3), and
some code for instantiation. Convenient multiparameter constructors or
single methods for each representation can be used in both HIP frameworks.
An example of the crosshair instantiation:
// HIP PJ code
crosshair = new OWLButton(crosshairBackground, null, null,
null, null, crosshairMask);
// HIP J2 code
crosshair = new OWLJButton();crosshair.setImage
(crosshairBackground);
crosshair.setMask (crosshairMask);
This is much easier than creating an optically similar result in Swing,
and it would be a development project of its own in AWT. In HIP, everything
is at your fingertips. As the mask can also contain gradients, any user
interface design idea can be realized.
The HIP classes are accompanied by a rich set of methods and properties,
making GUI development a lot easier. Next to the makeDraggable method are
float value and percent setters for the transparency. In Figure 4, I've set
the transparency value of an OWLJPanel to 40%, causing it (and all its
children) to be rendered with a 40% transparency, so the parent component
shines through the panel. The code is simple:
panel.setTransparency
Percentage(40)
HIP J2 is worth using since transparencies and free-form shapes are a
no-go in Swing; however, HIP PJ can bring these features even to
PersonalJava. With HIP PJ you can develop advanced GUIs for communicators
and handheld devices like a Compaq iPaq.
One thing that would make it even easier to start with HIP: additional
ready-to-use code snippets. On the other hand, you can always go to OWL's
online discussion boards for tips, tricks, and (free) support.
Summary
Our World Live's HIP is targeted at those who develop their user
interfaces in Java. Its unique features and full-fledged API sets are
impressive. Transparencies and free-form shapes are the way to go in user
interfaces, but were difficult to achieve in Java until now. The API set
is large and well thought-out. Everything has been modeled clearly and in
accordance with the standard Java programming guidelines, so getting started
is easy. The size of the frameworks is small, but be aware that your user
interface graphics need space too. You can include your skin in your
application or applet (which can get pretty big) or load it dynamically with
a URL.
In addition to offering a whole new world of possibilities for GUI
development, HIP can also reduce the time and cost for traditional user
interface developments due to its rich set of methods and properties.
JDJ Product Snapshot
Target Audience: Java programmers, project leaders
Level: Beginner to advanced
Pros: Unique features, easy-to-use and powerful APIs
Cons: Nothing significant
Our World Live, Inc.
5901 Warner Ave. Suite 21
Huntington Beach, CA 92649
Phone: 714 840-5520
E-Mail: info@ourworldlive.com
Web: www.ourworldlive.com
Specifications
HIP PJ: Any platform with PersonalJava 1.2 or JDK 1.1.8 support
HIP J2: Any platform with Java 2 support
Pricing: Development license starts at $1,695, deployment license starts at
$20, and the ShareWare deployment license is $1.
Test Platforms
Sony VAIO FX150, 596MHz Intel Pentium III Processor, 20GB Disk, 128MB RAM,
Windows XP v 2002 Compaq iPaq, 64MB RAM, PocketPC 2000
Reviewed by:
Matthew Dodd matthew.dodd@mausik.com