Direct Combination Interface Toolkit

Project Proposal by Martin Stacey


Direct Combination Interface Toolkit

Software

Java or C++ or Smalltalk or another object oriented language with good GUI facilities

Covers

GUI programming, object oriented design, human computer interaction

Skills Required

Programming, interest in human computer interaction and in the nuts and bolts of how languages work

Challenge

Conceptual ??? Technical ????? Programming ????

Brief Description

At CHI 99 Simon Holland (who's a friend of mine at the Open University) and Danny Oppenheim introduced a new interface metaphor: direct combination. The idea is simply that by directly combining the graphic representations of two or more objects in a visual display, you cause those two objects to interact, if they can. If they can interact in more than one way, you access a visual display of the range of different ways in which those objects can interact to do something, and you can then select from that set. (In this approach, selecting a single object is the unary special case, where you get access to all the operations the object can perform on its own, or the system can perform with that object.) There are a variety of possible visual representations of direct combination: you might select a sequence of objects and then right-mouse-click for the range of possibilities they afford; or drag and drop one object on another; or draw a window over the objects you want to combine; or put the objects you want to combine on an operation spike.

Your task is to develop, for your chosen language, a toolkit for building direct combination user interfaces. This involves [1] deciding what the visual displays of objects should look like (ideally you should support as wide a range as possible of object representations); [2] deciding what the visual representations of the direct combination mechanism and the range of action choices should look like (ideally you should provide as wide a choice as possible while maintaining usability); [3] deciding how the GUI should track (or discover) what operations are and are not possible for each combination of objects; and [4] implementing a set of screen display objects (widgets and so on), a control mechanism, and an operation discovery mechanism for your chosen language; and [5] writing a user manual for the toolkit.

Variant/Extension

The direct combination interface building toolkit could be implemented with a screenpainting interface that allows the user to construct an interface by selecting options and placing inteface elements on screen designs. In an ideal world, the direct combination interface building functionality will be integrated into the language’s existing GUI builder.


Back to