DDJ September 1996 User Interfaces


FEATURES

GOAL-DIRECTED SOFTWARE DESIGN

by Alan Cooper

Goal Direction is the design methodology GUI guru Alan Cooper devised to cut through the confusion surrounding software-design problems. Using examples from his own design projects, Alan shows how Goal Direction lets you synthesize solutions that would otherwise never have been possible.

CUSTOMIZING THE EXPLORER OPEN DIALOG

by Al Williams

Windows 95 uses a special open dialog that allows users to rename files, create directories, and (of course) open files. Al shows how to customize this dialog, using a Delphi 2.0 component.

CREATING SHAPED UI OBJECTS

by Steve Sipe

CShape, the C++ class Steve presents here, lets you create and manage custom windows, custom controls, and shaped dialog boxes. He then uses the class to build sticky-note and stellar calculator user interfaces.

WRITING USER-DEFINABLE GUIs

by Troy A. Schauls

User-defined screens let users create and modify data-entry screens. This ability is possible if you use Visual Basic forms that are created, parsed, and compiled into a proprietary format, with only a "system form" in the app's executable file.

THE JAVA ABSTRACT WINDOW TOOLKIT

by Anil Hemrajani

Anil examines the Java Abstract Window Toolkit (AWT), a portable GUI class library for developing applications and applets. He then builds a text-editor application for Windows 95 and Solaris, along with an applet for Windows 95.

DATA COMPRESSION WITH THE BURROWS WHEELER TRANSFORM

by Mark R. Nelson

The Burrows Wheeler Transform is an algorithm that takes a block of data and rearranges it using a sorting algorithm. The resulting output block is extremely well-suited for compression.

EMBEDDED SYSTEMS

A PROCESS GROUP MANAGER FOR OS-9

by Peter C. Dibble

This file manager lets you adapt the OS-9 real-time operating system's I/O system to provide non-I/O services.

NETWORKED SYSTEMS

IMPLEMENTING A WEB SHOPPING CART

by Chris Baron and Bob Weil

Our authors examine the components of an online catalog, focusing on a virtual shopping-cart system and ways around the shortcomings of HTTP. They then present an online-catalog system implemented in Perl.

EXAMINING ROOM

EXAMINING THE INSTALL SHIELD SDK EDITION

by Joseph Hlavaty

Joe builds a standardized installation/distribution methodology using the InstallShield integrated installation/distribution program, versions of which are included with Visual C++ 4.1, Visual Basic 4.0, Borland C++ 5.0, Delphi 2.0, Paradox 7.0, and Optima++.

PROGRAMMER'S WORKBENCH

JAVA, JFACTORY, AND NETWORK DEVELOPMENT

by Eldon Metz

JFactory is a cross-platform screen painter, prototyper, and code generator for Java that lets you concentrate on the design and functionality of your GUI by generating AWT source code. Eldon uses it to build an Internet-based client/server Java application.

COLUMNS

PROGRAMMING PARADIGMS

by Michael Swaine

Michael strides forth into the field of software design.

C PROGRAMMING

by Al Stevens

This month, Al answers the fundamental C++ programming questions he posed in August.

JAVA Q&A

by Cliff Berg

What do you do if the Java AWT's layout managers won't let you build the kind of UI you need? You write your own layout manager, of course, and Cliff shows you how.

ALGORITHM ALLEY

by Edward Sitarski

To overcome the limitations of variable-length arrays, Edward created a data structure that has the fast constant-access time of an array, but avoids copying elements when it grows. He calls this structure a "Hashed-Array Tree" (HAT) because it combines some of the features of hash tables, arrays, and trees.

UNDOCUMENTED CORNER

by Robert R. Collins

How does your program know which Intel processor is the current system CPU? Robert looks at the options, including Intel's PUSHF/POPF technique.

PROGRAMMER'S BOOKSHELF

by Lou Grinzo

Windows 95 is Lou's focus this month, as he examines Migrating to Windows 95: Programmer's Guide to What's New, by Mark Andrews, and Programming Windows 95, by Charles Petzold and Paul Yao.

FORUM

EDITORIAL

by Jonathan Erickson

LETTERS

by you

SWAINE'S FLAMES

by Michael Swaine

PROGRAMMER'S SERVICES

OF INTEREST

by Monica E. Berg