cs349 - Developing User Interfaces - Spring 2010
Assignment 4 - Direct Manipulation.
To be handed in before: 13.30 July 28, 2010.
In assignment 4 you will implement the user interface for a simple digger,
which the user controls by direct manipulation, dragging on the display a
representation of the moving parts of the digger. This is done using
scripting techniques, but using the Java Swing component set, which is not in
itself a scripting language. How should one conceptualize scripting in such
an environment?
- There is a back end which consists of a virtual digger drawn on the
display. Part of the back end is commands that relay control messages to
a physical digger, and that receive status updates from the digger. This
does not actually exist of course: the virtual digger merely responds to
the commands, showing its updated state on the display as if the real
digger responds perfectly to the interface.
- The back end exposes an API to the interface that consists of
descriptions of digger parts, as seen on the display, and affine
transformation matrices that determine where they are currently located.
Thus, the interface supplies transformation matrices to the back end
which responds by moving parts of the digger accordingly.
- The user has a three button mouse, which is used to select and drag
parts of the digger. The parameters of the events so caused, are
converted into motions of the digger parts by the interface.
Transformation matrices corresponding to the motions are then created by
the interface, and relayed to the back end, which applies them to its
display list.
- You are given a small interface to show you the overall structure of
the program, and are expected to develop it into a full interface
following its model.
The interface you are expected to create is described in the Assignment Description.
There are a few resources you might find useful.
- In the
assignments/a4 directory of the course account is a
small sample program consisting of three files: Digger.java,
DrawingPanel.java and MyRectangle.java.
- There is a detailed description of how compound transformations work here.
- Sun provides a good tutorial
describing how the Java2D package works.
- The documentation and tutorials you used in assignment 3.
Return to: