Flexible JAMM Multiuser Interface Components

This document describes the major interface elements that specifically enhance collaboration in the shared application.


Related Flexible JAMM Documents

Concurrent Editing

Most collaboration-transparency systems use an input control policy that restricts input to only one user at a time. This floor control solves problems related to conflicting user inputs, but constrains the participation of other collaborators. Figure 1 illustrates the case where only one user at a time may enter text. This approach, common to most collaboration-transparency systems, limits the collaboration so that users must take turns working on the shared data.

Figure 1. Most collaboration-transparency systems allow only one user to enter inputs at a time. Here, two users are sequentially entering text. First, User A enters text in the replica on the left and then User B enters text in the replica on the right.
Figure 1. Turn-taking text editing.

In contrast, collaboration-aware applications allow as much concurrent data manipulation as possible. Flexible JAMM uses an input control policy, but relaxes input control in one case. Multiple users may simultaneously enter text in a text area. Coupled with Flexible JAMM's location-relaxed WYSIWIS, collaborators may work on different parts of a document concurrently. Figure 2 illustrates two users simultaneously editing text.

Figure 2. Two users simultaneously entering text. User A is editing text in the replica on the left and User B is editing the replica on the right.
Figure 2. Concurrent text editing.

The Flexible JAMM concurrent editor, called SharedDocument, may be used in other collaborative systems. Documentation and download information are available at http://java.cs.vt.edu/~begolej/classes/SharedDocument/

Location-relaxed WYSIWIS

Flexible JAMM supports a feature unique to collaboration-transparency systems, but common to collaboration-aware applications: location-relaxed WYSIWIS.  WYSIWIS (What You See Is What I See) is a CSCW principle in which all participants have exactly the same view of the shared data at the same time.  However, most collaborative work is not so tightly coupled. A more relaxed principle is What You See Is What I Think You See (WYSIWITYS), whereby participants do not see the exact same view, but are aware of each other's view. So long as WYSIWITYS is maintained, collaborators can coordinate their independent work in different parts of the shared data simultaneously. Flexible JAMM supports flexible collaboration by replacing certain single-user interface components with multiuser equivalents.

Multiuser ScrollPane - RadarPane

Flexible JAMM supports WYSIWITYS by employing a radar view of the shared data which displays all participants' independent locations.  The WYSIWIS constraint is relaxed so that participants may change their location in the shared independent of each other. A multiuser radar pane replaces each single-user scroll pane that exists in the original single-user application. Figure 3 shows the original and shared object trees of a simple Java applet consisting of a ScrollPane which contains a Panel of buttons.

Figure 3.  On the left is the object tree of a simple single-user applet consisting of a ScrollPane which contains a Panel of buttons. The right tree shows the result of replacing the ScrollPane object with a Multi-user ScrollPane. (click on the figure for a full-size view)
Figure 3. Object replacement diagram.

Figure 4 shows screen shots of a single-user text editor shared via Flexible JAMM; the original scrollable text pane is replaced by a multi-user radar pane.

Figure 4a.  A single-user text editor shared via Flexible JAMM. Each user has an independent view into the text area.  Each participant can see where another is viewing via his or her colored and cross-hatched rectangle in the radar view to the right.   In this screenshot, from Solaris User's host, we can see that "Solaris User" (green rectangle) is viewing and editing near the bottom of the text, while "PC User" (red rectangle)  is viewing near the middle of the text.
Figure 4a - Independent view of text

Figure 4b.  This is the corresponding screenshot taken from "PC User's" computer.
Figure 4b. Other
participant's view.
  The miniature image in the radar view is drawn with a special graphics scaling approach. For more information, see ScaledGraphics.


Telepointers are representations of remote users' cursor positions and thus provide location awareness. Each participant's telepointer has a unique color and name, as shown in Figure 5a and b. A participant may edit his or her name and color at any time during the collaboration (see Flexible JAMM User's Guide for more information). See Telepointer Options for setting the display options.

Figure 5a.  An example telepointer. A telepointer represents a participant's mouse cursor, or pointer.
Figure 5a. A telepointer.

Figure 5b.  An example telecaret. A telecaret represents a participant's text entry cursor, or caret.
Figure 5b. A telecaret.

Like the local mouse cursor, a telepointer is drawn on top of the screen. This is accomplished in Flexible JAMM by using Swing's JLayeredPane to draw the telepointers in a layer "above" the application (See Figure 7 for an illustration).

Input Control

Flexible JAMM, like other collaboration-transparency systems, allows only one user at a time to enter input to the application (see the Flexible JAMM User's Guide for more information). The shape of the telepointer indicates which participant has control at a given time. Figure 4 illustrates the different shapes: the control holder's telepointer is shaped like an arrow, while all other participants' telepointers are shaped like a pointing hand.Figure 6.  Telepointers indicate who has input control: a) the Arrow shape is used by the participant that has input control, b) all other participants' telepointers are shaped like a pointing hand.
Figure 6. Telepointers indicating    input control: Arrow indicates input control, Hand    indicates non-control.

Activity Indicator

In addition to presenting location and identity information, a Flexible JAMM telepointer indicates the participant's mouse-button activity. When a participant presses a mouse button, a rectangle corresponding to the button is shaded. This indication remains while the button is held down and for a short time after release (Figure 7).

Figure 7.  A participant's mouse-button activity is indicated by shading the squares in the rectangle at the top of the telepointer. Each square corresponds to a button on a three-button mouse. In this example, a participant is double-clicking on a word in a text document.
Figure 7. A telepointer with an activity indicator.

You can set various options for displaying telepointers on your view of the shared application.  See Flexible JAMM Telepointer Options for descriptions of the options and how to change them.

Flexible JAMM User's Guide
Flexible JAMM Telepointer Options
Flexible JAMM Home

James "Bo" Begole
Last modified: Thu May 4 11:29:18 PDT 2000