Collaborative Tool
Initial Software Architecture and
Design
2.0 Module
Interactions and Descriptions
2.2 Interface
Authentication Control
2.3 Interface
Participant Control
2.5 Interface
PersistentStorage
2.9 Interface
Document Control
Figure
1 Component Model Diagram
Figure 2 User
Authentication Window
Figure 8 Create New
Project Interaction Diagram
Figure 9 Login
Interaction Diagram
Figure 10 Activate
Project Interaction Diagram
Figure 11 Request
Turn Interaction Diagram
Figure 12 Send
Message Interaction Diagram
This section includes two diagrams that indicate the overall layered architecture of the Collaborative Tool.

Figure 1 below outlines the basic system architecture showing the
software layers and separation. Also shown are the interconnections between the
modules that make up the server side Application Layer.
Figure 1
Component Model Diagram
The AMCC
module will provide the transport mechanism for all messages and data that flow
between the client and server side of the system. It will be isolated from the
system via the RFC (Remote Function Call) module which will coordinate
signaling and data marshalling. Further isolation is achieved using the AL
(Application Logic Stub). This stub will provide the client side interface to
the server side Application Logic modules and route those commands via the RFC
module.
public interface AMCC
Purpose:
The AMCC module links all related component modules. It provides the following functions:
1) Attach a component to the AMCC according to the
component's request.
2) Detach a component from the AMCC according to the component's request.
3) Send message objects on a specified channel.
4) Get a free channel from the AMCC's available channels.
5) Listen to a specific channel.
6) “Unlisten” to a channel.
|
Method Summary |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean attach(java.util.Observer amccListener)
Attaches a component to the AMCC. Anyone wishing to use the AMCC will attach to the AMCC.
Parameters:
amccListener - the
component that will attach to the AMCC.
Returns:
true if the component attaches successfully, false otherwise.
Throws:
java.lang.IllegalArgumentException - if amccListener is an invalid type.
public boolean detach(java.util.Observer amccListener)
Detaches a component from the AMCC. When a component is no longer interested in participating in communications, it will detach from the AMCC.
Parameters:
amccListener - the
component that will attach to the AMCC.
Returns:
true if the component detaches successfully, false otherwise.
Throws:
java.lang.IllegalArgumentException - if amccListener is an invalid type.
public int getFreeChannel()
Gets a free channel. When a component wants an unused channel, it will request a free channel from the AMCC.
Returns:
channelID identified by an integer in the range [0,231 - 1].
Throws:
FailureException - if
there is no free channel.
public boolean send(int chanID, java.lang.Object sendObject)
Sends an object (messages) on a specific channel. Messages sent on this channel will be heard by anyone listening on that channel.
Parameters:
chanID - ID of the
specific channel.
sendObject - object
(messages) to be sent.
Returns:
true if sending is successful, false otherwise.
Throws:
java.lang.IllegalArgumentException - if chanID and/or object sent is invalid.
public boolean listen(int chanID, java.util.Observer amccListener)
Listen to a channel. To receive communications directed to a channel, a component will listen to a channel.
Parameters:
chanID - ID of a
specific channel.
amccListener - the
component that will listen to the channel.
Returns:
true if message receiving is successful, false otherwise.
Throws:
java.lang.IllegalArgumentException - if chanID and/or amccListener are invalid.
public boolean unlisten(int chanID, java.util.Observer amccListener)
Unlisten to a channel. When a component no longer wishes to receive communications from a channel, it will “unlisten” to a channel.
Parameters:
chanID - ID of a
specific channel.
amccListener - the
component listening to the channel.
Returns:
true if no longer listening, false otherwise.
Throws:
java.lang.IllegalArgumentException - if chanID and/or amccListener are invalid.
public interface AuthenticationControl
Purpose:
The Authentication Module manages the entrance and exit of users to and from the system. It provides the following functions:
1) Login
2) Logoff
3) Create Account
Imports:
Participant->
boolean addParticipantToDB(String userName);
Participant->
ParticipantInfo getParticipant(String userName);
|
Method Summary |
|
|
|
|
|
|
|
|
|
|
|
Method Detail |
public ParticipantInfo login(java.lang.String userName, java.lang.String password)
Login a registered user. A participant will be identified by a username and corresponding password.
Parameters:
userName - the unique
username of a registered user
password - the password
used to confirm the identity of the user
Returns:
participantInfo when login is successful.
Throws:
java.lang.IllegalArgumentException - if username or password is incorrect.
public void logoff(ParticipantInfo participant)
Logoff a participant. A participant logs off to leave the system.
Parameters:
participant – The
participant’s information.
Throws:
java.lang.IllegalArgumentException - if participantInfo is invalid.
public int createAccount(java.lang.String userName, java.lang.String password)
Creates a new user account. A new user requests an account by providing user information and a password.
Parameters:
userName - the username
of the new user
password - the password
for this new user
Returns:
userID when a new account is successfully created.
Throws:
java.lang.IllegalArgumentException - if userName/password is invalid.
public interface ParticipantControl
Purpose:
The Participant Module has access to and can modify participant information. It has the following functions:
1) Add a participant to participant database
2) Delete a participant from participant database
3) Get the participant information from the participant database
|
Method Summary |
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean addParticipantToDB(java.lang.String userName)
Add a participant to the Participant database.
Parameters:
userName - the username
of a participant.
Returns:
true if a participant is successfully added, false otherwise.
Throws:
java.lang.IllegalArgumentException - if userName is NULL or already in the database.
public boolean deleteParticipantFromDB(java.lang.String userName)
Delete a participant from the Participant database.
Parameters:
userName - the username
of a participant.
Returns:
true if a participant is successfully deleted, false otherwise.
Throws:
java.lang.IllegalArgumentException - if userName is NULL or not in the database.
public ParticipantInfo getParticipant(java.lang.String userName)
Get the information of a specific participant.
Parameters:
userName - username of
a specific participant
Returns:
participantInfo.
Throws:
java.lang.IllegalArgumentException - if username is not in the database.
public boolean addParticipatedProject(ParticipantInfo participant, ProjectInfo projectName)
Add a new project in which the user is a participant to that user’s project list.
Parameters:
participant - the
participant information.
projectName - the name
of the project to add.
Returns:
true if added successfully, false otherwise.
Throws:
java.lang.IllegalArgumentException - if participant/projectName is invalid.
public interface Directory
The directory component provides a hierarchical lookup service.
|
Method Summary |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Method Detail |
public Node lookUpNode(java.lang.String myPath)
Retrieves the Node having the supplied path.
Parameters:
myPath - the path of a
node in the directory.
Returns:
the node requested.
Throws:
java.lang.IllegalArgumentException - if myPath is null.
public java.util.Collection lookUpAttribute(java.lang.String myPath, java.util.Collection attributeKeys)
Retrieves the collection of attribute with the supplied path and attribute keys.
Parameters:
myPath - the path to
the node in which the attributes reside.
attributeKeys - the
keys of the attributes requested.
Returns:
the collection of attributes requested.
Throws:
java.lang.IllegalArgumentException - if either myPath or attribute key is null.
public java.lang.String addAttribute(java.lang.String path, java.lang.String attribute, java.util.Collection value)
Adds the attribute to the node at the supplied path with the specified value(s).
Parameters:
path - the path of the
node to which the attribute will be added.
attribute - the
attribute to be added.
value - the collection
of values of the attribute to be added.
Returns:
the attribute added.
Throws:
java.lang.IllegalArgumentException - if either path, attribute or value is null.
public boolean removeAttribute(java.lang.String path, java.lang.String attributeKey)
Removes the attribute at the supplied path with the specified attribute key.
Parameters:
path - the path of the
node from which the attribute is removed.
attributeKey - the key
of the attribute to be deleted,
Returns:
true if the removal is successful; false otherwise.
Throws:
java.lang.IllegalArgumentException - if either path or attributeKey is null.
public boolean addNewNode(java.lang.String path)
Adds a new node at the supplied path.
Parameters:
path - the path to
which the new node will be added.
Returns:
true if the addition is successful; false otherwise.
Throws:
java.lang.IllegalArgumentException - if path is null.
public boolean removeNode(java.lang.String path)
Removes the node having the supplied path.
Parameters:
path - the path from
which the node will be removed.
Returns:
true if the removal is successful; false otherwise.
Throws:
java.lang.IllegalArgumentException - if path is null.
public interface PersistentStorage
This component provides a persistent store for information.
|
Method Summary |
|
|
|
|
|
|
|
|
|
|
|
Method Detail |
public int addItem(java.lang.Object item)
Adds an item to the store and returns a 32 bit key that identifies that item.
Parameters:
item - the item to be
added to the persistent storage.
Returns:
a 32 bit key that is used to retrieve / delete the item.
Throws:
java.lang.IllegalArgumentException - if item is null.
public java.lang.Object retrieveItem(int key)
Retrieves the item with the supplied 32 bit key.
Parameters:
key - the 32 bit key
that identifies the item.
Returns:
the item requested.
Throws:
java.lang.IllegalArgumentException - if key is null.
public boolean deleteItem(int key)
Deletes the item with the supplied 32 bit key.
Parameters:
key - the 32 bit key
that identifies the item.
Returns:
true if deletion is successful; false otherwise.
Throws:
java.lang.IllegalArgumentException - if key is null
public interface ProjectControl
Purpose:
The
ProjectControl Module contains all functions that are related to the management
of projects and the documents of those projects. This module also controls
session creation and participating member lists.
Imports:
|
Method Summary |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Method Detail |
public ProjectInfo createProject(java.lang.String projectName, ParticipantInfo creator)
Creates a new project with the specified project name in the database and assigns the creator to be the chair of the project.
Returns:
a reference to the created project.
public boolean deleteProject(java.lang.String projectName, ChairInfo chair)
Deletes a project with the specified project name from the project database. Only a chair is able to perform this action.
Parameters:
projectName - the name
of the project to delete.
chair - the chair who
initiates the project deletion.
Returns:
true if the project is deleted successfully, false otherwise.
public SessionInfo activateProject(java.lang.String projectName, ChairInfo chair)
Activates a project with the specified project name. Only a chair is able to perform this action.
Parameters:
projectName - the name
of the project to activate.
chair - the chair who
initiates the project activation.
Returns:
a reference to the created session.
public boolean deactivateProject(ProjectInfo project, ChairInfo chair)
Deactivates the project specified by the reference. Only a chair is able to perform this action.
Parameters:
project - a reference
to the project to deactivate.
chair - the chair who
initiates the project deactivation.
Returns:
true if the project is successfully deactivated, false otherwise.
public boolean addParticipantToProject(ProjectInfo project, java.lang.String userName, ChairInfo chair)
Adds a user with the specified username to the selected project. Only a chair is able to perform this action.
Parameters:
project - a reference
to the project to which a user will be added.
userName - the username
of the participant to add.
chair - the chair who
adds the participant to the project.
Returns:
true if the participant is successfully added, false otherwise.
public boolean deleteParticipantFromProject(ProjectInfo project, java.lang.String userName, ChairInfo chair)
Removes a user with the specified username from the selected project. Only a chair is able to perform this action.
Parameters:
project - a reference
to the project to remove a user from.
userName - the username
of the participant to remove.
chair - the chair who
removes the participant from the project.
Returns:
true if the participant is successfully removed, false otherwise.
public boolean addDocument(ProjectInfo project, Document doc)
Adds the selected document to the selected project.
Parameters:
project - a reference
to the project to add a document to.
doc - a reference to
the document to add.
Returns:
true if the document is successfully added, false otherwise.
public boolean deleteDocument(ProjectInfo project, Document doc, ChairInfo chair)
Removes the selected document from the selected project.
Parameters:
project - a reference
to the project to remove a document from.
doc - a reference to
the document to remove.
chair - the chair who
removes the document from the project.
Returns:
true if the document is successfully removed, false otherwise.
public java.util.Collection getParticipatingProjects(ParticipantInfo participant)
Gets a list of projects that have the indicated participant as a member.
Parameters:
participant - a
reference to the participant.
Returns:
a Collection of project objects that have the indicated participant as a member.
public java.util.Collection getProjectParticipants(ProjectInfo project)
Gets a list of the indicated project's participants.
Parameters:
project - a reference
to the project.
Returns:
a Collection of participant objects that belong to the indicated project.
public ProjectInfo getProject(java.lang.String projectName)
Gets a reference to the project with the specified project name.
Parameters:
projectName - the name
of the project.
Returns:
a reference to the project with the specified project name.
public SessionInfo getSession(ProjectInfo activeProject)
Gets a reference to the session of the indicated project.
Parameters:
activeProject - a
reference to the project.
Returns:
a reference to the session of the indicated project, or null if the project is inactive.
public interface SessionControl
Purpose:
The SessionControl module manages all actions that are available during a project session. These include managing the dialog and edit queues as well as sending messages to all users who are participating in the session.
Imports:
|
Method Summary |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Method Detail |
public boolean joinSession(SessionInfo session, ParticipantInfo participant)
Joins the indicated participant to the selected session.
Returns:
true if the participant joins the session successfully, false otherwise.
public boolean leaveSession(SessionInfo session, ParticipantInfo participant)
Invoked when a participant leaves a session. If the participant is the chair of the project, the session will be closed, all participants will be forced to leave, and the transcript will be saved.
Parameters:
session - a reference
to the session.
participant - a
reference to the participant who leaves the session.
Returns:
true if the participant leaves the session successfully, false otherwise.
public boolean requestTurn(ParticipantInfo participant)
Requests a turn to speak. If no one is currently holding a turn, the requester will be given a turn; otherwise, the requester will be added to the end of the dialogue queue.
Parameters:
participant - a
reference to the participant who requests a turn.
Returns:
true if the request is successful, false otherwise.
public boolean releaseTurn(ParticipantInfo participant)
Release the current turn. If exists, the participant in the front of the dialogue queue will be de-queued and given a turn.
Parameters:
participant - a
reference to the participant who releases the turn.
Returns:
true if the release is successful, false otherwise.
public boolean moveToFrontOfDialogueQueue(ChairInfo chair)
Moves the chair to the front of the dialogue queue. Only a chair can perform this operation.
Parameters:
chair - the chair who
requested to be moved to the front of the dialogue queue.
Returns:
true if the move is successful, false otherwise.
public boolean gainDialogueControl(ChairInfo chair)
Forces the current turn-holder to release the turn and give it to the chair. Only a chair can perform this operation.
Parameters:
chair - the chair who
requested dialogue control.
Returns:
true if dialogue control is achieved, false otherwise.
public boolean sendMessage(java.lang.String message, ParticipantInfo participant)
Sends a message to everyone participating in the session.
Parameters:
message - the text
message to be sent.
participant - a
reference to the participant who sends the message.
Returns:
true if the message is sent successfully, false otherwise.
public boolean requestEditControl(ParticipantInfo participant)
Requests edit control. If no one currently has edit control, the requester will be given control; otherwise, the requester will be added to the end of the edit queue.
Parameters:
participant - a
reference to the participant who requests edit control.
Returns:
true if the request is successful, false otherwise.
public boolean releaseEditControl(ParticipantInfo participant)
Release edit control. If exists, the participant in the front of the edit queue will be de-queued and given edit control.
Parameters:
participant - a
reference to the participant who releases edit control.
Returns:
true if the release is successful, false otherwise.
public boolean moveToFronOfEditQueue(ChairInfo chair)
Moves the chair to the front of the edit queue. Only a chair can perform this operation.
Parameters:
chair - the chair who
requests to be moved to the front of the edit queue.
Returns:
true if the move is successful, false otherwise.
public boolean gainEditControl(ChairInfo chair)
Forces the current edit control holder to release edit control and gives it to the chair. Only a chair can perform this operation.
Parameters:
chair - the chair who
requested edit control.
Returns:
true if edit control is achieved, false otherwise.
public boolean saveTranscript()
Saves the session dialogue into a transcript for future reference.
Returns:
true if the transcript is saved successfully, false otherwise
public interface System
Purpose: The System Module acts as
a mediator whose responsibility is to control and coordinate the activities of
all other modules during run-time.
Imports:
*
Authentication->ParticipantInfo login(String userName, String password);
*
Authentication->void logoff(ParticipantInfo participant);
*
Authentication->ParticipantInfo createAccount(String userName, String
password);
*
SessionControl->boolean joinSession(SessionInfo session, ParticipantInfo
participant);
*
SessionControl->boolean leaveSession(SessionInfo session, ParticipantInfo
participant);
*
SessionControl->boolean requestTurn(ParticipantInfo participant);
*
SessionControl->boolean releaseTurn(ParticipantInfo participant);
*
SessionControl->boolean acquireEditControl(ParticipantInfo participant);
*
SessionControl->boolean releaseEditControl(ParticipantInfo participant);
*
SessionControl->boolean moveToFrontOfQueue(ChairInfo chair);
*
SessionControl->boolean gainDialogueControl(ChairInfo chair);
*
SessionControl->boolean sendDialog(String msg);
*
Document->boolean saveDocument();
*
Document->boolean loadDocument();
*
ProjectControl->ProjectInfo createNewProject(ParticipantInfo participant,
String projectName);
*
ProjectControl->boolean deleteProject(String projectName, ChairInfo chair);
*
ProjectControl->boolean activateProject(String projectName, ChairInfo
chair);
*
ProjectControl->boolean deactivateProject(ProjectInfo project, ChairInfo
chair);
*
ProjectControl->sessionInfo activateProject(String projectName, ChairInfo
chair);
*
ProjectControl->boolean addParticipantToProject(ProjectInfo project, String
userName, ChairInfo chair);
*
ProjectControl->boolean deleteParticipantFromProject(ProjectInfo project,
String userName, ChairInfo chair);
*
ProjectControl->boolean addDocument(Document doc);
*
ProjectControl->boolean deleteDocument(Document doc, ChairInfo chair);
|
Method Summary |
|
|
|
|
|
|
Interface to allow a chair to activate a project. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Method Detail |
public ParticipantInfo login(java.lang.String userName, java.lang.String password)
Invokes "login" method of the Authentication Interface to allow a user to log into the system. See "login" method of Authentication Interface for parameter details and return type.
public void logoff(ParticipantInfo participant)
Invokes "logoff" method of the Authentication Interface to allow a user to log off of the system. See "logoff" method of the Authentication Interface for parameter details and return type.
public ParticipantInfo createAccount(java.lang.String userName, java.lang.String password)
Invokes "createAccount" method of the Authentication Interface to allow a user to create a new account in the system. See "createAccount" method of the Authentication Interface for parameter details and return type.
public boolean joinSession(ProjectInfo project, ParticipantInfo participant)
Invokes "joinSession" method of the SessionControl Interface to allow a participant to join a session of project in which he/she is a participant. See "joinSession" method of the SessionControl Interface for parameter details and return type.
public boolean leaveSession(ProjectInfo project, ParticipantInfo participant)
Invokes "leaveSession" method of the SessionControl Interface to allow a participant to leave a session of project in which he/she is a participant. See "leaveSession" method of the SessionControl Interface for parameter details and return type.
public boolean requestTurn(ParticipantInfo participant)
Invokes "requestTurn" method of the SessionControl Interface to allow a participant to request dialog control during a session. See "requestTurn" method of the SessionControl Interface for parameter details and return type.
public boolean releaseTurn(ParticipantInfo participant)
Invokes "releaseTurn" method of the SessionControl Interface to allow a participant to release dialog control during a session. See "releaseTurn" method of the SessionControl Interface for parameter details and return type.
public boolean acquireEditControl(ParticipantInfo participant)
Invokes "acquireEditControl" method of the SessionControl Interface to allow a participant to acquire edit control during a session. See "acquireEditControl" method of the SessionControl Interface for parameter details and return type.
public boolean releaseEditControl(ParticipantInfo participant)
Invokes "releaseEditControl" method of the SessionControl Interface to allow a participant to release edit control during a session. See "releaseEditControl" method of the SessionControl Interface for parameter details and return type.
public boolean moveToFrontOfQueue(ChairInfo chair)
Invokes "moveToFrontOfQueue" method of the SessionControl Interface to allow a chair of a project to move to the head of the dialog queue at any time during a session. See "moveToFrontOfQueue" method of the SessionControl Interface for parameter details and return type.
public boolean gainDialogueControl(ChairInfo chair)
Invokes "gainDialogueControl" method of the SessionControl Interface to allow a chair of a project to forcefully take control of the dialog during a session. See "gainDialogueControl" method of the SessionControl Interface for parameter details and return type.
public boolean sendDialog(java.lang.String msg)
Invokes "sendDialog" method of the SessionControl Interface to allow a participant with dialog control to send messages to other participants in the session. See "sendDialog" method of the SessionControl Interface for parameter details and return type.
public boolean loadDocument()
Invokes "loadDocument" method of the SessionControl Interface to allow a participant with edit control to edit a document during a session. See "loadDocument" method of the SessionControl Interface for parameter details and return type.
public boolean saveDocument()
Invokes "saveDocument" method of the Document Interface to allow a participant with edit control to save a document during a session. See "saveDocument" method of the SessionControl Interface for parameter details and return type.
public ProjectInfo createNewProject(ParticipantInfo participant, java.lang.String projectName)
Invokes "createNewProject" method of the Document Interface to allow a participant to create a new project. See "createNewProject" method of the ProjectControl Interface for parameter details and return type.
public boolean deleteProject(java.lang.String projectName, ChairInfo chair)
Invokes "deleteProject" method of the ProjectControl Interface to allow a chair to delete a project. See "deleteProject" method of the ProjectControl Interface for parameter details and return type.
public boolean activateProject(java.lang.String projectName, ChairInfo chair)
Invokes "activateProject" method of the ProjectControl Interface to allow a chair to activate a project. See "activateProject" method of the ProjectControl Interface for parameter details and return type.
public boolean deactivateProject(ProjectInfo project, ChairInfo chair)
Invokes "deactivateProject" method of the ProjectControl Interface to allow a chair to deactivate a project. See "deactivateProject" method of the ProjectControl Interface for parameter details and return type.
public boolean addParticipantToProject(ProjectInfo project, java.lang.String userName, ChairInfo chair)
Invokes "addParticipantToProject" method of the ProjectControl Interface to allow a chair to add a participant to a project. See "addParticipantToProject" method of the ProjectControl Interface for parameter details and return type.
public boolean deleteParticipantFromProject(ProjectInfo project, java.lang.String userName, ChairInfo chair)
Invokes "deleteParticipantFromProject" method of the ProjectControl Interface to allow a chair to delete a participant from a project. See "deleteParticipantFromProject" method of the ProjectControl Interface for parameter details and return type.
public boolean addDocument(Document doc)
Invokes "addDocument" method of the ProjectControl Interface to allow a participant to add a document to a project. See "addDocument" method of the ProjectControl Interface for parameter details and return type.
public boolean deleteDocument(Document doc, ChairInfo chair)
Invokes "deleteDocument" method of the ProjectControl Interface to allow a participant to delete a document from a project. See "deleteDocument" method in ProjectControl Interface for parameter details and return type.
public interface DocumentControl
The document control component provides facilities to handle documents
|
Method Summary |
|
|
|
|
|
|
|
|
Method Detail |
public boolean loadDocument()
Loads the document.
Returns:
true if loading is successful; false otherwise.
public boolean saveDocument()
Saves the document.
Returns:
true if saving is successful; false otherwise.
public interface ClientGUI
Purpose:
This is the external interface presented by the GUI module which resides on the client side. The Application Logic Stub will invoke these methods to drive the GUI, update the required information, and convey it to the user.
Imports:
Application Logic Stub
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Method Summary |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static final int PROJECT
Identification constant for referring to the Project view of the collaborative tool GUI.
public static final int DOCUMENTS
Identification constant for referring to the Documents view of the collaborative tool GUI.
public static final int TRANSCRIPTS
Identification constant for referring to the Transcripts view of the collaborative tool GUI.
public static final int DISCUSSION
Identification constant for referring to the Discussion view of the collaborative tool GUI.
public static final int ACTIVATE_PROJECT
Identification constant for referring to the Activate Project button.
public static final int INACTIVATE_PROJECT
Identification constant for referring to the Inactivate Project button.
public static final int DELETE_PROJECT
Identification constant for referring to the Delete Project button.
public static final int EDIT_PARTICIPANT_LIST
Identification constant for referring to the Edit Participant List button.
public static final int ADD_DOCUMENT
Identification constant for referring to the Add Document button.
public static final int LOG_OFF
Identification constant for referring to the Log Off button.
public static final int EDIT_DOCUMENT
Identification constant for referring to the Edit Document button.
public static final int DELETE_DOCUMENT
Identification constant for referring to the Delete Document button.
public static final int REQUEST_TURN
Identification constant for referring to the Request Turn button.
public static final int MOVE_TO_QUEUE_FRONT
Identification constant for referring to the Move to Front of Queue button.
public static final int GAIN_DIALOG_CONTROL
Identification constant for referring to the Gain Dialog Control button.
public static final int RELEASE_TURN
Identification constant for referring to the Release Turn button.
public static final int END_DISCUSSION
Identification constant for referring to the End Discussion button.
public static final int SEND_MESSAGE
Identification constant for referring to the Send Message button.
public static final int REFRESH_PROJECT_TREE
Identification constant for referring to the Refresh Project Tree button.
|
Method Detail |
public void setViewVisible(int viewID)
Sets the specified tabbed pane view of the collaborative tool GUI to visible. This accomplishes the same effect as if the user has performed a mouse click on it.
Parameters:
viewID - one of the
defined constants for referring to a view of the collaborative tool GUI.
Throws:
java.lang.IllegalArgumentException - if viewID is invalid.
public void setButtonEnabled(int buttonID, boolean isEnabled)
Sets the state of the specified button to enabled or disabled.
Parameters:
buttonID - one of the
defined constants for referring to a button of the collaborative tool GUI.
isEnabled - true to
enable the specified button, false to disable it.
Throws:
java.lang.IllegalArgumentException - if buttonID is invalid.
public void setStatusBarMessage(java.lang.String message)
Sets the message to be displayed on the status bar of the GUI.
Parameters:
message - a message to
be displayed.
public void displayErrorDialog(java.lang.String errorMessage)
Creates a pop-up dialog in the collaborative tool to display an error message.
Parameters:
errorMessage - an error
message to be displayed.
public void addNotificationMessage(java.lang.String message)
Appends the specified String to the notification message display panel.
Parameters:
message - a
notification message to be displayed.
public void updateProjectStatusPanel(ProjectInfo project)
Updates the project status information presented on the Project view.
Parameters:
project - the info
object for the currently active project.
public void postMessage(java.lang.String userName, java.lang.String message)
Posts a new message on the message display panel under the Discussion view.
Parameters:
userName - the name of
the user who posted the message.
message - the message
content represented by a String.
Throws:
java.lang.IllegalArgumentException - if userName or message is null.
public void updateRequestTurnQueue(java.lang.String[] userNames)
Updates the user names on the Request Turn Queue display panel under the Discussion view. Overwrites the previous queue displayed.
Parameters:
userNames - an array of
user names.
public void updateDocumentsListing(java.lang.String[] documentNames)
Updates the list of document names displayed in the Discussion view. Overwrite the previous list displayed.
Parameters:
documentNames - an
array of document names for document which has been added to the current
project.
public void setActiveDocument(java.lang.String documentName)
Highlights the specified document name in the list to reflect that it is the active document.
Parameters:
documentName - the name
of the active document.
Throws:
java.lang.IllegalArgumentException - if documentName is not in the current document list.
public void updateDocumentTable(Document[] projectDocuments)
Updates the document description panel presented in the Documents view for displaying the details of each project document.
Parameters:
projectDocuments - an
array of Document info objects specifying the document details.
public void updateProjectTree(ProjectInfo[] projects)
Refreshes the project tree display panel with updated selections.
Parameters:
projects - an array of
projects applicable for the current user.
public void setUserOnline(java.lang.String userName, boolean isOnline)
Sets the online status of the specified user and update the colour of his name displayed on the project tree panel.
Parameters:
userName - the user
whose status is to be set to online/offline.
isOnline - true for
setting the user status to online, false otherwise.
Throws:
java.lang.IllegalArgumentException - if userName does not correspond to one of the project
participants.
public void updateDocumentPanel(Document activeDocument)
Updates the document display panel with the content of the specified document.
Parameters:
activeDocument - the
currently active document being edited.
Throws:
java.lang.IllegalStateException - if no document is currently active.

