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?

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Return to: