The Shared White Board System

The White Board System is composed of a doorman component, four conference room windows and client-server communications. The Doorman component is a series of windows the user uses. The purpose of these windows is the selection of a conference room and the setup conditions the user wants. There are 7 Java files and 13 class files devoted for that aspect of the software package. The four conference room windows are the Easel Page window, Tool Kit window, the Chat Window, and the Page Manager. Each window acts independent of each other, but still communications among each other through the mode of client and server communication. Since each of these components are in there own windows, the windows can be resized to accommodate the user preference. There are 17 Java files and 24 class files that allow this system to function.. This does not include the communication files and its classes. Also these four windows operate as a unit. The White Board System is one process, which does not allow this system of windows to perform several operations at once. This way no deadlock will occur among the White Board system. There are 12 Java files and 12 class files that provide the means of communications. A comprehensive review of these files appear in the tables below. The remainder of this chapter will be devote toward describing the shared white board system in the following sections.

Java FilesRelated Class FilesSize of Java Files (Kbytes)Number of Lines in Java files
AboutBox.javaAboutBox.class
AboutPanel.class
2
58
ChatWindow.javaChatWindow.class
chat.class
8
326
PageM.javaCardWindow.class
MakeButtonPanel.class
PageM.class
44
1185
StatusBar.javaStatusBar.class
2
62
TxtWrite.javaTxtMsg.class
TxtWrite.class
11
448
UserName.javaUserText.class
getUserName.class
3
121
approvedNewUser.javaapproveText.class
approveNewUser.class
2
70
butt.javabutt.class
buttbar.class
3
118
buttbar.javabuttbar.class
2
78
circle.javacircle.class
8
285
ConferenceList.javatitleTxt.class
conferenceList.class
3
83
contline.javacontline.class
4
207
doorMan.javaintroduction.class
doorMan.class
8
342
line.javaline.java
3
134
newSession.javacreateMe.class
chat.class
turnPage.class
drawPage.class
newSession.class
5
152
noAvailHubs.javanoHubTxt.class
noAvailHubs.class
2
59
obj.javaobj.class
6
290
oval.javaoval.class
6
243
pickOne.javapickOne.class
1
46
rect.javarect.class
6
249
textBox.javaTxtMsg.class
TxtWrite.class
textBox.class
7
275
toolKit.javatoolKit.class
10
408
whiteBoard.javawhiteBoard.class
41
1621


The Doorman Component

The doorman component consists of a bunch of screen that the user sees first. An user can traverse several paths within the doorman component before even moving to the next s egment of the application. The first screen a user sees is the welcome screen, which is displayed in figure 1. List of Conference Rooms Figure 2

The user advances to the next screen by clicking the mouse button. The next screen the user sees is a screen that asks the user, " do you want to start a new conference or join an existing conference." Regardless of the choice at this time, The user then sees a screen asking which conference room they would like to enter as illustrated in figure 2. If the user chose to create a conference room, the a screen looking like figure 3 pops up. It is not apparent at this point, but the user that sees

Add a room options

Figure 3

this screen automatically becomes the moderator for that particular conference room. As the moderator, the user can set various permissions for that particular conference room. Otherwise, when you join an existing conference, the users proceed to the next screen. Then all user get prompted for a user login name for the conference as shown in figure 4. After the user types in a valid user name the user enters the conference room. At this time the conference room windows appear.

Get Name WIndow

The Easel Page Window

This window is the drawing area for the applet. Any shapes or figures a user draws will appear in this window and will be transmitted to every one elses Easel Page window. The shape will not be seen in any one else window until the shape is completely drawn. The Easel Page window is instanciated by the Page Manager Window. Each shape on the white board is considered an object. The white board has no idea what object it is dealing with. It just calls a method of the object and the object handles it from there on. The file and class that controls this window is called the whiteBoard.java and whiteBoard.class files respectively. This window can have a number of operations sent to it and it will respond appropriately. Many of these operations are sent by the Tool Kit as described in the Tool Kit window section.

The white board sends out and receives message from the program manager. The format of these messages will be discussion in the communications sections. Depending on the type of the message, incoming or outgoing, the window handles it differently. If the message is an incoming message, it can be in two forms: as a new object being sent by another white board or as a message to manipulate an existing object. An out-going message is created as the object is being created in preparation to boardcast it to all other Easel Pages that are in the same conference room.

Easel Window

Figure 5

Even though the Easel Page Window acts as an independent object from all other windows, it is not the only one that effects what happens to it. Two other windows effect what happens within the window. The Page Manager controls whether or not an user can draw on the Easel Page or not. This parameter is initially set when the conference room is created. This will be discussed further within the Page Manager Window section. The other window is the Chat Window. Among many operations the Chat Window allows an user to hide or display the Easel Page Window. Figure 14 points out the location at which a user can got to hide or display any of these windows.

The following are some examples of objects being drawn on an Easel Page.

Example of TextFonts

Figure 6


Example of Graphical Text

Figure 7


A Rectangle on Easel Page

Figure 8




The Tool Kit Window

The Tool Kit is one of the simplest windows of the entire software package. The Tool Kit is essentially an interface between the Easel Page and the actual object that can be placed on the Easel Page. The Tool Kit is composed of twelve buttons and one list button. Of the twelve buttons six are object buttons and the other six are action buttons. The six object buttons allow a user to create the following objects on an Easel Page (As illustrated in figures 6, 7, and 8 Tool Kit  Window Tool Kit  Window from top left to bottom right) rectangle, circle, oval, line, continuous line, and text. Like wise the action buttons in the same order are:

















Movethe arrowclick on an object on the Easel Page and drag it
Copythe 2 pagesclick on any object and drag, the object is duplicated
Cutthe scissorsclick on button and t hen any object, and it disappears
Undocurved arrowclick on button & the last drawing or action is undone
Cleara ragclears the current viewed Easel Page
Clear All a rag & 2 pagesclears all Easel Pages in that conference room

Tool Kit  Window showing color choses

The last button on the tool kit is a list button that assigns the color of all the objects as they are drawn on the screen. A list button is basically a pull down menu. The background of the menu indicates the last activated color the user chose. This comes in handy if the user is distracted or can not decided right away what color to chose, or right out forget what color that was last active. This is illustrated in figure 8. Once a color is chosen the color of the button indicates the active color and the pull down menu disappears. This can be seen in figures 6, where it is black and in figure 7, where it is blue.

The Page Manager Window

The Page Manager is a simple window in comparison to the previous windows, however there is a lot of background activities and checklists that are going on that the user never sees. The Page Manager is in charge of making sure the proper permissions for each action the user takes are allowed. The Page Manager Window is instanceated by the Doorman.



The Page Manager

The Page Manager makes sure that the conditions set up for drawing, chatting and page turning are followed. Not only does the Page Manager manages the permissions of a given user, it also directs incoming and outgoing message to the server side of the communications. It also manages the different number of Easel Pages each user has.

The Page Manager is in charge of displaying the current list of user enrolled in a given conference room. Along with the name of the user is the page that the user is currently on. Three other items are displayed on the page manager: a page up button, a page down button, and a direct page text area. The page up button allows an user with the proper permissions to flip the Easel Page up. Likewise for the down button, if the user has proper permission, the user can turn down a Easel Page. The page direct button allows the user to type in a number and go directly to that page.

Unfortunately, the page direct feature has not been completely implemented yet. However, at the moment the user can do a page direct to page one. Another feature that was designed, but never made it to the implementation stage was multiple individual pages. What this would do is allow the user to turn the page and go his own way. Then later tell every one to take a look at that page.

The Chat Window

The Chat Window has a couple simple tasks to carry out. The main purpose of the Chat Window is to allow the your to participate in interactive talking. This setup is very similar to the Interactive Relay Chat (IRC) sessions. This allows users to have a discussion online, without having to take time to draw anything. The name of the user appears in front of the message that is sent. This allows the user in the conference room know who sent what message. Due to the fact that the chat window causes a lot of communications to occur it is the only window that was designed to talk directly with the communications software, with exception for the Page Manager.

Chat Window


Figure 12
Chat Window About Opinion


Figure 13
Chat Window Menu Opinion


Figure 14

The Chat Window has some other additions features. At the top of the window a menu bar is provided. There are three pull down menus. The first one, File, allows the user to quit the applet. The second menu item is labeled Windows. This allows the user to clean up the desktop. The user can hide the Easel Page, the Page Manager, and the Tool Kit from this pull down menu, The user can also have the three windows reappear too. The third pull down menu is the about option. This option allows the user to display a simple readme file about the applet.

The Communications

The most complex portion of the software package, yet the portion that is least seen by the user, is communications. This component is the one component that allows all the other components talk to one another. This communication can be as simple as the client sending a message to itself. And as complex as having a message broadcasted across the network to remote machines. Communications is a multi-threaded setup. This allows several messages and operations to be carried out and do not get delayed by any one message or operation. All communication messages are queued if it can not be handled right away. The queue is handled in the order the message was received. It is amazing how small the files are, and yet how much they do.

This Table represents the client side of the communication.

Java FilesRelated Class FilesSize of Java Files (Kbytes)Number of Lines in Java files
zClientMethods.javazClientDef.class
10
328
zCommHandler.javazCommHandler.class
1
12
zComponent.javazComponent.class
1
28

This table represents the server side of the communications.

Java FilesRelated Class Files Size of Java Files (Kbytes)Number of Lines in Java files
zHub.javazHub.class
1
27
zListHandler.javazListHandler.class
1
11
xListener.javazListener.class
3
95
zMemberzMember.class
1
40
zModerator.javazmoderator.class
1
23
zReader.javazReader.class
7
213
zRequester.javazRequester.class
2
88
zServer.javazServer.class
9
261
zWriter.javazWriter.class
3
70


Villanova Univ. Seal Top of Paper | Previous Page | Next Page | Bottom of Paper

Written By Graham L. Mehl
Last Modified on April 23, 1996
© Villanova University