Figure 2 :
User Authentication Window
|
Window: userAuthenticationWindow |
|
|
Description: |
Main login screen |
|
Item: |
Action: |
|
Field: LoginName |
Enter username |
|
Field: Password |
Enter password |
|
Button: Cancel |
Close Window: userAuthenticationWindow |
|
Button: OK |
Submit Field: username and Field: password |
|
Link: New User? |
Open Window: newAccountForm |
|
Link:Forgot Password? |
Open Window: sendPasswordtoUserWindow |

Figure 3
New Account Form
|
Window: newAccountForm |
|
|
Description: |
Account creation registration form |
|
Item: |
Action: |
|
Field: LoginName |
Enter username |
|
Field: Password |
Enter password |
|
Field:confirmPassword |
Enter confirmed password |
|
Field:email |
Enter email address |
|
Field:name |
Enter real name |
|
Field:position |
Enter position in the organization |
|
Field:department |
Enter department in the organization |
|
Button: Cancel |
Close Window: newAccountForm |
|
Button: OK |
Submit all fields |

Figure 4
Project View
|
Window: projectView |
|
|
Description: |
Window displaying project status and details |
|
Item: |
Action: |
|
Tree: allProjects |
A list of all the projects under the node “Projects” |
|
Node: project |
A node that encapsulates the documents and participants of a project |
|
Node: documents |
A node that encapsulates the user documents of a project |
|
Node: transcripts |
A node that encapsulates the transcripts of a project |
|
Node: users |
A node that encapsulates the participants of a project |
|
Button:NewProject |
Open Window: newProjectForm |
|
Button:Refresh |
Refreshes Tree: allProjects |
|
Button: ActivateProject |
Activates selected project – available only for inactive projects |
|
Button:InactivateProject |
Inactivate selected project - available only for active projects |
|
Button: DeleteProject |
Removes selected project |
|
Button:EditParticipantList |
Open Window: editParticipantList |
|
Button: AddDocument |
Open Window: addDocumentForm |
|
Button:Logoff |
Log out of the system. |

Figure 5