CLIM mail archive
This is in regard to your questions about a user interface for selected
Your program has some objects to be manipulated. These objects are
represented on the screen by presentations. A given object may be
represented by more than one presentation. The user selects objects
which are to be manipulated by some program operation by selecting a
presentation of that object.
What visual feedback should the user receive for his selection choices?
Should only the presentation that was selected be highlighted or should
all presentations of the selected presentation's object be highlighted.
The answer to this question depends on the nature of the operation being
performed. For an operation on program objects, all presentations of
the selected object should be highilghted. For an operation which is
intended to apply only to the selected presentation, only the
presentation should be highlighted.
As an example, consider a program that displays a graph of related
objects. Each object node is represented on the screen by a
presentation. Lines drawn between presentations indicate relationships
between objects. The application might provide several views (displayed
in different panes) of the graph (perhaps because the graph is too large
to be viewed all at once and the user wants windows into different
pieces of it). It is possible for an objct to appear in more than one
view. When the user selects an object whose relationships he intends to
modify all presentations of that object should be highlighted. Suppose
the user wanted to move the presentations of objects around to make the
view easier to understand. The spacial arrangement of the presentations
is a property of the presentations themselves, not the objects they
represent. The only property of the objects is how they are
interrelated. When the user is performing an operation on the
presentation, only the selected presentation, and no others should be
The only thing the user gets to manipulate directly is the presentation.
The application needs a way to disambiguate between the case when the
user intends to manipulate the presentation, or the object which it
represents. It's sort of a graphical version of the quoting problem in
In some cases contextual information can be used to resolve this
ambiguity. If the program knows that the user intends to modify the
relations among objects (perhaps by some sort of command selected from a
menu) then it knows that objects and not their presentations are being
selected. If the user has issued a command which operates on
presentations, then the application knows that it is presentations which
are being selected.
In some cases the application doesn't know what's being operated on
until the user's interaction is complete. On the Apple Macintosh, the
Finder serves as a graphical interface to the file system. It allows
the user to rename files, move them to a different part of the file
system hierarchy or delete them. The contents of a directory are
displayed in a window. Each file and subdirectory in that directory
appears as an icon in that window. The user is free to rearrange these
icons by dragging them around within the window. The icon is the
presentation of a file and dragging it within the window is a
manipulation of that icon. When an icon is dragged outside the window
onto another window, the user is indicating that the file which the icon
represents is to be moved from the directory represented by the window
where the icon started to the directory represented by the window to
which the user dragged the icon.
Since any given file on the Macintosh is only represented by a single
icon to be highlighted. The finder thus has the luxury of not needing
to resolve the ambiguity between object and presentation until the
interaction is complete. This is not the case for many applications
(including the one you describe). For these applications the ambiguity
must be resolved in some other way, either by knowing what the operation
to be performed is prior to selection or by distinct gestures depending
on whether the user means to indicate the presentation itself or the
object it represents.
Main Index |