CS 66-460
Introduction to Graphical Human Machine Interfaces

An Overview of User Interface Software
Advanced Techniques

WEDNESDAY, MARCH 19, 1997

Instructor: G. Bowden Wise
Rensselaer Polytechnic Institute
Spring 1997


Novel Approaches are Needed for GUI Development

Software tools can reduce the effort required to build GUIs:

We still have a long way to go to help with things like:


Advanced Techniques

Research is showing promise for novel approaches:

    


Motivation:
Need for Interactive, Graphical Tools

Direct Manipulation

Interactive Tools Improves Productivity


Demonstrational Interfaces


Demonstrational Interfaces
Illustrative Examples

delete all postscript files in a directory

   

automatic widget layout


Peridot
( Meyers, 1986-1988 )

PROGRAMMING BY EXAMPLE FOR REAL-TIME INTERFACE DESIGN OBVIATING TYPING

Peridot (continued)

Uses parameterized procedures which allows parts of the interface to depend on values of parameters

Two types of constraints are used

techniques used:
visual programming
programming by example
constraints
plausible inferencing

   

However, lacks a programming interface and offers no way to use existing toolkit items or create application specific objects


Constraint Systems

Constraint Systems

Types of constraints:

Constraint solving:


Garnet (Myers et al, 1988+)

Generating an amalgam of freal-time novel editors and toolkits


Garnet (continued)


Garnet
Object-Oriented Programming System


Garnet
Prototype Instance Example


Garnet
Object-Oriented Programming System (continued)

Advantages of prototype-instance model

Potential disadvantage of prototype-instance model:


Garnet
Constraint System

Garnet
Constraint System (continued)

Garnet can handle cycles in certain cases: A can depend on B and B can depend on A

Garnet also allows objects referenced in the constraint to be indirectly accessed via a variable

Constraints can also be used to:


Garnet
Graphical Object System

Opal is Garnet's graphical object system


Garnet
Graphical Object System (continued)

Aggregates can be used to group graphical objects into collections

    

Aggrelists are used to lay out a list or table of elements


Garnet
Input Handling


Garnet
Types of Interactors

Only six:


Garnet
Interactors (continued)

Interactors:

Similar to the model-view-controller of Smalltalk:


Garnet
Widgets and Gadgets


Garnet
Debugging Tools


Garnet
Lapidary

Lapidary is the interface builder

A designer


Garnet
Lapidary (continued)

Behavior can be specified by:


Garnet
Lapidary (Graph-Editor Example)


Garnet
Jade Dialog Box Creator


Garnet
C32 Spreadsheet



Bowden Wise
Wed Mar 19 13:02:15 EST 1997