DVDraw from a user prospective
This first part is a short user manual for using DVDraw. It takes the form of a FAQ (frequently asked questions) and describes all the operations that one can perform with DVDraw.
How do I draw an object?
Select the shape you want to draw by clicking on the corresponding button in the vertical bar of buttons on the left (See figure 1).
Move the mouse pointer to the drawing zone.
Press the button where you want one corner of the shape to be.
Drag the mouse to the position where you want the opposite corner to be. As you drag the mouse, the shape is drawn extending from the position where the button was pressed to the current position of the mouse.
The object is created and appears to other users when the button is released. The creation is cancelled if the pointer leaves the drawing zone during the drag.
You must be in one of the selection modes i.e. have either one of the two upper left buttons - arrow or selection box- pressed (See figure 1). After you complete any operation (for instance after creating a new object), the mode switches automatically to the "arrow" selection mode. Note also that the switching between the two selection modes is automatic.
In the "arrow" selection mode, you select an object by clicking on it. You know that the selection is successful because the object appear selected (i.e. with handles and your user name above the upper left corner) and in front of any non-selected object. To select more objects, you need to press shift. If shift is pressed, and you click on an already selected object, it will unselect it.
In the "selection box" mode, you select objects by drawing a selection box around them. This is being done by pressing the mouse button where you want the box to start, and dragging the mouse to the point where you want the other corner to be. All the objects completely inside the box will be selected including those that are totally hidden behind other objects.
Objects you have selected belong to you, nobody else can perform any operation on them. You know that an object has been selected by somebody else and therefore can’t be grabbed because it is drawn as a simple box, with handles and the name of the person who is working on it. This mechanism provide not only a mean for concurrency control but also some awareness of what the other users in the session are working on.

You must be in the "arrow" selection mode.
To move all the selected objects, grab one of them (grab meaning that you press the button of the mouse while the pointer is above the object) and drag it (move the pointer without releasing the button).
To reshape all the selected objects, grab the suited handle.
The move or reshape operation appears to others when the button is released. It is cancelled if the pointer leaves the drawing zone during the grab.
Objects can also be rotated, flipped, aligned, grouped, ungrouped, copied, cut, pasted, deleted, undeleted. You can import images, save the drawing to the room, undo and redo any operations.
You can copy, cut and paste objects or group of objects.
DVDraw uses a special clipboard shared with other DVApplets started by a given user. Therefore you can not copy to or paste from the system clipboard but if you have for instance two DVDraw applets running, then you can paste from one to the other.
You can import images given their URL.
To do so, select "Import as URL" in the File menu and type the URL of an image.
One can save the current drawing to the room by selecting the "Save to the room" menu item in the File menu.
The first user double clicking on a DVDraw file in a room creates a session initiated with the content of that file.
Any subsequent user double clicking the file will simply join this session and get the (possibly) modified version of that file.
In most single user applications there is a global history for all operations performed. With this approach if an user works on part A of a document, then goes to part B, and then wishes to undo the last operations he did on part A, he is forced to undo everything he did on part B in the meantime.
In a multi user environment, different users are very likely to work on different things in parallel and it would be very disrupting to have one’s work undone by somebody else. Therefore the global history approach should not be used in a shared environment.
Having a history per user would solve the last issue but would have the same downside as having a global history in a single user application. Furthermore if two users are working on the same part of a document, they might want to be able to undo each other’s actions.
The approach chosen in DVDraw is to have a per object history. Undo and Redo applies to all selected objects. A creation or a deletion can not be undone using the Undo command. One has to use Delete and Undelete.
If you delete an object, you can not bring it back by an Undo (remember Undo applies to the selected object and a deleted object can not be selected). To bring it back you should invoke Undelete. Note that there is a global history for deletes and undeletes.
Delete and Undelete are in the Edit menu.
It starts the telepointer. It is an arrow labeled with your user name that other users see you drag around.
To use it, click on the button with a "hand", and then go to the drawing zone.
You can stick it somewhere in the drawing zone by clicking the mouse. The label will then change from "[Moving] user name" to "[Fixed] username". If you click the mouse again it switches back to the moving mode.
Note that if the telepointer is fixed then it will not disappear if you change to another command.
They appear in the "Attributes" menu. A change to an attribute apply the objects selected, and to any objects created after the change. Available attributes are line and fill color, line width and ending, corner type, font name, type and size. Note that not all attributes apply to a given shape.