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.
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.
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/.
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 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 4b. This is the corresponding screenshot
taken from "PC User's" computer.
The miniature image in
the radar view is drawn with a special graphics scaling approach.
For more information, see ScaledGraphics.
Figure 5b. An example telecaret.
A telecaret represents a participant's text entry cursor, or caret.
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.
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.
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.