DPS Logo

Dynamic Presentation System

http://dpsys.sourceforge.net/
http://sourceforge.net/projects/dpsys/

Design Specification

Version 1.1

Authors

An Do <ad68ATdrexelDOTedu>
Lay Gauv <lcg22ATdrexelDOTedu>
Sarith Kim <sk63ATdrexelDOTedu>
John Trainer <jwt25ATdrexelDOTedu>
Rami Quezada <rq23ATdrexelDOTedu>

Table of Contents

1.       Introduction

1.1.       Description of DPS

1.2.       Purpose

1.3.       Document Scope

1.4.       Design Goals and Objectives

1.5.       Overview of the Remainder of the Document

2.       Client-Server Design

3.       Architectural and Component-level Design

3.1.       DPS/Base Components

3.1.1.       Description

3.1.2.       DPSBase Class

3.1.2.1.       Description

3.1.2.2.       Fields

3.1.2.2.1.       displays

3.1.2.2.2.       width

3.1.2.2.3.       height

3.1.2.2.4.       blayout

3.1.2.3.       Methods

3.1.2.3.1.       DPSBase()

3.1.2.3.2.       initDisplays()

3.1.2.3.3.       createDisplays()

3.1.2.3.4.       setDisplaysWidth()

3.1.2.3.5.       setDisplaysHeight()

3.1.2.3.6.       setBlankDisplays()

3.1.2.3.7.       getLowestWidth()

3.1.2.3.8.       getLowestHeight()

3.1.2.3.9.       setLowestResolution()

3.1.3.       DPSBaseAboutDPSDialog Class

3.1.3.1.       Description

3.1.3.2.       Fields

3.1.3.2.1.       titlelabel

3.1.3.2.2.       copyrightlabel

3.1.3.2.3.       descriptionlabel

3.1.3.2.4.       dpslogo

3.1.3.2.5.       okbutton

3.1.3.3.       Methods

3.1.3.3.1.       DPSBaseAboutDPSDialog()

3.1.3.3.2.       initDialog()

3.1.3.3.3.       okbuttonClickEventMethod()

3.1.4.       DPSBaseDisplay Class

3.1.4.1.       Description

3.1.4.2.       Fields

3.1.4.2.1.       id

3.1.4.2.2.       slideindex

3.1.4.2.3.       slides

3.1.4.2.4.       lockflag

3.1.4.2.5.       chainedID

3.1.4.2.6.       type

3.1.4.2.7.       filename

3.1.4.2.8.       width

3.1.4.2.9.       height

3.1.4.3.       Methods

3.1.4.3.1.       DPSBaseDisplay()

3.1.4.3.2.       DPSBaseDisplay(id)

3.1.4.3.3.       setFileName(filename)

3.1.4.3.4.       getFileName()

3.1.4.3.5.       getSlides()

3.1.4.3.6.       setDisplayID(id)

3.1.4.3.7.       getDisplayID()

3.1.4.3.8.       setSlideIndex(index)

3.1.4.3.9.       getSlideIndex()

3.1.4.3.10.       setDisplayType(type)

3.1.4.3.11.       getDisplayType()

3.1.4.3.12.       setWidth(width)

3.1.4.3.13.       getWidth()

3.1.4.3.14.       setHeight(height)

3.1.4.3.15.       getHeight()

3.1.4.3.16.       setCurrentSlide(slide)

3.1.4.3.17.       getCurrentSlide()

3.1.4.3.18.       setSlideAt(slideindex, slide)

3.1.4.3.19.       getSlideAt(slideindex)

3.1.4.3.20.       addSlide(slide)

3.1.4.3.21.       firstSlide()

3.1.4.3.22.       previousSlide()

3.1.4.3.23.       nextSlide()

3.1.4.3.24.       lastSlide()

3.1.4.3.25.       refresh()

3.1.4.3.26.       setDisplayLocked(lockflag)

3.1.4.3.27.       getDisplayLocked()

3.1.4.3.28.       showID()

3.1.4.3.29.       duplicateSlide(todisplay)

3.1.4.3.30.       clear()

3.1.5.       DPSBaseDisplayOptionsDialog Class

3.1.5.1.       Description

3.1.5.2.       Fields

3.1.5.2.1.       SINGLE_DISPLAY, Constant set to 0.

3.1.5.2.2.       MIRRORED_DISPLAY, Constant set to 1.

3.1.5.2.3.       CHAINED_DISPLAY, Constant set to 2.

3.1.5.2.4.       displays

3.1.5.2.5.       slides

3.1.5.2.6.       type

3.1.5.2.7.       rdsingle

3.1.5.2.8.       rdmirrored

3.1.5.2.9.       rdchained

3.1.5.2.10.       displaylist

3.1.5.2.11.       okbutton

3.1.5.2.12.       cancelbutton

3.1.5.2.13.       grouptype

3.1.5.2.14.       groupdisplays

3.1.5.3.       Methods

3.1.5.3.1.       DPSBaseDisplayOptionsDialog()

3.1.5.3.2.       DPSBaseDisplayOptionsDialog(displays, chainedid)

3.1.5.3.3.       initDialog()

3.1.5.3.4.       setDisplayType(type)

3.1.5.3.5.       selectDisplays(displays)

3.1.5.3.6.       selectDisplay(display)

3.1.5.3.7.       extractSlides()

3.1.5.3.8.       rdsingleSelectEventMethod()

3.1.5.3.9.       rdmirroredSelectEventMethod()

3.1.5.3.10.       rdchainedSelectEventMethod()

3.1.5.3.11.       okbuttonClickEventMethod()

3.1.5.3.12.       cancelbuttonClickEventMethod()

3.1.6.       DPSBaseDrawingLayout Class

3.1.6.1.       Description

3.1.6.2.       Fields

3.1.6.2.1.       bwhiteboard

3.1.6.2.2.       bdisplay

3.1.6.2.3.       drawpanel

3.1.6.2.4.       colorselect

3.1.6.2.5.       clearbutton

3.1.6.2.6.       closebutton

3.1.6.3.       Methods

3.1.6.3.1.       DPSBaseDrawingLayout(display)

3.1.6.3.2.       createWhiteboard()

3.1.6.3.3.       close()

3.1.7.       DPSBaseDuplicateSlideDialog Class

3.1.7.1.       Description

3.1.7.2.       Fields

3.1.7.2.1.       displaylabel

3.1.7.2.2.       displaycombobox

3.1.7.2.3.       okbutton

3.1.7.2.4.       cancelbutton

3.1.7.2.5.       applybutton

3.1.7.2.6.       displays

3.1.7.2.7.       slideindex

3.1.7.3.       Methods

3.1.7.3.1.       DPSBaseDuplicateSlideDialog()

3.1.7.3.2.       DPSBaseDuplicateSlideDialog(displays,slideindex)

3.1.7.3.3.        initDialog()

3.1.7.3.4.       okbuttonClickEventMethod()

3.1.7.3.5.       cancelbuttonClickEventMethod()

3.1.7.3.6.       applybuttonClickEventMethod()

3.1.7.3.7.       duplicateSlide(slideindex)

3.1.8.       DPSBaseHelp Class

3.1.8.1.       Description

3.1.8.2.       Fields

3.1.8.2.1.       HH_DISPLAY_TOPIC

3.1.8.3.       Methods

3.1.8.3.1.       DPSBaseHelp()

3.1.8.3.2.       baseHelp()

3.1.9.       DPSBaseLayout Class

3.1.9.1.       Description

3.1.9.2.       Fields

3.1.9.2.1.       bmenubar

3.1.9.2.2.       btoolbar

3.1.9.2.3.       bslideview

3.1.9.2.4.       bslidecontrol

3.1.9.2.5.       bstatusbar

3.1.9.2.6.       displays

3.1.9.2.7.       bserver

3.1.9.3.       Methods

3.1.9.3.1.       DPSBaseLayout()

3.1.9.3.2.       DPSBaseLayout(displays)

3.1.9.3.3.       setDisplays(displays)

3.1.9.3.4.       initLayout()

3.1.10.       DPSBaseMenuBar Class

3.1.10.1.       Description

3.1.10.2.       Fields

3.1.10.2.1.       displays

3.1.10.2.2.       displayindex

3.1.10.2.3.       chainedcounter

3.1.10.2.4.       password

3.1.10.2.5.       openfiledialog

3.1.10.2.6.       aboutdpsdialog

3.1.10.2.7.       displayoptionsdialog

3.1.10.2.8.       duplicateslidedialog

3.1.10.2.9.       passworddialog

3.1.10.2.10.       swapdisplaysdialog

3.1.10.2.11.       drawdialog

3.1.10.2.12.       mainmenu

3.1.10.2.13.       mifile

3.1.10.2.14.       miopen

3.1.10.2.15.       mirecentfiles

3.1.10.2.16.       miclose

3.1.10.2.17.       miexit

3.1.10.2.18.       mitools

3.1.10.2.19.       micurrentdisplay

3.1.10.2.20.       milockdisplay

3.1.10.2.21.       miswapdisplays

3.1.10.2.22.       midraw

3.1.10.2.23.       miduplicateslide

3.1.10.2.24.       misetnewpassword

3.1.10.2.25.       mishowdisplayids

3.1.10.2.26.       mihelp

3.1.10.2.27.       mihelpcontents

3.1.10.2.28.       miaboutdps

3.1.10.3.       Methods

3.1.10.3.1.       DPSBaseMenuBar()

3.1.10.3.2.       DPSBaseMenuBar(displays, displayindex)

3.1.10.3.3.       initMenuItem()

3.1.10.3.4.       setDisplayIndex(displayindex)

3.1.10.3.5.       openFile()

3.1.10.3.6.       extractSlides()

3.1.10.3.7.       recentFiles()

3.1.10.3.8.       closeFile()

3.1.10.3.9.       exitDPSBase()

3.1.10.3.10.       lockDisplay()

3.1.10.3.11.       swapDisplays()

3.1.10.3.12.       duplicateSlide()

3.1.10.3.13.       draw()

3.1.10.3.14.       setPassword()

3.1.10.3.15.       helpContents()

3.1.10.3.16.       aboutDPS()

3.1.10.3.17.       miopenClickEventMethod()

3.1.10.3.18.       micloseClickEventMethod()

3.1.10.3.19.       miexitClickEventMethod()

3.1.10.3.20.       mishowDisplayidsClickEventMethod()

3.1.10.3.21.       showDisplayID()

3.1.10.3.22.       miswapdisplaysClickEventMethod()

3.1.10.3.23.       misetnewpasswordClickEventMethod()

3.1.10.3.24.       mihelpcontentsClickEventMethod()

3.1.10.3.25.       miaboutdpsClickEventMethod()

3.1.10.3.26.       milockdisplayClickEventMethod()

3.1.10.3.27.       miduplicateslideClickEventMethod()

3.1.10.3.28.       midrawClickEventMethod()

3.1.11.       DPSBaseOpenFileDialog Class

3.1.11.1.       Description

3.1.11.2.       Fields

3.1.11.2.1.       openfiledialog

3.1.11.3.       Methods

3.1.11.3.1.       DPSBaseOpenFileDialog()

3.1.11.3.2.       initOpenFile()

3.1.12.       DPSBasePasswordDialog Class

3.1.12.1.       Description

3.1.12.2.       Fields

3.1.12.2.1.       password

3.1.12.2.2.       currentpasswordlabel

3.1.12.2.3.       newpasswordlabel

3.1.12.2.4.       confirmpasswordlabel

3.1.12.2.5.       currentpasswordtextbox

3.1.12.2.6.       newpasswordtextbox

3.1.12.2.7.       confirmpasswordtextbox

3.1.12.2.8.       okbutton

3.1.12.2.9.       cancelbutton

3.1.12.3.       Methods

3.1.12.3.1.       DPSBasePasswordDialog(password)

3.1.12.3.2.       setPassword(currpassword, newpassword, confirmnewpassword)

3.1.12.3.3.       showPasswordSuccessful()

3.1.12.3.4.       showNewPasswordError()

3.1.12.3.5.       showCurrPasswordError()

3.1.12.3.6.       okbuttonClickEventMethod()

3.1.12.3.7.       cancelbuttonClickEventMethod()

3.1.13.       DPSBaseServer Class

3.1.13.1.       Description

3.1.13.2.       Fields

3.1.13.2.1.       COMM_ServerName, Constant set to 1001

3.1.13.2.2.       COMM_DirectoryList, Constant set to 2001

3.1.13.2.3.       COMM_DirectoryChange, Constant set to 2002

3.1.13.2.4.       COMM_DirectoryUp, Constant set to 2003

3.1.13.2.5.       COMM_PresentationOpen, Constant set to 3001

3.1.13.2.6.       COMM_PresentationClose, Constant set to 3002

3.1.13.2.7.       COMM_SlideFirst, Constant set to 4001

3.1.13.2.8.       COMM_SlidePrevious, Constant set to 4002

3.1.13.2.9.       COMM_SlideNext, Constant set to 4003

3.1.13.2.10.       COMM_SlideLast, Constant set to 4004

3.1.13.2.11.       COMM_DisplaySwap, Constant set to 5001

3.1.13.2.12.       COMM_DisplayShowIDs, Constant set to 5002

3.1.13.2.13.       COMM_DisplayDuplicate, Constant set to 5003

3.1.13.2.14.       COMM_DrawEnable, Constant set to 6001

3.1.13.2.15.       COMM_DrawPoint, Constant set to 6002

3.1.13.2.16.       COMM_DrawColor, Constant set to 6003

3.1.13.2.17.       COMM_DrawClear, Constant set to 6004

3.1.13.2.18.       COMM_DrawDisable, Constant set to 6005

3.1.13.2.19.       COMM_LockToggle, Constant set to 7001

3.1.13.2.20.       COMM_Exit, Constant set to 8001

3.1.13.2.21.       DISP_Single, Constant set to 5101

3.1.13.2.22.       DISP_Mirrored, Constant set to 5102

3.1.13.2.23.       DISP_Chained, Constant set to 5103

3.1.13.2.24.       RESP_DirectoryName, Constant set to 2201

3.1.13.2.25.       RESP_DirectoryBracket, Constant set to 2202

3.1.13.2.26.       RESP_DirectoryListing, Constant set to 2203

3.1.13.2.27.       RESP_DrawCapture, Constant set to 6201

3.1.13.2.28.       RESP_PasswordResult, Constant set to 9201

3.1.13.2.29.       RESP_CommandResult, Constant set to 9202

3.1.13.2.30.       RESP_Disconnecting, Constant set to 9203

3.1.13.3.       Methods

3.1.13.3.1.       Go()

3.1.13.3.2.       waitForConnection()

3.1.13.3.3.       stillConnected()

3.1.13.3.4.       waitForPassword()

3.1.13.3.5.       verifyPassword(password)

3.1.13.3.6.       waitForCommand()

3.1.13.3.7.       processCommand(command,argument1,argument2,argument3)

3.1.13.3.8.       sendResponse(code,data)

3.1.13.3.9.       endConnection()

3.1.14.       DPSBaseServerException Class

3.1.14.1.       Description

3.1.14.2.       Fields

3.1.14.3.       Methods

3.1.14.3.1.       DPSBaseServerException()

3.1.14.3.2.       DPSBaseServerException(message)

3.1.15.       DPSBaseSlide Class

3.1.15.1.       Description

3.1.15.2.       Fields

3.1.15.2.1.       id

3.1.15.2.2.       slidepreview

3.1.15.3.       Methods

3.1.15.3.1.       DPSBaseSlide()

3.1.15.3.2.       DPSBaseSlide(id, slidepreview)

3.1.15.3.3.       getSlideID()

3.1.15.3.4.       setSlideID(id)

3.1.16.       DPSBaseSlideControl Class

3.1.16.1.       Description

3.1.16.2.       Fields

3.1.16.2.1.       SINGLE_DISPLAY, Constant set to 0.

3.1.16.2.2.       MIRRORED_DISPLAY, Constant set to 1.

3.1.16.2.3.       CHAINED_DISPLAY, Constant set to 2.

3.1.16.2.4.       firstbutton

3.1.16.2.5.       previousbutton

3.1.16.2.6.       nextbutton

3.1.16.2.7.       lastbutton

3.1.16.2.8.       displays

3.1.16.2.9.       displayindex

3.1.16.3.       Methods

3.1.16.3.1.       DPSBaseSlideControl()

3.1.16.3.2.       DPSBaseSlideControl(displays)

3.1.16.3.3.       initAllButtons()

3.1.16.3.4.       enabledFirstButton(enable)

3.1.16.3.5.       enabledPreviousButton(enable)

3.1.16.3.6.       enabledNextButton(enable)

3.1.16.3.7.       enabledLastButton(enable)

3.1.16.3.8.       enabledAllButtons(enable)

3.1.16.3.9.       firstSlide()

3.1.16.3.10.       previousSlide()

3.1.16.3.11.       nextSlide()

3.1.16.3.12.       lastSlide()

3.1.16.3.13.       firstbuttonClickEventMethod()

3.1.16.3.14.       previousbuttonClickEventMethod()

3.1.16.3.15.       nextbuttonClickEventMethod()

3.1.16.3.16.       lastbuttonClickEventMethod()

3.1.17.       DPSBaseSlideView Class

3.1.17.1.       Description

3.1.17.2.       Fields

3.1.17.2.1.       slidebuttons

3.1.17.2.2.       displays

3.1.17.2.3.       displayindex

3.1.17.2.4.       panel

3.1.17.3.       Methods

3.1.17.3.1.       DPSBaseSlideView()

3.1.17.3.2.       DPSBaseSlideView(displays, displayindex)

3.1.17.3.3.       initSlideButtons()

3.1.17.3.4.       setSelection(slideindex)

3.1.17.3.5.       selectClickEventMethod()

3.1.18.       DPSBaseStatusBar Class

3.1.18.1.       Description

3.1.18.2.       Fields

3.1.18.2.1.       dpsstatusbar

3.1.18.2.2.       filenamepanel

3.1.18.3.       Methods

3.1.18.3.1.       DPSBaseStatusBar()

3.1.18.3.2.       initStatusBar()

3.1.19.       DPSBaseSwapDisplayDialog Class

3.1.19.1.       Description

3.1.19.2.       Fields

3.1.19.2.1.       displayalabel

3.1.19.2.2.       displayblabel

3.1.19.2.3.       displayacombobox

3.1.19.2.4.       displaybcombobox

3.1.19.2.5.       okbutton

3.1.19.2.6.       cancelbutton

3.1.19.2.7.       applybutton

3.1.19.2.8.       displays

3.1.19.2.9.       displayindex

3.1.19.3.       Methods

3.1.19.3.1.       DPSBaseSwapDisplayDialog()

3.1.19.3.2.       DPSBaseSwapDisplayDialog(displays,displayindex)

3.1.19.3.3.       initSwapDisplay()

3.1.19.3.4.       swapDisplay(displaya,displayb)

3.1.19.3.5.       okButtonClickEventMethod()

3.1.19.3.6.       cancelButtonClickEventMethod()

3.1.19.3.7.       applyButtonClickEventMethod()

3.1.20.       DPSBaseToolBar Class

3.1.20.1.       Description

3.1.20.2.       Fields

3.1.20.2.1.       displays

3.1.20.2.2.       displayindex

3.1.20.2.3.       slideindex

3.1.20.2.4.       bslidecontrol

3.1.20.2.5.       lockflag

3.1.20.2.6.       swapdisplays

3.1.20.2.7.       duplicate

3.1.20.2.8.       screendraw

3.1.20.2.9.       showIDbutton

3.1.20.2.10.       swapbutton

3.1.20.2.11.       duplicatebutton

3.1.20.2.12.       drawbutton

3.1.20.2.13.       lockbutton

3.1.20.2.14.       displaydropmenu

3.1.20.2.15.       displayidlabel

3.1.20.3.       Methods

3.1.20.3.1.       DPSBaseToolBar()

3.1.20.3.2.       DPSBaseToolBar(displays,displayindex)

3.1.20.3.3.       initToolBarButtons()

3.1.20.3.4.       setDisplays(displays)

3.1.20.3.5.       setBaseSlideControl(bSlideControl)

3.1.20.3.6.       selectDisplay(displayindex)

3.1.20.3.7.       lockDisplay()

3.1.20.3.8.       unlockDisplay()

3.1.20.3.9.       showIDbuttonClickEventMethod()

3.1.20.3.10.       swapbuttonClickEventMethod()

3.1.20.3.11.       duplicatebuttonClickEventMethod()

3.1.20.3.12.       drawbuttonClickEventMethod()

3.1.20.3.13.       lockbuttonClickEventMethod()

3.1.20.3.14.       displaydropmenuSelectEventMethod()

3.1.21.       DPSBaseWhiteBoard Class

3.1.21.1.       Description

3.1.21.2.       Fields

3.1.21.2.1.       bdisplay

3.1.21.2.2.       overlay

3.1.21.2.3.       color_r

3.1.21.2.4.       color_g

3.1.21.2.5.       color_b

3.1.21.3.       Methods

3.1.21.3.1.       DPSBaseWhiteBoard(display)

3.1.21.3.2.       drawPoint(x,y)

3.1.21.3.3.       changeColor(r,g,b)

3.1.21.3.4.       clearBoard()

3.2.       DPS/Satellite Components

3.2.1.       Description

3.2.2.       DPSSatellite Class

3.2.2.1.       Description

3.2.2.2.       Fields

3.2.2.2.1.       satellitelayout

3.2.2.2.2.       client

3.2.2.3.       Methods

3.2.2.3.1.       DPSSatellite()

3.2.3.       DPSSatelliteAboutDPSDialog Class

3.2.3.1.       Description

3.2.3.2.       Fields

3.2.3.2.1.       titlelabel

3.2.3.2.2.       copyrightlabel

3.2.3.2.3.       descriptionlabel

3.2.3.2.4.       dpslogo

3.2.3.2.5.       okbutton

3.2.3.3.       Methods

3.2.3.3.1.       DPSSatelliteAboutDPSDialog()

3.2.3.3.2.       initDialog()

3.2.3.3.3.       okButtonClickEventMethod()

3.2.4.       DPSSatelliteBrowseServerDialog Class

3.2.4.1.       Description

3.2.4.2.       Fields

3.2.4.2.1.       panel

3.2.4.2.2.       searchbutton

3.2.4.2.3.       okbutton

3.2.4.2.4.       cancelbutton

3.2.4.2.5.       serverlistbox

3.2.4.2.6.       client

3.2.4.3.       Methods

3.2.4.3.1.       DPSSatelliteBrowseServerDialog()

3.2.4.3.2.       initLayout()

3.2.4.3.3.       initServerListBox()

3.2.4.3.4.       okbuttonClickEventMethod()

3.2.4.3.5.       cancelbuttonClickEventMethod()

3.2.4.3.6.       searchbuttonClickEventMethod()

3.2.4.3.7.       passSelectedServer()

3.2.5.       DPSSatelliteClient Class

3.2.5.1.       Description

3.2.5.2.       Fields

3.2.5.2.1.       COMM_ServerName, Constant set to 1001

3.2.5.2.2.       COMM_DirectoryList, Constant set to 2001

3.2.5.2.3.       COMM_DirectoryChange, Constant set to 2002

3.2.5.2.4.       COMM_DirectoryUp, Constant set to 2003

3.2.5.2.5.       COMM_PresentationOpen, Constant set to 3001

3.2.5.2.6.       COMM_PresentationClose, Constant set to 3002

3.2.5.2.7.       COMM_SlideFirst, Constant set to 4001

3.2.5.2.8.       COMM_SlidePrevious, Constant set to 4002

3.2.5.2.9.       COMM_SlideNext, Constant set to 4003

3.2.5.2.10.       COMM_SlideLast, Constant set to 4004

3.2.5.2.11.       COMM_DisplaySwap, Constant set to 5001

3.2.5.2.12.       COMM_DisplayShowIDs, Constant set to 5002

3.2.5.2.13.       COMM_DisplayDuplicate, Constant set to 5003

3.2.5.2.14.       COMM_DrawEnable, Constant set to 6001

3.2.5.2.15.       COMM_DrawPoint, Constant set to 6002

3.2.5.2.16.       COMM_DrawColor, Constant set to 6003

3.2.5.2.17.       COMM_DrawClear, Constant set to 6004

3.2.5.2.18.       COMM_DrawDisable, Constant set to 6005

3.2.5.2.19.       COMM_LockToggle, Constant set to 7001

3.2.5.2.20.       COMM_Exit, Constant set to 8001

3.2.5.2.21.       DISP_Single, Constant set to 5101

3.2.5.2.22.       DISP_Mirrored, Constant set to 5102

3.2.5.2.23.       DISP_Chained, Constant set to 5103

3.2.5.2.24.       RESP_DirectoryName, Constant set to 2201

3.2.5.2.25.       RESP_DirectoryBracket, Constant set to 2202

3.2.5.2.26.       RESP_DirectoryListing, Constant set to 2203

3.2.5.2.27.       RESP_DrawCapture, Constant set to 6201

3.2.5.2.28.       RESP_PasswordResult, Constant set to 9201

3.2.5.2.29.       RESP_CommandResult, Constant set to 9202

3.2.5.2.30.       RESP_Disconnecting, Constant set to 9203

3.2.5.3.       Methods

3.2.5.3.1.       startConnection(server)

3.2.5.3.2.       stillConnected()

3.2.5.3.3.       sendPassword(password)

3.2.5.3.4.       sendCommand(command,argument1,argument2,argument3)

3.2.5.3.5.       waitForResponse()

3.2.5.3.6.       getResponse()

3.2.5.3.7.       sendBroadcast()

3.2.5.3.8.       endConnection()

3.2.6.       DPSSatelliteClientException Class

3.2.6.1.       Description

3.2.6.2.       Fields

3.2.6.3.       Methods

3.2.6.3.1.       DPSSatelliteClientException()

3.2.6.3.2.       DPSSatelliteClientException(message)

3.2.7.       DPSSatelliteConnectDialog Class

3.2.7.1.       Description

3.2.7.2.       Fields

3.2.7.2.1.       panel

3.2.7.2.2.       ipcombobox

3.2.7.2.3.       passwordfield

3.2.7.2.4.       connectbutton

3.2.7.2.5.       browsebutton

3.2.7.2.6.       browseserverdialog

3.2.7.2.7.       client

3.2.7.3.       Methods

3.2.7.3.1.       DPSSatelliteConnectDialog()

3.2.7.3.2.       initLayout()

3.2.7.3.3.       connectbuttonClickEventMethod()

3.2.7.3.4.       ipErrorDialog()

3.2.7.3.5.       passwordErrorDialog()

3.2.7.3.6.       connectSuccessfulDialog()

3.2.7.3.7.       browsebuttonClickEventMethod()

3.2.7.3.8.       ipcomboboxLeaveEventMethod()

3.2.7.3.9.       validateIP()

3.2.7.3.10.       connectbuttonClickEventMethod()

3.2.8.       DPSSatelliteDisplayOptionsDialog Class

3.2.8.1.       Description

3.2.8.2.       Fields

3.2.8.2.1.       SINGLE_DISPLAY, Constant set to 0.

3.2.8.2.2.       MIRRORED_DISPLAY, Constant set to 1.

3.2.8.2.3.       CHAINED_DISPLAY, Constant set to 2.

3.2.8.2.4.       rdsingle

3.2.8.2.5.       rdmirrored

3.2.8.2.6.       rdchained

3.2.8.2.7.       displayslist

3.2.8.2.8.       displays

3.2.8.2.9.       panel

3.2.8.2.10.       okbutton

3.2.8.2.11.       cancelbutton

3.2.8.2.12.       type

3.2.8.2.13.       client

3.2.8.3.       Methods

3.2.8.3.1.       DPSSatelliteDisplayOptionsDialog()

3.2.8.3.2.       sendGetDisplays()

3.2.8.3.3.       initLayout()

3.2.8.3.4.       sendDisplayType()

3.2.8.3.5.       sendSelectedDisplays()

3.2.8.3.6.       okbuttonClickEventMethod()

3.2.8.3.7.       cancelbuttonClickEventMethod()

3.2.8.3.8.       rdsingleSelectEventMethod()

3.2.8.3.9.       rdmirroredSelectEventMethod()

3.2.8.3.10.       rdchainedSelectEventMethod()

3.2.9.       DPSSatelliteDuplicateSlideDialog Class

3.2.9.1.       Description

3.2.9.2.       Fields

3.2.9.2.1.       functionlabel

3.2.9.2.2.       displaylabel

3.2.9.2.3.       displaycombobox

3.2.9.2.4.       okbutton

3.2.9.2.5.       cancelbutton

3.2.9.2.6.       applybutton

3.2.9.2.7.       displays

3.2.9.2.8.       slideindex

3.2.9.2.9.       client

3.2.9.3.       Methods

3.2.9.3.1.       DPSSatelliteDuplicateSlideDialog()

3.2.9.3.2.       DPSSatelliteDuplicateSlideDialog(displays,slideindex)

3.2.9.3.3.       initDuplicateslide()

3.2.9.3.4.       okbuttonClickEventMethod()

3.2.9.3.5.       cancelbuttonClickEventMethod()

3.2.9.3.6.       applybuttonClickEventMethod()

3.2.9.3.7.       sendDuplicateSlide(slideindex)

3.2.10.       DPSSatelliteHelp Class

3.2.10.1.       Description

3.2.10.2.       Fields

3.2.10.2.1.       HH_DISPLAY_TOPIC

3.2.10.3.       Methods

3.2.10.3.1.       DPSSatelliteHelp()

3.2.10.3.2.       satelliteHelp()

3.2.11.       DPSSatelliteLayout Class

3.2.11.1.       Description

3.2.11.2.       Fields

3.2.11.2.1.       smenubar

3.2.11.2.2.       stoolbar

3.2.11.2.3.       sslidecontrol

3.2.11.2.4.       displays

3.2.11.2.5.       whiteboard

3.2.11.2.6.       client

3.2.11.3.       Methods

3.2.11.3.1.       DPSSatelliteLayout()

3.2.11.3.2.       DPSSatelliteLayout(displays)

3.2.11.3.3.       initLayout()

3.2.12.       DPSSatelliteMenuBar Class

3.2.12.1.       Description

3.2.12.2.       Fields

3.2.12.2.1.       mainmenu

3.2.12.2.2.       mifile

3.2.12.2.3.       miopen

3.2.12.2.4.       miclose

3.2.12.2.5.       miexitsat

3.2.12.2.6.       miexitall

3.2.12.2.7.       mitools

3.2.12.2.8.       micurrentdisplay

3.2.12.2.9.       mishowdisplayid

3.2.12.2.10.       miswapdisplay

3.2.12.2.11.       midraw

3.2.12.2.12.       miduplicate

3.2.12.2.13.       milock

3.2.12.2.14.       mihelp

3.2.12.2.15.       mihelpcontents

3.2.12.2.16.       miaboutdps

3.2.12.2.17.       openfiledialog

3.2.12.2.18.       aboutdpsdialog

3.2.12.2.19.       displayoptionsdialog

3.2.12.2.20.       duplicateslidedialog

3.2.12.2.21.       swapdisplaysdialog

3.2.12.2.22.       whiteboard

3.2.12.2.23.       client

3.2.12.3.       Methods

3.2.12.3.1.       DPSSatelliteMenuBar()

3.2.12.3.2.       initMenuItem()

3.2.12.3.3.       sendSetDisplay(displayindex)

3.2.12.3.4.       sendOpenFile()

3.2.12.3.5.        sendExtractSlides()

3.2.12.3.6.       sendCloseFile()

3.2.12.3.7.       sendExitDPSSatellite()

3.2.12.3.8.       sendExitAll()

3.2.12.3.9.       sendLockDisplay()

3.2.12.3.10.       sendShowDisplays()

3.2.12.3.11.       swapDisplays()

3.2.12.3.12.       duplicateSlide()

3.2.12.3.13.       draw()

3.2.12.3.14.       helpContents()

3.2.12.3.15.       aboutDPS()

3.2.12.3.16.       miopenClickEventMethod()

3.2.12.3.17.       micloseClickEventMethod()

3.2.12.3.18.       miexitsatClickEventMethod()

3.2.12.3.19.       miexitallClickEventMethod()

3.2.12.3.20.       mishowdisplayClickEventMethod()

3.2.12.3.21.       miswapdisplayClickEventMethod()

3.2.12.3.22.       milockClickEventMethod()

3.2.12.3.23.       miduplicateClickEventMethod()

3.2.12.3.24.       midrawClickEventMethod()

3.2.12.3.25.       mihelpcontentsClickEventMethod()

3.2.12.3.26.       miaboutClickEventMethod()

3.2.13.       DPSSatelliteOpenFileDialog Class

3.2.13.1.       Description

3.2.13.2.       Fields

3.2.13.2.1.       panel

3.2.13.2.2.       client

3.2.13.2.3.       directorylist

3.2.13.2.4.       locationbox

3.2.13.2.5.       upbutton

3.2.13.2.6.       openbutton

3.2.13.2.7.       cancelbutton

3.2.13.2.8.       directories

3.2.13.2.9.       filepath

3.2.13.3.       Methods

3.2.13.3.1.       DPSSatelliteOpenFileDialog()

3.2.13.3.2.       initLayout()

3.2.13.3.3.       sendGetDirectories()

3.2.13.3.4.       sendSelectedFilePath()

3.2.13.3.5.       openButtonClickEventMethod()

3.2.13.3.6.       cancelbuttonClickEventMethod()

3.2.13.3.7.       upbuttonClickEventMethod()

3.2.14.       DPSSatelliteSlideControl Class

3.2.14.1.       Description

3.2.14.2.       Fields

3.2.14.2.1.       SINGLE_DISPLAY

3.2.14.2.2.       MIRROR_DISPLAY

3.2.14.2.3.       CHAINED_DISPLAY

3.2.14.2.4.       firstbutton

3.2.14.2.5.       previousbutton

3.2.14.2.6.       nextbutton

3.2.14.2.7.       lastbutton

3.2.14.2.8.       displays

3.2.14.2.9.       client

3.2.14.3.       Methods

3.2.14.3.1.       DPSSatelliteSlideControl()

3.2.14.3.2.       DPSSatelliteSlideControl(displays)

3.2.14.3.3.       initAllButtons()

3.2.14.3.4.       sendFirstSlide()

3.2.14.3.5.       sendPreviousSlide()

3.2.14.3.6.       sendNextSlide()

3.2.14.3.7.       sendLastSlide()

3.2.14.3.8.       firstButtonClickEventMethod()

3.2.14.3.9.       previousButtonClickEventMethod()

3.2.14.3.10.       nextButtonClickEventMethod()

3.2.14.3.11.       lastButtonClickEventMethod()

3.2.15.       DPSSatelliteSwapDisplayDialog Class

3.2.15.1.       Description

3.2.15.2.       Fields

3.2.15.2.1.       actionlabel

3.2.15.2.2.       displayalabel

3.2.15.2.3.       displayblabel

3.2.15.2.4.       displayacombobox

3.2.15.2.5.       displaybcombobox

3.2.15.2.6.       okbutton

3.2.15.2.7.       cancelbutton

3.2.15.2.8.       applybutton

3.2.15.2.9.       displays

3.2.15.2.10.       displayindex

3.2.15.2.11.       client

3.2.15.3.       Methods

3.2.15.3.1.       DPSSatelliteSwapDisplayDialog()

3.2.15.3.2.       DPSSatelliteSwapDisplayDialog(displays,displayindex)

3.2.15.3.3.       initSwapDisplay()

3.2.15.3.4.       okbuttonClickEventMethod()

3.2.15.3.5.       cancelbuttonClickEventMethod()

3.2.15.3.6.       applybuttonClickEventMethod

3.2.16.       DPSSatelliteToolBar Class

3.2.16.1.       Description

3.2.16.2.       Fields

3.2.16.2.1.       displays

3.2.16.2.2.       displayindex

3.2.16.2.3.       slideindex

3.2.16.2.4.       bslidecontrol

3.2.16.2.5.       lockflag

3.2.16.2.6.       swap

3.2.16.2.7.       duplicate

3.2.16.2.8.       whiteboard

3.2.16.2.9.       clearbutton

3.2.16.2.10.       showIDbutton

3.2.16.2.11.       swapbutton

3.2.16.2.12.       duplicatebutton

3.2.16.2.13.       drawbutton

3.2.16.2.14.       lockbutton

3.2.16.2.15.       displaydropmenu

3.2.16.2.16.       displayIDlabel

3.2.16.2.17.       client

3.2.16.3.       Methods

3.2.16.3.1.       DPSSatelliteToolBar()

3.2.16.3.2.       DPSSatelliteToolBar(displays,displayindex)

3.2.16.3.3.       initToolBarButtons()

3.2.16.3.4.       setDisplays(displays)

3.2.16.3.5.       setBaseSlideControl(bSlideControl)

3.2.16.3.6.       sendSelectDisplay(displayID)

3.2.16.3.7.       sendLockDisplay()

3.2.16.3.8.       sendUnlockDisplay()

3.2.16.3.9.       showIDbuttonClickEventMethod()

3.2.16.3.10.       swapbuttonClickEventMethod()

3.2.16.3.11.       duplicatebuttonClickEventMethod()

3.2.16.3.12.       drawbuttonClickEventMethod()

3.2.16.3.13.       lockbuttonClickEventMethod()

3.2.16.3.14.       displaydropmenuSelectEventMethod()

3.2.16.3.15.       clearbuttonClickEventMethod()

3.2.17.       DPSSatelliteWhiteBoard Class

3.2.17.1.       Description

3.2.17.2.       Fields

3.2.17.2.1.       slidepicture

3.2.17.2.2.       client

3.2.17.3.       Methods

3.2.17.3.1.       DPSSatelliteWhiteboard()

3.2.17.3.2.       sendEnableDrawing()

3.2.17.3.3.       sendDisableDrawing()

3.2.17.3.4.       sendDrawPoint(x,y)

3.2.17.3.5.       sendChangeColor(r,g,b)

3.2.17.3.6.       sendClearBoard()

3.2.17.3.7.       sendGetSlidePicture()

3.2.17.3.8.       setSlidePicture(slidepicture)

4.       User Interface Design

4.1.       DPS/Base

4.1.1.       Menu Bar

4.1.2.       Toolbar

4.1.3.       Slide View

4.1.4.       Slide Control

4.1.5.       Status Bar

4.2.       DPS/Satellite

4.2.1.       Menu Bar

4.2.2.       Action Panel

4.2.3.       Draw View

4.2.4.       Slide Control

5.       Glossary

5.1.       Advance

5.2.       Blank

5.3.       Chained Display

5.4.       Combo Box

5.5.       Cursor

5.6.       Dialog

5.7.       Display ID

5.8.       Displays

5.9.       DPS Server

5.10.       DPS/Base

5.11.       DPS/Satellite

5.12.       File path

5.13.       IP Address

5.14.       Locking

5.15.       Menu

5.16.       Microsoft PowerPoint

5.17.       Mirrored Display

5.18.       Personal Data Assistant (PDA)

5.19.       Projector

5.20.       Screen Drawing

5.21.       Single Display

5.22.       Slide Based

5.23.       Swap

5.24.       Toolbar

5.25.       Whiteboard

1. Introduction

1.1. Description of DPS

DPS, the Dynamic Presentation System, is intended to enhance a presentation to enable the use of multiple screens. It aims to make the use of multiple displays in presentations appreciably more simplistic, efficient, and intuitive for those without advanced technology skills. DPS will give users the ability to use Personal Data Assistant (PDA) in order to conduct the presentation with an easy-to-understand application. The application will allow the user to not only advance the slide presentation on one display, but may be used to display a chain of slides across all available screens, or mirror different presentations on different screens simultaneously.

1.2. Purpose

The purpose of this document is to provide an overview and explanation of the architecture of the Dynamic Presentation System. It illustrates structural and functional design issues; describes system dependencies, collaboration and composition relations, and inheritance hierarchy.

This document is intended to be used by developers that will be implementing the system by providing thorough low-level and high-level descriptions of the system.

1.3. Document Scope

This document provides a complete design of the Dynamic Presentation System, and specifies how the functional and non-functional requirements set will be satisfied. The user-interface prototypes are included in the document. Also, the software architecture, classes, and functions are described.

Note: The document does not describe a completely working system. Therefore, the document might contain certain assumptions which might need to be changed in the implementation phase. Also, the class names and field names may be renamed in a better naming convention in the implementation phase.

1.4. Design Goals and Objectives

The goal of this design document is to build a projection system that will give the user the ability to display presentation slides on multiple projectors. These presentation slides can be a standard single display, mirrored display, or chained display. Also, the user will have the flexibility of controlling the presentation via a PDA device. Target design shall possess the following characteristics:
  • Extensibility - ease of adding new features and improving rendering of presentation slides
  • Performance - acceptable user interface response time.
  • Ease of use - Ease of installation and intuitive user interface that is user friendly

1.5. Overview of the Remainder of the Document

The rest of this documents presents the overall Dynamic Presentation System architecture, detailed component designs, diagrams, and glossary.

2. Client-Server Design

DPS/Satellite, the remote-control application which may be used on a PDA, is able to connect to and control the functionality of DPS/Base, the "core" software, through the use of a custom client-server protocol. This protocol is a TCP state protocol. The state is not accessible to the client which is DPS/Satellite, but the server which is DPS/Base. There are a total of two states: Login and Command. The Login state is the initial state of the protocol during which the server accepts a connection on TCP port 29471 and processes login authentication. If a client is successfully authenticated, the server will move to the Command state, during which commands are accepted from the client. If the client disconnects or requests a connection close from the server, then the server will revert back to the Login state.

When the DPS/Satellite program is executed, the user will be prompted with a screen asking for the "Server IP" and "Password" screen. The user must enter the correct server ip and password in order to successfully establish a connection with the DPS/Base server protocol.

The messages that are being sent back and forth between the server and client protocol is a 4-digit integer. The number is split into the following parts:

  • 1st digit: Category of message.
  • 2nd digit: Distinguishes whether the message is a COMMAND, DISPLAY, or RESPONSE.
  • Last 2 digits: Message type.

This would be the best way to implement the client-server protocols. Our plan is to declare integer constants inside the DPSBaseServer and DPSSatelliteClient classes. These integers will be identical in both classes which makes it easier for the server and client to communicate to one another.

3. Architectural and Component-level Design

3.1. DPS/Base Components

3.1.1. Description

DPS/Base is the portion of the DPS system which is used on the desktop computer. This software is used to provide all of the functionality to conduct presentations, including configuration of displays and their role in presentations, interaction with presentations (advancing slides, etc.), and other important tasks. In addition, DPS/Base acts as a network server which can accept direction from a remote device. This section of the specification describes the design of this portion.

3.1.2. DPSBase Class

3.1.2.1. Description
This class is the starting point of the DPS/Base software. It is responsible for instantiating the other classes which provide the main functionality of the system. The .net framework will be utilized to detect the display properties. The display properties will be used in this class to set the display for the system. DPSBase Flow Chart
3.1.2.2. Fields
3.1.2.2.1. displays
A list of all the displays.
3.1.2.2.2. width
A width value of the display with the lowest resolution.
3.1.2.2.3. height
A height value of the display with the lowest resolution.
3.1.2.2.4. blayout
The layout of the DPS interface.
3.1.2.3. Methods
3.1.2.3.1. DPSBase()
Input: None.
Processing: Call initDisplays() method. Set width and height to 0. Create object of DPSBaseLayout class.
Output: None.
3.1.2.3.2. initDisplays()
Input: None.
Processing: Call createDisplay() method. Call setDisplayWidth() method. Call setDisplayHeight() method. Call setLowestResolution() method. Call blankDisplays() method. Send list of displays to DPSBaseLayout object.
Output: None.
3.1.2.3.3. createDisplays()
Input: None.
Processing: Detect the number of displays. Create objects of Display class based on number of displays detected.
Output: None.
3.1.2.3.4. setDisplaysWidth()
Input: None.
Processing: Detect the width of each display. Set the Display objects width to its proper width.
Output: None.
3.1.2.3.5. setDisplaysHeight()
Input: None.
Processing: Detect the height of each display. Set the Display objects height to its proper height.
Output: None.
3.1.2.3.6. setBlankDisplays()
Input: None.
Processing: Loop through displays list setting all display to a solid black color.
Output: None.
3.1.2.3.7. getLowestWidth()
Input: None.
Processing: Loop through display list to determine which display has the lowest width resolution.
Output: A number value of the lowest width resolution.
3.1.2.3.8. getLowestHeight()
Input: None.
Processing: Loop through display list to determine which display has the lowest height resolution.
Output: A number value of the lowest height resolution.
3.1.2.3.9. setLowestResolution()
Input: None.
Processing: Set width to return value of getLowestWidth() method. Set height to return value of getLowestHeight() method. Set the display's resolution to the new width and height values.
Output: None.

3.1.3. DPSBaseAboutDPSDialog Class

3.1.3.1. Description
This class will consist of a dialog box that will show the user information bout DPS.
3.1.3.2. Fields
3.1.3.2.1. titlelabel
Label of the project name.
3.1.3.2.2. copyrightlabel
Label of the project copyright date.
3.1.3.2.3. descriptionlabel
Label of a brief description of DPS.
3.1.3.2.4. dpslogo
Picture of the DPS logo.
3.1.3.2.5. okbutton
A button that will accept the user input.
3.1.3.3. Methods
3.1.3.3.1. DPSBaseAboutDPSDialog()
Input: None.
Processing: Initiates the dialog window that will display the DPS information.
Output: None.
3.1.3.3.2. initDialog()
Input: None.
Processing: Sets up the dialog box with the text and buttons to display information about DPS.
Output: None.
3.1.3.3.3. okbuttonClickEventMethod()
Input: System Dependent.
Processing: Close the current dialog window.
Output: None.

3.1.4. DPSBaseDisplay Class

3.1.4.1. Description
Each display connected to the computer will have a DPSBaseDisplay object associated with it. This class keeps track of the ID of the display, the slide if one is being shown on that display, and chain information if the display is in one.
3.1.4.2. Fields
3.1.4.2.1. id
A number ID of the display.
3.1.4.2.2. slideindex
A value of the slide's index in the list of slides.
3.1.4.2.3. slides
A list of slides.
3.1.4.2.4. lockflag
A boolean flag to determine the locked state.
3.1.4.2.5. chainedID
A number ID for a chained group.
3.1.4.2.6. type
A value that specifies what type of display it is.
3.1.4.2.7. filename
Name of the file being used in DPS.
3.1.4.2.8. width
Value of the display's resolution width.
3.1.4.2.9. height
Value of the display's resolution height.
3.1.4.3. Methods
3.1.4.3.1. DPSBaseDisplay()
Input: None.
Processing: Set id to 0. Set slideindex to 0. Set list of slides to a list object. Set lockflag to false. Set type to 0.
Output: None.
3.1.4.3.2. DPSBaseDisplay(id)
Input: A number ID.
Processing: Set id to number input. Set slideindex to 0. Set list of slides to a list object. Set lockflag to false. Set type to 0.
Output: None.
3.1.4.3.3. setFileName(filename)
Input: string of the File name.
Processing: Set filename to the input parameter.
Output: None.
3.1.4.3.4. getFileName()
Input: None.
Processing: Get the filename. Return the filename.
Output: File name of the file.
3.1.4.3.5. getSlides()
Input: None.
Processing: Get the list of slides. Return the list of slides.
Output: A list of slides.
3.1.4.3.6. setDisplayID(id)
Input: A number ID.
Processing: Set display ID to the input parameter.
Output: None.
3.1.4.3.7. getDisplayID()
Input: None.
Processing: Get id of display. Return id.
Output: A number ID of the display.
3.1.4.3.8. setSlideIndex(index)
Input: A number index.
Processing: Set the slide index to the input parameter.
Output: None.
3.1.4.3.9. getSlideIndex()
Input: None.
Processing: Get slide index. Return slide index.
Output: A number index of the slide.
3.1.4.3.10. setDisplayType(type)
Input: A number representing a display type.
Processing: Set display type to input parameter.
Output: None.
3.1.4.3.11. getDisplayType()
Input: None.
Processing: Get display type. Return display type.
Output: A number representing the display type.
3.1.4.3.12. setWidth(width)
Input: The width value of the display.
Processing: Set width to the input parameter.
Output: None.
3.1.4.3.13. getWidth()
Input: None.
Processing: Get width of the display. Return width.
Output: The width value of the display.
3.1.4.3.14. setHeight(height)
Input: The height value of the display.
Processing: Set height to the input parameter.
Output: None.
3.1.4.3.15. getHeight()
Input: None.
Processing: Get height of the display. Return height.
Output: The height value of the display.
3.1.4.3.16. setCurrentSlide(slide)
Input: The object of the current slide.
Processing: Set current slide object to input parameter.
Output: None.
3.1.4.3.17. getCurrentSlide()
Input: None.
Processing: Get current slide object. Return slide object.
Output: An object of the current slide.
3.1.4.3.18. setSlideAt(slideindex, slide)
Input: The index number of the slide, the object of the slide.
Processing: Set slide object of the list at input parameter index to the slide object input parameter.
Output: None.
3.1.4.3.19. getSlideAt(slideindex)
Input: The index number of the slide.
Processing: Get slide object from the list using input parameter as the index. Return slide object.
Output: An object of the slide.
3.1.4.3.20. addSlide(slide)
Input: The object of the slide.
Processing: Add slide object to the slide list.
Output: None.
3.1.4.3.21. firstSlide()
Input: None.
Processing: Set slide index to 0. Call refresh() method.
Output: None.
3.1.4.3.22. previousSlide()
Input: None.
Processing: Decrement slide index by 1. Call refresh() method.
Output: None.
3.1.4.3.23. nextSlide()
Input: None.
Processing: Increment slide index by 1. Call refresh() method.
Output: None.
3.1.4.3.24. lastSlide()
Input: None.
Processing: Set slide index to size of slide list minus 1. Call refresh() method.
Output: None.
3.1.4.3.25. refresh()
Input: None.
Processing: Re-render the slide at the slide index for this Display object.
Output: None.
3.1.4.3.26. setDisplayLocked(lockflag)
Input: Boolean value.
Processing: Set lockflag value to input parameter boolean value.
Output: None.
3.1.4.3.27. getDisplayLocked()
Input: None.
Processing: Get lockflag boolean value. Return lockflag boolean value.
Output: Boolean value of lockflag.
3.1.4.3.28. showID()
Input: None.
Processing: Render the display ID on the displays.
Output: None.
3.1.4.3.29. duplicateSlide(todisplay)
Input: An object of display.
Processing: Create object of slide class. Set new slide object to current slide object. Prompt user to confirm action. Call clear() method. Set new slide object to toDisplay's list of slide as first index.
Output: None.
3.1.4.3.30. clear()
Input: None.
Processing: Clear items in slide list.
Output: None.

3.1.5. DPSBaseDisplayOptionsDialog Class

3.1.5.1. Description
The Display Options interface allows the user to select what the presentation type will be. The user will have the option to select between 3 types: Single, Mirrored, and Chained. Based on the type selection, the section of the displays in the Display ID list will be determined. If the display type is "Single Display", the user will only be allowed to select 1 display from the list. However, if the display type is "Mirrored Display" or "Chained Display", the user will have to select more than one display from the list.
3.1.5.2. Fields
3.1.5.2.1. SINGLE_DISPLAY, Constant set to 0.
Represent single display type.
3.1.5.2.2. MIRRORED_DISPLAY, Constant set to 1.
Represent mirrored display type.
3.1.5.2.3. CHAINED_DISPLAY, Constant set to 2.
Represent chained display type.
3.1.5.2.4. displays
A list of displays.
3.1.5.2.5. slides
A list of slides.
3.1.5.2.6. type
A number representing a display type.
3.1.5.2.7. rdsingle
A radio button representing single display type.
3.1.5.2.8. rdmirrored
A radio button representing mirrored display type.
3.1.5.2.9. rdchained
A radio button representing chained display type.
3.1.5.2.10. displaylist
A list of displays selections.
3.1.5.2.11. okbutton
A button to accept user's input.
3.1.5.2.12. cancelbutton
A button to cancel user's input.
3.1.5.2.13. grouptype
A group box for the display types.
3.1.5.2.14. groupdisplays
A group box for the displays.
3.1.5.3. Methods
3.1.5.3.1. DPSBaseDisplayOptionsDialog()
Input: None.
Processing: Set displays list to a new list object. Set chained id to 0. Call initDialog() method.
Output: None.
3.1.5.3.2. DPSBaseDisplayOptionsDialog(displays, chainedid)
Input: A list of displays, a number id.
Processing: Set displays list to the input parameter list. Set chained id to the input parameter chainedid. Call initDialog().
Output: None.
3.1.5.3.3. initDialog()
Input: None.
Processing: Call extractSlides().
Output: None.
3.1.5.3.4. setDisplayType(type)
Input: A number representing a display type.
Processing: Set type to input parameter type.
Output: None.
3.1.5.3.5. selectDisplays(displays)
Input: A list of displays.
Processing: Loop through the display list setting each display with its type. Set chained id if chained type. Copies slides if mirrored type.
Output: None.
3.1.5.3.6. selectDisplay(display)
Input: A object of class Display.
Processing: Set input parameter display type to selected type. Set slide of input parameter display.
Output: None.
3.1.5.3.7. extractSlides()
Input: None.
Processing: Extract each slide from the PowerPoint file. Create slide objects of each slide extracted.
Output: None.
3.1.5.3.8. rdsingleSelectEventMethod()
Input: System Dependent.
Processing: Set displaylist to be enable only SINGLE selection. Clear selection on displaylist.
Output: None.
3.1.5.3.9. rdmirroredSelectEventMethod()
Input: System Dependent.
Processing: Set displaylist to be enable MULTIPLE selections. Clear selection on displaylist.
Output: None.
3.1.5.3.10. rdchainedSelectEventMethod()
Input: System Dependent.
Processing: Set displaylist to be enable MULTIPLE selections. Clear selection on displaylist.
Output: None.
3.1.5.3.11. okbuttonClickEventMethod()
Input: System Dependent.
Processing: Call setDisplayType() method. Call setDisplay() if type selected is single. Call setDisplays() if type selected is mirrored or chained.
Output: None.
3.1.5.3.12. cancelbuttonClickEventMethod()
Input: System Dependent.
Processing: Cancel any user input. Hide dialog window.
Output: None.

3.1.6. DPSBaseDrawingLayout Class

3.1.6.1. Description
This class will be a subclass of a frame class provided by the development system. In essence, it will be the window within which the screen drawing interface will be created.
3.1.6.2. Fields
3.1.6.2.1. bwhiteboard
Whiteboard object which provides the drawing "pad" of the screen drawing interface.
3.1.6.2.2. bdisplay
Reference to the display being drawn over.
3.1.6.2.3. drawpanel
Panel of dialog where interface elements are displayed.
3.1.6.2.4. colorselect
Color selector interface for drawing color.
3.1.6.2.5. clearbutton
Clear button.
3.1.6.2.6. closebutton
Close button.
3.1.6.3. Methods
3.1.6.3.1. DPSBaseDrawingLayout(display)
Input: Copy of the display being drawn to, by reference.
Processing: Sets up the Screen Drawing dialog. The fields bslide and bdisplay will be set to the input variables. This method will then call createWhiteboard() to get a new DPSBaseWhiteboard object, sets up the panel of the window (drawpanel) properly to display the interface elements properly, then adds the whiteboard, color selector, a clear button, and a close button (closebutton) to that panel.
Output: None.
3.1.6.3.2. createWhiteboard()
Input: None.
Processing: This creates a whiteboard object of type DPSBaseWhiteboard, which is passed a reference to the display.
Output: An object of type DPSBaseWhiteboard.
3.1.6.3.3. close()
Input: None.
Processing: Destroys the whiteboard and closes the screen drawing dialog.
Output: None.

3.1.7. DPSBaseDuplicateSlideDialog Class

3.1.7.1. Description
Allows the user to duplicate a display.
3.1.7.2. Fields
3.1.7.2.1. displaylabel
A label to designate target display.
3.1.7.2.2. displaycombobox
A drop down menu that allows the user to select an available display.
3.1.7.2.3. okbutton
A button that display the swap method and close the dialog.
3.1.7.2.4. cancelbutton
A button that will close the dialog box.
3.1.7.2.5. applybutton
A button that will swap the two displays but keep the dialog window open.
3.1.7.2.6. displays
A list of the current displays available for DPS.
3.1.7.2.7. slideindex
A numerical value for the current display.
3.1.7.3. Methods
3.1.7.3.1. DPSBaseDuplicateSlideDialog()
Input: None.
Processing: Creates a new list and calls the initDuplicateDisplay() method.
Output: None.
3.1.7.3.2. DPSBaseDuplicateSlideDialog(displays,slideindex)
Input: List of the displays that are available.
Processing: Makes a copy of the displays that was passed in and calls the initDialog() method.
Output: None.
3.1.7.3.3.  initDialog()
Input: None.
Processing: Initializes all of the GUI components.
Output: None.
3.1.7.3.4. okbuttonClickEventMethod()
Input: System Dependent.
Processing: Calls duplicateSlide() method and closes current window.
Output: None.
3.1.7.3.5. cancelbuttonClickEventMethod()
Input: System Dependent.
Processing: Closes the current dialog window.
Output: None.
3.1.7.3.6. applybuttonClickEventMethod()
Input: System Dependent.
Processing: Calls duplicateSlide() method and keep the current window open.
Output: None.
3.1.7.3.7. duplicateSlide(slideindex)
Input: Index of the display to be duplicated.
Processing: Duplicates the display that is passed into the method on the current display.
Output: None.

3.1.8. DPSBaseHelp Class

3.1.8.1. Description
The Help Contents interface gives the user the ability to learn how to use and troubleshoot the program. The help contents will be implemented using HTMLhelp API. An index section is provided for the user to input keywords that will be matched to the material in the Help for easier usability.
3.1.8.2. Fields
3.1.8.2.1. HH_DISPLAY_TOPIC
Displays a help topic by passing the name of the HTML file.
3.1.8.3. Methods
3.1.8.3.1. DPSBaseHelp()
Input: None.
Processing: Initializes help topics. Call baseHelp() method.
Output: None.
3.1.8.3.2. baseHelp()
Input: None.
Processing: Will call the HtmlHelp API, with four arguments.
Output: None.

3.1.9. DPSBaseLayout Class

3.1.9.1. Description
The main graphical user interface is provided in this class. It is responsible for instantiating and adding each interface element such as menu bars, toolbars, and others.
3.1.9.2. Fields
3.1.9.2.1. bmenubar
Menu bar that will gives the user basic controls over DPS
3.1.9.2.2. btoolbar
Tool bar that gives the user easy accessibility to most use functions in DPS.
3.1.9.2.3. bslideview
Panel inside the DPS GUI that will give the user an overview of all the slides.
3.1.9.2.4. bslidecontrol
Gives the user functionality move from slide to slide or jump to the first or last slide.
3.1.9.2.5. bstatusbar
Shows the user which slide they are currently presenting
3.1.9.2.6. displays
A list of all the available displays
3.1.9.2.7. bserver
An instance of the DBSBaseServer.
3.1.9.3. Methods
3.1.9.3.1. DPSBaseLayout()
Input: None.
Processing: Creates the statusbar, menubar, toolbar, slideview, slidecontrol. Calls the initlayout method.
Output: None.
3.1.9.3.2. DPSBaseLayout(displays)
Input: List of the displays that are available
Processing: Creates the statusbar, menubar, toolbar, slideview, slidecontrol and assigns the displays in the class from the input. Calls the initlayout method.
Output: None.
3.1.9.3.3. setDisplays(displays)
Input: List of the displays that are available
Processing: Assigns displays for the toolbar, menubar, statusbar, slideview and for the array in the current class.
Output: None.
3.1.9.3.4. initLayout()
Input: None.
Processing: Initializes all of the GUI's for the class
Output: None.

3.1.10. DPSBaseMenuBar Class

3.1.10.1. Description
One of the user interface elements of DPS/Base is the menu bar, which the user uses and reacts to.
3.1.10.2. Fields
3.1.10.2.1. displays
Contain a list of displays.
3.1.10.2.2. displayindex
The current working numerical display ID.
3.1.10.2.3. chainedcounter
Contain the next assigned numerical group chained display ID.
3.1.10.2.4. password
Contain the current password string.
3.1.10.2.5. openfiledialog
The open file dialog window.
3.1.10.2.6. aboutdpsdialog
The about DPS dialog window.
3.1.10.2.7. displayoptionsdialog
The display options dialog window.
3.1.10.2.8. duplicateslidedialog
The duplicate slide dialog window.
3.1.10.2.9. passworddialog
The set new password dialog window.
3.1.10.2.10. swapdisplaysdialog
The swap displays dialog window.
3.1.10.2.11. drawdialog
The drawing dialog window.
3.1.10.2.12. mainmenu
The menubar itself.
3.1.10.2.13. mifile
The File menu item listed on the menubar.
3.1.10.2.14. miopen
The Open menu item listed under the File menu item.
3.1.10.2.15. mirecentfiles
The Recent Files menu item listed under the File menu item.
3.1.10.2.16. miclose
The Close menu item listed under the File menu item.
3.1.10.2.17. miexit
The Exit menu item listed under the File menu item.
3.1.10.2.18. mitools
The Tools menu item listed on the menubar.
3.1.10.2.19. micurrentdisplay
The Current Display menu item listed under the Tools menu item.
3.1.10.2.20. milockdisplay
The Lock Display menu item listed under the Current Display menu item.
3.1.10.2.21. miswapdisplays
The Swap Displays menu item listed under the Current Display menu item.
3.1.10.2.22. midraw
The Draw menu item listed under Current Display menu item.
3.1.10.2.23. miduplicateslide
The Duplicate Slide menu item listed under the Tools menu item.
3.1.10.2.24. misetnewpassword
The Set New Password menu item listed under the Tools menu item.
3.1.10.2.25. mishowdisplayids
The Show Display IDs menu item listed under the Tools menu item.
3.1.10.2.26. mihelp
The Help menu item listed on the menubar.
3.1.10.2.27. mihelpcontents
The Help Contents menu item listed under the Help menu item.
3.1.10.2.28. miaboutdps
The About DPS menu item listed under the Help menu item.
3.1.10.3. Methods
3.1.10.3.1. DPSBaseMenuBar()
Input: None.
Processing: Create a new list of displays. Set displayindex equal to 1 and call the initMenuItem() method.
Output: None.
3.1.10.3.2. DPSBaseMenuBar(displays, displayindex)
Input: List of displays and the current displayindex.
Processing: Set the current list of displays to the given displays input. Set the displayindex equal to the given displayindex input. Then call the initMenuItem() method.
Output: None.
3.1.10.3.3. initMenuItem()
Input: None.
Processing: Create the menubar and all its corresponding menu items.
Output: None.
3.1.10.3.4. setDisplayIndex(displayindex)
Input: The current working display index.
Processing: Set the displayindex equal to given the display index input.
Output: None.
3.1.10.3.5. openFile()
Input: None.
Processing: Create an open file modal dialog window to allow the user to select a PowerPoint file. Then create the display option dialog window to select which display type and displays will be use for the PowerPoint file. Then call the extractSlides().
Output: None.
3.1.10.3.6. extractSlides()
Input: None.
Processing: Open up the PowerPoint file and extract all the slides.
Output: None.
3.1.10.3.7. recentFiles()
Input: None.
Processing: Check registry for recent open PowerPoint files and load them into the menu list.
Output: None.
3.1.10.3.8. closeFile()
Input: None.
Processing: Loop through the list of displays and clear all the slides pertaining to them. Then set those displays to blank.
Output: None.
3.1.10.3.9. exitDPSBase()
Input: None.
Processing: Terminate the DPS/Base server and base program.
Output: None.
3.1.10.3.10. lockDisplay()
Input: None.
Processing: Set the current working display lock flag to true.
Output: None.
3.1.10.3.11. swapDisplays()
Input: None.
Processing: Create the swap displays modal dialog and set the dialog window to show.
Output: None.
3.1.10.3.12. duplicateSlide()
Input: None.
Processing: Create the duplicate slide modal dialog and set the dialog window to show.
Output: None.
3.1.10.3.13. draw()
Input: None.
Processing: Creates the drawing layout modal dialog and set the dialog window to show.
Output: None.
3.1.10.3.14. setPassword()
Input: None.
Processing: Create the set new password modal dialog and set the dialog window to show.
Output: None.
3.1.10.3.15. helpContents()
Input: None.
Processing: Create the help contents modal dialog and set the dialog window to show.
Output: None.
3.1.10.3.16. aboutDPS()
Input: None.
Processing: Create the About DPS modal dialog and set the dialog window to show.
Output: None.
3.1.10.3.17. miopenClickEventMethod()
Input: System Dependent.
Processing: Calls openFile() method.
Output: None.
3.1.10.3.18. micloseClickEventMethod()
Input: System Dependent.
Processing: Calls closeFile() method.
Output: None.
3.1.10.3.19. miexitClickEventMethod()
Input: System Dependent.
Processing: Calls exitDPSBase() method.
Output: None.
3.1.10.3.20. mishowDisplayidsClickEventMethod()
Input: System Dependent.
Processing: Calls showDisplays() method.
Output: None.
3.1.10.3.21. showDisplayID()
Input: None.
Processing: Shows the ID number for the displays.
Output: None.
3.1.10.3.22. miswapdisplaysClickEventMethod()
Input: System Dependent.
Processing: Calls swapDisplays() method.
Output: None.
3.1.10.3.23. misetnewpasswordClickEventMethod()
Input: System Dependent.
Processing: Calls setPassword() method.
Output: None.
3.1.10.3.24. mihelpcontentsClickEventMethod()
Input: System Dependent.
Processing: Calls helpContents() method.
Output: None.
3.1.10.3.25. miaboutdpsClickEventMethod()
Input: System Dependent.
Processing: Calls aboutDPS() method.
Output: None.
3.1.10.3.26. milockdisplayClickEventMethod()
Input: System Dependent.
Processing: Calls lockDisplay() method.
Output: None.
3.1.10.3.27. miduplicateslideClickEventMethod()
Input: System Dependent.
Processing: Calls duplicateDisplay() method.
Output: None.
3.1.10.3.28. midrawClickEventMethod()
Input: System Dependent.
Processing: Calls draw() method.
Output: None.

3.1.11. DPSBaseOpenFileDialog Class

3.1.11.1. Description
The Open File interface allows the user to search and browse the computer for the presentation file that will be used for the presentation. There will be a filter that will only allow Microsoft PowerPoint (.ppt) files to show and selected.
3.1.11.2. Fields
3.1.11.2.1. openfiledialog
The open file modal dialog window.
3.1.11.3. Methods
3.1.11.3.1. DPSBaseOpenFileDialog()
Input: None.
Processing: Calls the initOpenFile() method.
Output: None.
3.1.11.3.2. initOpenFile()
Input: None.
Processing: Setup the dialog to filter for only PowerPoint file type. Setup the dialog window to be modal.
Output: None.

3.1.12. DPSBasePasswordDialog Class

3.1.12.1. Description
Allows the user to set up a password for DPS or login to the DPS/Base server.
3.1.12.2. Fields
3.1.12.2.1. password
String that stores the user's password.
3.1.12.2.2. currentpasswordlabel
Labels the textbox for the current password.
3.1.12.2.3. newpasswordlabel
Labels the textbox for the new password.
3.1.12.2.4. confirmpasswordlabel
Labels the textbox for the confirmation password.
3.1.12.2.5. currentpasswordtextbox
Textbox that takes in the input for the current password.
3.1.12.2.6. newpasswordtextbox
Textbox that takes in the input for the new password.
3.1.12.2.7. confirmpasswordtextbox
Textbox that takes in the input for the confirmation password.
3.1.12.2.8. okbutton
A button that accepts user input.
3.1.12.2.9. cancelbutton
A button that will reject the user input.
3.1.12.3. Methods
3.1.12.3.1. DPSBasePasswordDialog(password)
Input: User's password.
Processing: Set the password.
Output: None.
3.1.12.3.2. setPassword(currpassword, newpassword, confirmnewpassword)
Input: User's current password. The users new password that they want to set. A string that confirms the new password.
Processing: The first thing that is done is to check the new password and the confirmation of that new password and make sure that they are equal. If the password is incorrect then a dialog box should be displayed to the user. If the password is correct than the new password is set.
Output: None.
3.1.12.3.3. showPasswordSuccessful()
Input: None.
Processing: Display a modal dialog window that tells the user that their password was set successfully.
Output: None.
3.1.12.3.4. showNewPasswordError()
Input: None.
Processing: Display a modal dialog window showing the comparison of the new password and the confirm password did not match up.
Output: None.
3.1.12.3.5. showCurrPasswordError()
Input: None.
Processing: Open a modal dialog window showing the comparison of the current password to the entered current password did not match up.
Output: None.
3.1.12.3.6. okbuttonClickEventMethod()
Input: System Dependent.
Processing: Calls checkCurrPassword()
Output: None.
3.1.12.3.7. cancelbuttonClickEventMethod()
Input: System Dependent.
Processing: Closes the current dialog window.
Output: None.

3.1.13. DPSBaseServer Class

3.1.13.1. Description
This class is one of the endpoints in the communications between the DPS/Base server and the DPS/Satellite client. It contains the means necessary to listen for connections, verify the password, listen for commands, and respond to all. This class is threaded to allow the server to concurrently run its functionality alongside the other aspects of the system.
3.1.13.2. Fields
3.1.13.2.1. COMM_ServerName, Constant set to 1001
Client-to-server command which instructs the server to send its name.
3.1.13.2.2. COMM_DirectoryList, Constant set to 2001
Client-to-server command which instructs the server to send a directory listing.
3.1.13.2.3. COMM_DirectoryChange, Constant set to 2002
Client-to-server command which instructs the server to change the current working directory.
3.1.13.2.4. COMM_DirectoryUp, Constant set to 2003
Client-to-server command which instructs the server to move up one directory level.
3.1.13.2.5. COMM_PresentationOpen, Constant set to 3001
Client-to-server command which instructs the server to open the specified file.
3.1.13.2.6. COMM_PresentationClose, Constant set to 3002
Client-to-server command which instructs the server to close the opened presentation.
3.1.13.2.7. COMM_SlideFirst, Constant set to 4001
Client-to-server command which instructs the server to switch to the first slide of the presentation.
3.1.13.2.8. COMM_SlidePrevious, Constant set to 4002
Client-to-server command which instructs the server to switch to the previous slide from the current slide.
3.1.13.2.9. COMM_SlideNext, Constant set to 4003
Client-to-server command which instructs the server to switch to the next slide from the current slide.
3.1.13.2.10. COMM_SlideLast, Constant set to 4004
Client-to-server command which instructs the server to switch to the last slide of the presentation.
3.1.13.2.11. COMM_DisplaySwap, Constant set to 5001
Client-to-server command which instructs the server to swap two displays.
3.1.13.2.12. COMM_DisplayShowIDs, Constant set to 5002
Client-to-server command which instructs the server to show the ID numbers of each display on its screen.
3.1.13.2.13. COMM_DisplayDuplicate, Constant set to 5003
Client-to-server command which instructs the server to duplicate a display onto another.
3.1.13.2.14. COMM_DrawEnable, Constant set to 6001
Client-to-server command which instructs the server to enable screen drawing input from the satellite.
3.1.13.2.15. COMM_DrawPoint, Constant set to 6002
Client-to-server command which instructs the server to draw a point on the screen at the specified location.
3.1.13.2.16. COMM_DrawColor, Constant set to 6003
Client-to-server command which instructs the server to change the current drawing color to the specified value.
3.1.13.2.17. COMM_DrawClear, Constant set to 6004
Client-to-server command which instructs the server to clear the drawing display.
3.1.13.2.18. COMM_DrawDisable, Constant set to 6005
Client-to-server command which instructs the server to disable screen drawing.
3.1.13.2.19. COMM_LockToggle, Constant set to 7001
Client-to-server command which instructs the server to toggle the lock feature on and off.
3.1.13.2.20. COMM_Exit, Constant set to 8001
Client-to-server command which instructs the server to exit.
3.1.13.2.21. DISP_Single, Constant set to 5101
Signifies the Single display type.
3.1.13.2.22. DISP_Mirrored, Constant set to 5102
Signifies the Mirrored display type.
3.1.13.2.23. DISP_Chained, Constant set to 5103
Signifies the Chained display type.
3.1.13.2.24. RESP_DirectoryName, Constant set to 2201
Server-to-client response with the name of the current working directory.
3.1.13.2.25. RESP_DirectoryBracket, Constant set to 2202
Server-to-client response which either starts or ends a directory listing.
3.1.13.2.26. RESP_DirectoryListing, Constant set to 2203
Server-to-client response with a directory listing entry.
3.1.13.2.27. RESP_DrawCapture, Constant set to 6201
Server-to-client response with an image containing the current display's state while drawing.
3.1.13.2.28. RESP_PasswordResult, Constant set to 9201
Server-to-client response with the result of password verification.
3.1.13.2.29. RESP_CommandResult, Constant set to 9202
Server-to-client response with the result of executing most commands.
3.1.13.2.30. RESP_Disconnecting, Constant set to 9203
Server-to-client response signifying that DPS/Base is being exited.
3.1.13.3. Methods
3.1.13.3.1. Go()
Input: None.
Processing: Starts a loop which listens for activity. It is executed through multithreading attributes of the environment.
Output: None.
3.1.13.3.2. waitForConnection()
Input: None.
Processing: Loops waiting for a connection attempt from a DPS/Satellite client.
Output: None.
3.1.13.3.3. stillConnected()
Input: None.
Processing: Checks whether a connection established by a DPS/Satellite client is still active.
Output: Whether or not the connection is still active.
3.1.13.3.4. waitForPassword()
Input: None.
Processing: Waits for a password to be sent from the DPS/Satellite client.
Output: Password sent by the client. (Should be a MD5 hash.)
3.1.13.3.5. verifyPassword(password)
Input: MD5 hash of password sent by client for verification.
Processing: Checks the password sent against the password needed to establish a connection. Sends a result code to the client as to success or failure of this verification.
Output: Success or failure of the password verification attempt.
3.1.13.3.6. waitForCommand()
Input: None.
Processing: Waits for a command to be sent from the DPS/Satellite client as well as associated arguments. If a command is received, whether or not it is valid, sends it to the processCommand() method.
Output: None.
3.1.13.3.7. processCommand(command,argument1,argument2,argument3)
Input: Command code (see fields), and the necessary arguments for that command. Arguments are optional.
Processing: Checks the command code sent against the list of known commands. If the command is valid, this method calls the appropriate methods in other classes to perform actions requested by the client. Finally, sends a response to the client that depends on the type of command.
Output: Success or failure of the command execution attempt.
3.1.13.3.8. sendResponse(code,data)
Input: Response code (see fields), and the necessary data for that response. Data is optional.
Processing: Sends a response over the network to the DPS/Satellite client.
Output: None.
3.1.13.3.9. endConnection()
Input: None.
Processing: Closes the connection with the DPS/Satellite client if one is established.
Output: None.

3.1.14. DPSBaseServerException Class

3.1.14.1. Description
This class is used in error handling of problems that occur when attempting to connect to or communicate with a DPS/Satellite client over a network.
3.1.14.2. Fields
None.
3.1.14.3. Methods
3.1.14.3.1. DPSBaseServerException()
Input: None.
Processing: Derived from the Exception class, calls super() method.
Output: None.
3.1.14.3.2. DPSBaseServerException(message)
Input: Exception error message.
Processing: Derived from the Exception class, calls super(message) method.
Output: None.

3.1.15. DPSBaseSlide Class

3.1.15.1. Description
The DPSBaseSlide class represents each presentation slide as an object. These slide objects will have an ID to identify itself. Also, there will be a picture representation of the slide to be used with the drawing feature of DPS.
3.1.15.2. Fields
3.1.15.2.1. id
Numerical ID of a slide
3.1.15.2.2. slidepreview
Picture representation of a slide
3.1.15.3. Methods
3.1.15.3.1. DPSBaseSlide()
Input: None.
Processing: Sets slide ID to 0. Creates a picture object.
Output: None.
3.1.15.3.2. DPSBaseSlide(id, slidepreview)
Input: id number, picture representation of slide
Processing: Sets slide ID to id. Sets slide picture to slidepreview.
Output: None.
3.1.15.3.3. getSlideID()
Input: None.
Processing: Gets the slide ID. Returns the slide ID.
Output: Numerical ID of slide.
3.1.15.3.4. setSlideID(id)
Input: id number.
Processing: Sets slide ID to id number.
Output: None.

3.1.16. DPSBaseSlideControl Class

3.1.16.1. Description
Basic slide presentation interaction, namely the ability to go to the next, previous, first, and last slides, is provided in this class.
3.1.16.2. Fields
3.1.16.2.1. SINGLE_DISPLAY, Constant set to 0.
Represent single display type.
3.1.16.2.2. MIRRORED_DISPLAY, Constant set to 1.
Represent mirrored display type.
3.1.16.2.3. CHAINED_DISPLAY, Constant set to 2.
Represent chained display type.
3.1.16.2.4. firstbutton
To starting slide of presentation button.
3.1.16.2.5. previousbutton
To previous slide button.
3.1.16.2.6. nextbutton
To next of slide button.
3.1.16.2.7. lastbutton
To ending slide of presentation button.
3.1.16.2.8. displays
List of the displays.
3.1.16.2.9. displayindex
A numerical value display index.
3.1.16.3. Methods
3.1.16.3.1. DPSBaseSlideControl()
Input: None.
Processing: Sets displays to a list object. Calls initAllButtons() method.
Output: None.
3.1.16.3.2. DPSBaseSlideControl(displays)
Input: List of displays.
Processing: Sets displays to list of displays. Calls initAllButtons() method.
Output: None.
3.1.16.3.3. initAllButtons()
Input: None.
Processing: Creates firstButton, previousButton, nextButton, and lastButton. Sets the text of the buttons. Note: This will only create the instance of the button and will not take care of disabling the correct button.
Output: None.
3.1.16.3.4. enabledFirstButton(enable)
Input: Boolean value.
Processing: Sets firstButton to boolean input.
Output: None.
3.1.16.3.5. enabledPreviousButton(enable)
Input: Boolean value.
Processing: Sets previousButton to boolean input.
Output: None.
3.1.16.3.6. enabledNextButton(enable)
Input: Boolean value.
Processing: Sets nextButton to boolean input.
Output: None.
3.1.16.3.7. enabledLastButton(enable)
Input: Boolean value.
Processing: Set lastButton to boolean input.
Output: None.
3.1.16.3.8. enabledAllButtons(enable)
Input: Boolean value.
Processing: Sets firstButton, previousButton, nextButton, and lastButton to boolean input.
Output: None.
3.1.16.3.9. firstSlide()
Input: None.
Processing: Advances to the first slide of the presentation.
Output: None.
3.1.16.3.10. previousSlide()
Input: None.
Processing: Advances to the previous slide of the presentation.
Output: None.
3.1.16.3.11. nextSlide()
Input: None.
Processing: Advances to the next slide of the presentation.
Output: None.
3.1.16.3.12. lastSlide()
Input: None.
Processing: Advances to the end slide of the presentation.
Output: None.
3.1.16.3.13. firstbuttonClickEventMethod()
Input: System Dependent.
Processing: Calls firstSlide() method.
Output: None.
3.1.16.3.14. previousbuttonClickEventMethod()
Input: System Dependent.
Processing: Calls previousSlide() method.
Output: None.
3.1.16.3.15. nextbuttonClickEventMethod()
Input: System Dependent.
Processing: Calls nextSlide() method.
Output: None.
3.1.16.3.16. lastbuttonClickEventMethod()
Input: System Dependent.
Processing: Calls lastSlide() method.
Output: None.

3.1.17. DPSBaseSlideView Class

3.1.17.1. Description
This class creates and responds to actions on an interface element which allows the user to view all of the slides in a presentation and to quickly switch to another slide by simply clicking once on it.
3.1.17.2. Fields
3.1.17.2.1. slidebuttons
Contain a list of buttons to hold the slide thumbnail.
3.1.17.2.2. displays
Contain a list of displays.
3.1.17.2.3. displayindex
Current working numerical display ID.
3.1.17.2.4. panel
Panel for the slide button to be position on.
3.1.17.3. Methods
3.1.17.3.1. DPSBaseSlideView()
Input: None.
Processing: Creates a new list of buttons to hold the slide image. Creates a new list of displays. Creates the working panel. Sets the displayindex equal to 1 and call initSlideButtons().
Output: None.
3.1.17.3.2. DPSBaseSlideView(displays, displayindex)
Input: List of display and the current display index.
Processing: Creates a new list of buttons to hold the slide image. Creates a panel. Sets the current list of displays to the given displays input. Sets the display index equal to the given id input. Calls initSlideButtons().
Output: None.
3.1.17.3.3. initSlideButtons()
Input: None.
Processing: Uses the panel to setup the layout. Creates all the buttons within the list. Sets all buttons to have the same size. Sets all all the button texts and their images.
Output: None.
3.1.17.3.4. setSelection(slideindex)
Input: The selected slide numerical id.
Processing: Makes the current select slide button to be 3D. Sets the old selected slide button to be flat. Sets the current working slide index to the new selected slide index and refresh the display. Note: This method will not enable/disable the appropriate buttons, this will be taken cared of in another class.
Output: None.
3.1.17.3.5. selectClickEventMethod()
Input: None.
Processing: Calls setSelection() method.
Output: None.

3.1.18. DPSBaseStatusBar Class

3.1.18.1. Description
A staple of many Windows-based applications is the status bar. This class provides this, which will be used to display some information about the current state of the system.
3.1.18.2. Fields
3.1.18.2.1. dpsstatusbar
Will be used to display the PowerPoint information
3.1.18.2.2. filenamepanel
Will be used to display the filename
3.1.18.3. Methods
3.1.18.3.1. DPSBaseStatusBar()
Input: None
Processing: Sets up the components of the dialog such as the location, size, and the default text.
Output: None.
3.1.18.3.2. initStatusBar()
Input: None.
Processing: Initializes the status bar.
Output: None.

3.1.19. DPSBaseSwapDisplayDialog Class

3.1.19.1. Description
An interface that will allow the user to swap a maximum of two displays.
3.1.19.2. Fields
3.1.19.2.1. displayalabel
A label to designate the first display being selected.
3.1.19.2.2. displayblabel
A label to designate the second display being selected.
3.1.19.2.3. displayacombobox
A drop down menu that allows the user to select an available display.
3.1.19.2.4. displaybcombobox
A drop down menu that allows the user to select an available display.
3.1.19.2.5. okbutton
A button that display execute the swap method and close the dialog.
3.1.19.2.6. cancelbutton
A button that will close the dialog box.
3.1.19.2.7. applybutton
A button that will swap the two displays but keep the dialog window open.
3.1.19.2.8. displays
A list of the current displays available for DPS.
3.1.19.2.9. displayindex
A index of the display
3.1.19.3. Methods
3.1.19.3.1. DPSBaseSwapDisplayDialog()
Input: None.
Processing: Initiates the buttons, labels, and combo boxes for the dialog window.
Output: None.
3.1.19.3.2. DPSBaseSwapDisplayDialog(displays,displayindex)
Input: List of displays.
Processing: Initiates the buttons, labels, and combo boxes for the dialog window. Assigns the input display to the class list.
Output: None.
3.1.19.3.3. initSwapDisplay()
Input: None.
Processing: Sets up the buttons, labels and combo boxes for the dialog window.
Output: None.
3.1.19.3.4. swapDisplay(displaya,displayb)
Input: The two displays that will be swapped.
Processing: Swap display A with Display B and vice versa.
Output: None.
3.1.19.3.5. okButtonClickEventMethod()
Input: System Dependent.
Processing: Calls swapDisplay() and closes current window.
Output: None.
3.1.19.3.6. cancelButtonClickEventMethod()
Input: System Dependent.
Processing: Closes the current dialog window.
Output: None.
3.1.19.3.7. applyButtonClickEventMethod()
Input: System Dependent.
Processing: Calls swapDisplay() and keeps the current window opens.
Output: None.

3.1.20. DPSBaseToolBar Class

3.1.20.1. Description
DPS/Base includes an icon toolbar which provides the user with several icon buttons to important functionality of the system.
3.1.20.2. Fields
3.1.20.2.1. displays
An list of displays.
3.1.20.2.2. displayindex
The number ID of the current display.
3.1.20.2.3. slideindex
The number index of the current slide.
3.1.20.2.4. bslidecontrol
An object of DPSBaseSlideControl class.
3.1.20.2.5. lockflag
Boolean value to determine the locked state.
3.1.20.2.6. swapdisplays
An object of DPSBaseSwapDisplayDialog class
3.1.20.2.7. duplicate
An object of DPSBaseDuplicateSlideDialog class.
3.1.20.2.8. screendraw
An object of DPSBaseDrawingLayout class.
3.1.20.2.9. showIDbutton
Button for the toolbar.
3.1.20.2.10. swapbutton
Button for the toolbar.
3.1.20.2.11. duplicatebutton
Button for the toolbar.
3.1.20.2.12. drawbutton
Button for the toolbar.
3.1.20.2.13. lockbutton
Button for the toolbar.
3.1.20.2.14. displaydropmenu
A dropdown menu.
3.1.20.2.15. displayidlabel
A label for the display drop menu list.
3.1.20.3. Methods
3.1.20.3.1. DPSBaseToolBar()
Input: None.
Processing: Sets displays to new list object. Calls initToolBarButtons() method.
Output: None.
3.1.20.3.2. DPSBaseToolBar(displays,displayindex)
Input: A list of displays.
Processing: Sets displays to input parameter displays. Calls initToolBarButtons() method.
Output: None.
3.1.20.3.3. initToolBarButtons()
Input: None.
Processing: Creates objects of the buttons for the toolbar. Sets the button labels.
Output: None.
3.1.20.3.4. setDisplays(displays)
Input: A list of displays.
Processing: Sets list of displays to input parameter displays.
Output: None.
3.1.20.3.5. setBaseSlideControl(bSlideControl)
Input: An object of DPSBaseSlideControl class.
Processing: Sets object of DPSBaseSlideControl to input parameter bSlideControl.
Output: None.
3.1.20.3.6. selectDisplay(displayindex)
Input: A number display index.
Processing: Sets displayindex to input parameter displayindex. Sets currSlideIndex to index of the slide from the new display. Sets lockflag to the lockflag of new display. Calls bSlideControl's enableAllButton() method to determine state of the bSlideControl's buttons. Disables bSlideControl first button if the new slide index is at first slide. Disables bSlideControl last button if the new slide index is the last slide.
Output: None.
3.1.20.3.7. lockDisplay()
Input: None.
Processing: Sets lockflag of display to true. Changes lockbutton label to "UNLOCK". Calls bSlideControl's enableAllButton() method to disables all bSlideControl's buttons.
Output: None.
3.1.20.3.8. unlockDisplay()
Input: None.
Processing: Sets lockflag of display to false. Changes lockbutton label to "LOCK". Calls bSlideControl's enableAllButton method to enables all bSlideControl's buttons.
Output: None.
3.1.20.3.9. showIDbuttonClickEventMethod()
Input: System Dependent.
Processing: Loops through the display list re-rendering their display ID on the screen for 5 seconds.
Output: None.
3.1.20.3.10. swapbuttonClickEventMethod()
Input: System Dependent.
Processing: Sets swap to new object of DPSBaseSwapDisplayDialog class.
Output: None.
3.1.20.3.11. duplicatebuttonClickEventMethod()
Input: System Dependent.
Processing: Sets duplicate to new object of DPSBaseDuplicateSlideDialog class.
Output: None.
3.1.20.3.12. drawbuttonClickEventMethod()
Input: System Dependent.
Processing: Sets screendraw to new object of DPSBaseDrawingLayout class.
Output: None.
3.1.20.3.13. lockbuttonClickEventMethod()
Input: System Dependent.
Processing: Calls unlockDisplay() if lockflag is true. Calls lockDisplay() if lockflag is false.
Output: None.
3.1.20.3.14. displaydropmenuSelectEventMethod()
Input: System Dependent.
Processing: Calls selectDisplay() method with selected item's index as input parameter.
Output: None.

3.1.21. DPSBaseWhiteBoard Class

3.1.21.1. Description
An interface element which can be drawn on using a pointing device. Drawings made will be reflected on the appropriate display device. This class will be a subclass of an interface element native to the development system which accepts pointing device coordinate input. In addition to that, this class places a transparent "film" over the active display being drawn on, which will do the work of outputting the drawn shapes and figures to the screen.
3.1.21.2. Fields
3.1.21.2.1. bdisplay
Reference to the display being drawn overs.
3.1.21.2.2. overlay
"Film" that is laid over the slide.
3.1.21.2.3. color_r
Red value of the current drawing color.
3.1.21.2.4. color_g
Green value of the current drawing color.
3.1.21.2.5. color_b
Blue value of the current drawing color.
3.1.21.3. Methods
3.1.21.3.1. DPSBaseWhiteBoard(display)
Input: Copy of the display being drawn to, by reference.
Processing: Prepares to accept pointing device coordinate input. Obtains an image of the slide being drawn over, and sets the background of the interface element to that image.
Output: None.
3.1.21.3.2. drawPoint(x,y)
Input: Coordinates of the pointing device cursor.
Processing: Draws a point at the coordinates provided in inverted color.
Output: None.
3.1.21.3.3. changeColor(r,g,b)
Input: Red, green, and blue value of a color.
Processing: Changes the drawing color of the whiteboard.
Output: None.
3.1.21.3.4. clearBoard()
Input: None.
Processing: Clears the display of drawings made by the whiteboard.
Output: None.

3.2. DPS/Satellite Components

3.2.1. Description

DPS/Satellite is the portion of the DPS system which is used on the PDA. This software is used to communicate with the DPS/Base server to perform all the functionality to conduct the presentations. This section of the specification described the design of this portion.

3.2.2. DPSSatellite Class

3.2.2.1. Description
This class is the starting point of the DPS/Satellite software. It is responsbible for instantiating the other classes which provide the main functionality of the system.
3.2.2.2. Fields
3.2.2.2.1. satellitelayout
Represent the satellite layout.
3.2.2.2.2. client
An object of DPSSatelliteClient class.
3.2.2.3. Methods
3.2.2.3.1. DPSSatellite()
Input: None.
Processing: Creates a new satellite layout and initializes it.
Output: None.

3.2.3. DPSSatelliteAboutDPSDialog Class

3.2.3.1. Description
This class will consist of a dialog box that will show the user information bout DPS.
3.2.3.2. Fields
3.2.3.2.1. titlelabel
Label of the project name.
3.2.3.2.2. copyrightlabel
Label of the project copyright date
3.2.3.2.3. descriptionlabel
Label a brief description of DPS.
3.2.3.2.4. dpslogo
Picture of the DPS logo
3.2.3.2.5. okbutton
A button that will accept the user input.
3.2.3.3. Methods
3.2.3.3.1. DPSSatelliteAboutDPSDialog()
Input: None.
Processing: Initiates the dialog window that will display the DPS information.
Output: None.
3.2.3.3.2. initDialog()
Input: None.
Processing: Sets up the dialog box with the text and buttons to display information about DPS.
Output: None.
3.2.3.3.3. okButtonClickEventMethod()
Input: System Dependent.
Processing: Close the current dialog window.
Output: None.

3.2.4. DPSSatelliteBrowseServerDialog Class

3.2.4.1. Description
This interface allows a user to search for available DPS/Base servers to connect to. Once a server is selected from the list, the server's IP will be written in the Server IP text area of the connection dialog screen for the user.
3.2.4.2. Fields
3.2.4.2.1. panel
The layout panel for the dialog window.
3.2.4.2.2. searchbutton
The button to search for new DPS/Base servers.
3.2.4.2.3. okbutton
The button to select one DPS/Base server from the list box.
3.2.4.2.4. cancelbutton
The button to exit out of the modal dialog.
3.2.4.2.5. serverlistbox
The list box containing all the DPS/Base server.
3.2.4.2.6. client
An object of DPSSatelliteClient class.
3.2.4.3. Methods
3.2.4.3.1. DPSSatelliteBrowseServerDialog()
Input: None.
Processing: Calls initLayout() method.
Output: None.
3.2.4.3.2. initLayout()
Input: None.
Processing: Sets the panel layout of the dialog window. Calls initServerListBox() method to setup the layout of the list box.
Output: None.
3.2.4.3.3. initServerListBox()
Input: None.
Processing: Sends out a broadcast in the subnet for active DPS/Base servers. Sets up the each DPS/Base server into the server list box.
Output: None.
3.2.4.3.4. okbuttonClickEventMethod()
Input: System Dependent.
Processing: Calls passSelectedServer() method.
Output: None.
3.2.4.3.5. cancelbuttonClickEventMethod()
Input: System Dependent.
Processing: Closes out of modal dialog.
Output: None.
3.2.4.3.6. searchbuttonClickEventMethod()
Input: System Dependent
Processing: Calls initServerListBox() method.
Output: None.
3.2.4.3.7. passSelectedServer()
Input: None.
Processing: Returns user selected DPS/Base server.
Output: String of the selected DPS/Base server.

3.2.5. DPSSatelliteClient Class

3.2.5.1. Description
This class is one of the endpoints in the communications between the DPS/Base server and the DPS/Satellite client. It contains the means necessary to communicate with the DPS/Base server, send commands, listen to response messages from the DPS/Base server.
3.2.5.2. Fields
3.2.5.2.1. COMM_ServerName, Constant set to 1001
Client-to-server command which instructs the server to send its name.
3.2.5.2.2. COMM_DirectoryList, Constant set to 2001
Client-to-server command which instructs the server to send a directory listing.
3.2.5.2.3. COMM_DirectoryChange, Constant set to 2002
Client-to-server command which instructs the server to change the current working directory.
3.2.5.2.4. COMM_DirectoryUp, Constant set to 2003
Client-to-server command which instructs the server to move up one directory level.
3.2.5.2.5. COMM_PresentationOpen, Constant set to 3001
Client-to-server command which instructs the server to open the specified file.
3.2.5.2.6. COMM_PresentationClose, Constant set to 3002
Client-to-server command which instructs the server to close the opened presentation.
3.2.5.2.7. COMM_SlideFirst, Constant set to 4001
Client-to-server command which instructs the server to switch to the first slide of the presentation.
3.2.5.2.8. COMM_SlidePrevious, Constant set to 4002
Client-to-server command which instructs the server to switch to the previous slide from the current slide.
3.2.5.2.9. COMM_SlideNext, Constant set to 4003
Client-to-server command which instructs the server to switch to the next slide from the current slide.
3.2.5.2.10. COMM_SlideLast, Constant set to 4004
Client-to-server command which instructs the server to switch to the last slide of the presentation.
3.2.5.2.11. COMM_DisplaySwap, Constant set to 5001
Client-to-server command which instructs the server to swap two displays.
3.2.5.2.12. COMM_DisplayShowIDs, Constant set to 5002
Client-to-server command which instructs the server to show the ID numbers of each display on its screen.
3.2.5.2.13. COMM_DisplayDuplicate, Constant set to 5003
Client-to-server command which instructs the server to duplicate a display onto another.
3.2.5.2.14. COMM_DrawEnable, Constant set to 6001
Client-to-server command which instructs the server to enable screen drawing input from the satellite.
3.2.5.2.15. COMM_DrawPoint, Constant set to 6002
Client-to-server command which instructs the server to draw a point on the screen at the specified location.
3.2.5.2.16. COMM_DrawColor, Constant set to 6003
Client-to-server command which instructs the server to change the current drawing color to the specified value.
3.2.5.2.17. COMM_DrawClear, Constant set to 6004
Client-to-server command which instructs the server to clear the drawing display.
3.2.5.2.18. COMM_DrawDisable, Constant set to 6005
Client-to-server command which instructs the server to disable screen drawing.
3.2.5.2.19. COMM_LockToggle, Constant set to 7001
Client-to-server command which instructs the server to toggle the lock feature on and off.
3.2.5.2.20. COMM_Exit, Constant set to 8001
Client-to-server command which instructs the server to exit.
3.2.5.2.21. DISP_Single, Constant set to 5101
Signifies the Single display type.
3.2.5.2.22. DISP_Mirrored, Constant set to 5102
Signifies the Mirrored display type.
3.2.5.2.23. DISP_Chained, Constant set to 5103
Signifies the Chained display type.
3.2.5.2.24. RESP_DirectoryName, Constant set to 2201
Server-to-client response with the name of the current working directory.
3.2.5.2.25. RESP_DirectoryBracket, Constant set to 2202
Server-to-client response which either starts or ends a directory listing.
3.2.5.2.26. RESP_DirectoryListing, Constant set to 2203
Server-to-client response with a directory listing entry.
3.2.5.2.27. RESP_DrawCapture, Constant set to 6201
Server-to-client response with an image containing the current display's state while drawing.
3.2.5.2.28. RESP_PasswordResult, Constant set to 9201
Server-to-client response with the result of password verification.
3.2.5.2.29. RESP_CommandResult, Constant set to 9202
Server-to-client response with the result of executing most commands.
3.2.5.2.30. RESP_Disconnecting, Constant set to 9203
Server-to-client response signifying that DPS/Base is being exited.
3.2.5.3. Methods
3.2.5.3.1. startConnection(server)
Input: Server's IP Address.
Processing: Establishes a connection with a DPS/Base server.
Output: Success or failure of the connection.
3.2.5.3.2. stillConnected()
Input: None.
Processing: Checks whether the previously established connection with the DPS/Base server is still active.
Output: Whether or not the connection is active.
3.2.5.3.3. sendPassword(password)
Input: MD5 hash of password.
Processing: Sends a password to the DPS/Base server so that it may allow the DPS/Satellite client to connect.
Output: None.
3.2.5.3.4. sendCommand(command,argument1,argument2,argument3)
Input: Command code (see fields), and the necessary arguments for that command. Arguments are optional.
Processing: Sends the specified command over the network to the connected DPS/Base server.
Output: None.
3.2.5.3.5. waitForResponse()
Input: None.
Processing: Waits for the DPS/Base server to respond to information sent to it by DPS/Satellite.
Output: Response code (see fields).
3.2.5.3.6. getResponse()
Input: None.
Processing: Depending on the response code sent, this method retrieves any data sent with the response.
Output: Data sent with response from DPS/Base server.
3.2.5.3.7. sendBroadcast()
Input: None.
Processing: Sends a broadcast message requesting DPS/Base servers to identify themselves through a response.
Output: None.
3.2.5.3.8. endConnection()
Input: None.
Processing: Terminates the connection to the DPS/Base server.
Output: None.

3.2.6. DPSSatelliteClientException Class

3.2.6.1. Description
This class is used in error handling of problems that occur when attempting to connect to or communicate with a DPS/Base server over a network.
3.2.6.2. Fields
None.
3.2.6.3. Methods
3.2.6.3.1. DPSSatelliteClientException()
Input: None.
Processing: Derived from the Exception class, calls super() method.
Output: None.
3.2.6.3.2. DPSSatelliteClientException(message)
Input: Exception error message.
Processing: Derived from the Exception class, calls super(message) method.
Output: None.

3.2.7. DPSSatelliteConnectDialog Class

3.2.7.1. Description
This class is first launched when the DPS/Satellite is started. It is used to connect the DPS/Satellite to the DPS/Base server over the network using the server IP and password. The DPS/Satellite needs to always be connected to send and retrieve data to and from the DPS/Base server.
3.2.7.2. Fields
3.2.7.2.1. panel
The panel layout of the dialog window.
3.2.7.2.2. ipcombobox
An IP combo box.
3.2.7.2.3. passwordfield
A password text field.
3.2.7.2.4. connectbutton
A button to connect to the DPS/Base server.
3.2.7.2.5. browsebutton
A button to browse the list of dedectable DPS/Base servers.
3.2.7.2.6. browseserverdialog
A modal dialog.
3.2.7.2.7. client
An object of DPSSatelliteClient class.
3.2.7.3. Methods
3.2.7.3.1. DPSSatelliteConnectDialog()
Input: None.
Processing: Calls initLayout() method.
Output: None.
3.2.7.3.2. initLayout()
Input: None.
Processing: Sets up the panel with the IP combo box and the password text field and all the buttons.
Output: None.
3.2.7.3.3. connectbuttonClickEventMethod()
Input: System Dependent.
Processing: Takes the IP combo box value and the password text field value and try to open a socket connection to the DPS/Base server. If the IP is bad, call IPErrorDialog() method. If the password is bad, call the passwordErrorDialog() method. If connection to the DPS/Base server is successful, call connectSuccefulDialog() method.
Output: None.
3.2.7.3.4. ipErrorDialog()
Input: None.
Processing: Creates a modal error dialog with the constant IP error string and shows the dialog to the user.
Output: None.
3.2.7.3.5. passwordErrorDialog()
Input: None.
Processing: Creates a modal error dialog with the constant password error string and shows the dialog to the user.
Output: None.
3.2.7.3.6. connectSuccessfulDialog()
Input: None.
Processing: Creates a modal dialog with a constant string showing a successful connection to the server and shows the dialog to the user.
Output: None.
3.2.7.3.7. browsebuttonClickEventMethod()
Input: System Dependent.
Processing: Creates a new modal browser server dialog window.
Output: None.
3.2.7.3.8. ipcomboboxLeaveEventMethod()
Input: System Dependent.
Processing: Calls validateIP() method.
Output: None.
3.2.7.3.9. validateIP()
Input: IP address string.
Processing: Checks the input parameter IP and validates if it is a valid IP. Calls ipErrorDialog() method if input parameter is invalid.
Output: Boolean value.
3.2.7.3.10. connectbuttonClickEventMethod()
Input: System Dependent.
Processing: Sends a signal to the base to verify the password.
Output: None.

3.2.8. DPSSatelliteDisplayOptionsDialog Class

3.2.8.1. Description
The Display Options interface allows the user to select what the presentation type will be. The user will have the option to select between 3 types: Single, Mirrored, and Chained. Based on the type selection, the section of the displays in the Display ID list will be determined. If the display type is "Single Display", the user will only be allowed to select 1 display from the list. However, if the display type is "Mirrored Display" or "Chained Display", the user will have to select more than one display from the list. After making these choices, they will be sent to the DPS/Base server for application.
3.2.8.2. Fields
3.2.8.2.1. SINGLE_DISPLAY, Constant set to 0.
Represent single display.
3.2.8.2.2. MIRRORED_DISPLAY, Constant set to 1.
Represent mirrored display type.
3.2.8.2.3. CHAINED_DISPLAY, Constant set to 2.
Represent chained display type.
3.2.8.2.4. rdsingle
A radio button representing single display type.
3.2.8.2.5. rdmirrored
A radio button representing mirrored display type.
3.2.8.2.6. rdchained
A radio button representing chained display type.
3.2.8.2.7. displayslist
A list box containing all active displays.
3.2.8.2.8. displays
List of displays.
3.2.8.2.9. panel
The layout panel of the dialog window.
3.2.8.2.10. okbutton
A button to accept user's input.
3.2.8.2.11. cancelbutton
A button to close the dialog.
3.2.8.2.12. type
A number representing a display type.
3.2.8.2.13. client
An object of DPSSatelliteClient class.
3.2.8.3. Methods
3.2.8.3.1. DPSSatelliteDisplayOptionsDialog()
Input: None.
Processing: Sets the list of displays to the return value after calling sendGetDisplays() method. Then calls initLayout() method.
Output: None.
3.2.8.3.2. sendGetDisplays()
Input: None.
Processing: Sends a command to the DPS/Base server to get a list of displays.
Output: List of active displays.
3.2.8.3.3. initLayout()
Input: None.
Processing: Sets the panel with the radio buttons and the display list box.
Output: None.
3.2.8.3.4. sendDisplayType()
Input: None.
Processing: Sends a command to the DPS/Base server with the radio button value as the display type.
Output: None.
3.2.8.3.5. sendSelectedDisplays()
Input: None.
Processing: Sends a command to the DPS/Base server with the display list box values as the selected displays.
Output: None.
3.2.8.3.6. okbuttonClickEventMethod()
Input: System Dependent.
Processing: Calls sendSelectedDisplays() and sendDisplayType()
Output: None.
3.2.8.3.7. cancelbuttonClickEventMethod()
Input: System Dependent.
Processing: Closes out the dialog window.
Output: None.
3.2.8.3.8. rdsingleSelectEventMethod()
Input: System Dependent.
Processing: Set displaylist to be enable only SINGLE selection. Clear selection on displaylist.
Output: None.
3.2.8.3.9. rdmirroredSelectEventMethod()
Input: System Dependent.
Processing: Set displaylist to be enable MULTIPLE selections. Clear selection on displaylist.
Output: None.
3.2.8.3.10. rdchainedSelectEventMethod()
Input: System Dependent.
Processing: Set displaylist to be enable MULTIPLE selections. Clear selection on displaylist.
Output: None.

3.2.9. DPSSatelliteDuplicateSlideDialog Class

3.2.9.1. Description
Allows the user to duplicate a display.
3.2.9.2. Fields
3.2.9.2.1. functionlabel
A label to designate action being performed.
3.2.9.2.2. displaylabel
A label to designate target display.
3.2.9.2.3. displaycombobox
A drop down menu that allows the user to select an available display.
3.2.9.2.4. okbutton
A button that display the swap method and close the dialog.
3.2.9.2.5. cancelbutton
A button that will close the dialog box.
3.2.9.2.6. applybutton
A button that will swap the two displays but keep the dialog window open.
3.2.9.2.7. displays
A list of the current displays available for DPS.
3.2.9.2.8. slideindex
A numerical value for the current display.
3.2.9.2.9. client
An object of DPSSatelliteClient class.
3.2.9.3. Methods
3.2.9.3.1. DPSSatelliteDuplicateSlideDialog()
Input: None.
Processing: Creates a new list and calls the initDuplicateDisplay() method.
Output: None.
3.2.9.3.2. DPSSatelliteDuplicateSlideDialog(displays,slideindex)
Input: List of the displays that are available.
Processing: Makes a copy of the displays that was passed in and calls the initDuplicateDisplay() method.
Output: None.
3.2.9.3.3. initDuplicateslide()
Input: None.
Processing: Initializes all of the GUI components.
Output: None.
3.2.9.3.4. okbuttonClickEventMethod()
Input: System Dependent.
Processing: Calls sendDuplicateSlide() method and closes current window.
Output: None.
3.2.9.3.5. cancelbuttonClickEventMethod()
Input: System Dependent.
Processing: Closes the current dialog window.
Output: None.
3.2.9.3.6. applybuttonClickEventMethod()
Input: System Dependent.
Processing: Calls sendDuplicateSlide() method and keep the current window open.
Output: None.
3.2.9.3.7. sendDuplicateSlide(slideindex)
Input: Index of the display to be duplicated.
Processing: Sends a message to the DPS/Base server to duplicate the display that is passed into the method on the current display index.
Output: None.

3.2.10. DPSSatelliteHelp Class

3.2.10.1. Description
One of the major goals of this project is to make the application as intutive as possible so the user is not required to refer to manuals. Even with that spirit, there will be some cases where documentation will be helpful to the user. This class manages the help system present on DPS/Satellite.
3.2.10.2. Fields
3.2.10.2.1. HH_DISPLAY_TOPIC
Displays a help topic by passing the name of the HTML file.
3.2.10.3. Methods
3.2.10.3.1. DPSSatelliteHelp()
Input: None.
Processing: Initializes help topics. Call satelliteHelp() method.
Output: None.
3.2.10.3.2. satelliteHelp()
Input: None.
Processing: Will call the HtmlHelp API, with four arguments.
Output: None.

3.2.11. DPSSatelliteLayout Class

3.2.11.1. Description
The major graphical user interface elements of DPS/Satellite, particularly those which are part of the main window, are represented and handled in this class.
3.2.11.2. Fields
3.2.11.2.1. smenubar
Menu bar that will give the user basic control over the DPS.
3.2.11.2.2. stoolbar
Tool bar that gives the user easy accessibility to most user functions in the DPS.
3.2.11.2.3. sslidecontrol
Gives the user functionality, move from slide to slide or jump to the first or last slide.
3.2.11.2.4. displays
A list of all the available displays.
3.2.11.2.5. whiteboard
An area where the user can draw.
3.2.11.2.6. client
An object of DPSSatelliteClient class.
3.2.11.3. Methods
3.2.11.3.1. DPSSatelliteLayout()
Input: None.
Processing: Creates the statusbar, menubar, toolbar, slideview, slidecontrol, whiteboard and the array list for the class. Calls the initLayout() method.
Output: None.
3.2.11.3.2. DPSSatelliteLayout(displays)
Input: A list of the displays that are available
Processing: Creates the statusbar, menubar, toolbar, slideview, slidecontrol, whiteboard and assigns the displays in the class from the input. Calls the initLayout() method.
Output: None.
3.2.11.3.3. initLayout()
Input: None.
Processing: Initializes all of the GUI's for the class.
Output: None.

3.2.12. DPSSatelliteMenuBar Class

3.2.12.1. Description
Some of the necessary functions of the DPS/Satellite package, including closing of files and exiting the program, are provided in menus. This class defines those menus and handles their activity.
3.2.12.2. Fields
3.2.12.2.1. mainmenu
Object which contains top level menu items.
3.2.12.2.2. mifile
File menu.
3.2.12.2.3. miopen
Open file option under the File menu.
3.2.12.2.4. miclose
Close file option under the File menu.
3.2.12.2.5. miexitsat
Exit option to exit just the satellite device under the File menu.
3.2.12.2.6. miexitall
Exit opteion to exit both satellite and desktop server under the File menu.
3.2.12.2.7. mitools
Tools menu.
3.2.12.2.8. micurrentdisplay
Current display option under the Tools menu.
3.2.12.2.9. mishowdisplayid
Show Display ID's option under the Tools menu.
3.2.12.2.10. miswapdisplay
Swap Displays option under the Tools menu.
3.2.12.2.11. midraw
Draw option under Current Display submenu of the Tools menu.
3.2.12.2.12. miduplicate
Duplicate option under the Current Display submenu of the Tools menu.
3.2.12.2.13. milock
Lock option under the Current Display submenu of the Tools menu.
3.2.12.2.14. mihelp
Help menu.
3.2.12.2.15. mihelpcontents
Help Contents option under the Help menu.
3.2.12.2.16. miaboutdps
About DPS option under the Help menu.
3.2.12.2.17. openfiledialog
The open file dialog window.
3.2.12.2.18. aboutdpsdialog
The about DPS dialog window.
3.2.12.2.19. displayoptionsdialog
The dislay options dialog window.
3.2.12.2.20. duplicateslidedialog
The duplicate slide dialog window.
3.2.12.2.21. swapdisplaysdialog
The swap displays dialog window.
3.2.12.2.22. whiteboard
An object of the DPSSatelliteWhiteBoard class.
3.2.12.2.23. client
An object of DPSSatelliteClient class.
3.2.12.3. Methods
3.2.12.3.1. DPSSatelliteMenuBar()
Input: None.
Processing: Call the initMenuItem() method.
Output: None.
3.2.12.3.2. initMenuItem()
Input: None.
Processing: Create the menubar and all its corresponding menu item.
Output: None.
3.2.12.3.3. sendSetDisplay(displayindex)
Input: The current working display index.
Processing: Sends a message to DPS/Base server to set the displayindex equal to given id input.
Output: None.
3.2.12.3.4. sendOpenFile()
Input: None.
Processing: Sends a message to the DPS/Base server to send a list of available files. Then creates an open file modal dialog window to allow the user to select a PowerPoint file. Then creates the display option dialog window to select which display type and displays will be use for the PowerPoint file. Then call the extractSlides().
Output: None.
3.2.12.3.5.  sendExtractSlides()
Input: None.
Processing: Sends a message to the DPS/Base server to open up the PowerPoint file and extract all the slides.
Output: None.
3.2.12.3.6. sendCloseFile()
Input: None
Processing: Send a message to the DPS/Base server to loop through the list of displays and clear all the slides pertaining to them. Then set those displays blank.
Output: None.
3.2.12.3.7. sendExitDPSSatellite()
Input: None
Processing: Terminate the DPS satellite program.
Output: None.
3.2.12.3.8. sendExitAll()
Input: None
Processing: Call exitDPSSatellite() method. Sends a message to the DPS/Base server to terminate the program.
Output: None.
3.2.12.3.9. sendLockDisplay()
Input: None
Processing: Send a message to DPS/Base server to set the current working display lock flag to true.
Output: None
3.2.12.3.10. sendShowDisplays()
Input: None.
Processing: Send a message to the DPS/Base server to shows the ID number for the displays.
Output: None.
3.2.12.3.11. swapDisplays()
Input: None.
Processing: Create the swap displays modal dialog and set the dialog window to show.
Output: None.
3.2.12.3.12. duplicateSlide()
Input: None.
Processing: Create the duplicate slide modal dialog and set the dialog window to show.
Output: None.
3.2.12.3.13. draw()
Input: None.
Processing: Uses DPSSatelliteWhiteBoard object whiteboard to call its method getSlidePicture(). Calls its setSlidePicture() method after receiving the return object.
Output: None.
3.2.12.3.14. helpContents()
Input: None.
Processing: Create the help contents modal dialog and set the dialog window to show.
Output: None.
3.2.12.3.15. aboutDPS()
Input: None.
Processing: Create the about dps modal dialog and set the dialog window to show.
Output: None.
3.2.12.3.16. miopenClickEventMethod()
Input: System Dependent.
Processing: Calls sendOpenFile() method.
Output: None.
3.2.12.3.17. micloseClickEventMethod()
Input: System Dependent.
Processing: Calls sendCloseFile() method.
Output: None.
3.2.12.3.18. miexitsatClickEventMethod()
Input: System Dependent.
Processing: Calls sendExitDPSSatellite() method.
Output: None.
3.2.12.3.19. miexitallClickEventMethod()
Input: System Dependent.
Processing: Calls sendExitAll() method.
Output: None.
3.2.12.3.20. mishowdisplayClickEventMethod()
Input: System Dependent.
Processing: Calls sendShowDisplays() method.
Output: None.
3.2.12.3.21. miswapdisplayClickEventMethod()
Input: System Dependent.
Processing: Calls swapDisplays() method.
Output: None.
3.2.12.3.22. milockClickEventMethod()
Input: System Dependent.
Processing: Calls sendLockDisplay() method.
Output: None.
3.2.12.3.23. miduplicateClickEventMethod()
Input: System Dependent.
Processing: Calls duplicateSlide() method.
Output: None.
3.2.12.3.24. midrawClickEventMethod()
Input: System Dependent.
Processing: Calls draw() method.
Output: None.
3.2.12.3.25. mihelpcontentsClickEventMethod()
Input: System Dependent.
Processing: Calls helpContents() method.
Output: None.
3.2.12.3.26. miaboutClickEventMethod()
Input: System Dependent.
Processing: Calls aboutDPS() method.
Output: None.

3.2.13. DPSSatelliteOpenFileDialog Class

3.2.13.1. Description
This class allows the user to browse the file system of the DPS/Base computer and remotely open a file there for presentation.
3.2.13.2. Fields
3.2.13.2.1. panel
Layout of the dialog window.
3.2.13.2.2. client
An object of DPSSatelliteClient class.
3.2.13.2.3. directorylist
A list of the directory content on the server.
3.2.13.2.4. locationbox
Contain path associated with the directory list.
3.2.13.2.5. upbutton
A button to advance out of a directory.
3.2.13.2.6. openbutton
A button to select a file.
3.2.13.2.7. cancelbutton
A button to close the dialog window.
3.2.13.2.8. directories
A list of folders and files under a directory.
3.2.13.2.9. filepath
The system path to the selected file.
3.2.13.3. Methods
3.2.13.3.1. DPSSatelliteOpenFileDialog()
Input: None.
Processing: Calls sendGetDirectories() method to get a list of returned directories. Then call initLayout() method.
Output: None.
3.2.13.3.2. initLayout()
Input: None.
Processing: Setup the panel layout, button and list with directories contain within it.
Output: None.
3.2.13.3.3. sendGetDirectories()
Input: None.
Processing: Sends a command to the DPS/Base Server to get a list of directories on the server. Set the list of directories to the returned list.
Output: None.
3.2.13.3.4. sendSelectedFilePath()
Input: None.
Processing: Sends a command to the DPS/Base Server with the filepath so the server can load up the file.
Output: None.
3.2.13.3.5. openButtonClickEventMethod()
Input: System dependent.
Processing: Calls sendSelectedFilePath() method and close dialog window.
Output: None.
3.2.13.3.6. cancelbuttonClickEventMethod()
Input: System dependent.
Processing: Close dialog window.
Output: None.
3.2.13.3.7. upbuttonClickEventMethod()
Input: System dependent.
Processing: Calls sendGetDirectories() method to get a new list of directories outside of the current working directory and update the directory list.
Output: None.

3.2.14. DPSSatelliteSlideControl Class

3.2.14.1. Description
This class provides the buttons and functionality for instructing the server to switch slides during a presentation.
3.2.14.2. Fields
3.2.14.2.1. SINGLE_DISPLAY
Constant value for single display, which is 0.
3.2.14.2.2. MIRROR_DISPLAY
Constant value for mirror display, which is 1.
3.2.14.2.3. CHAINED_DISPLAY
Constant value for chained display, which is 2.
3.2.14.2.4. firstbutton
First button.
3.2.14.2.5. previousbutton
Previous button.
3.2.14.2.6. nextbutton
Next button.
3.2.14.2.7. lastbutton
Last button.
3.2.14.2.8. displays
List of the displays.
3.2.14.2.9. client
An object of DPSSatelliteClient class.
3.2.14.3. Methods
3.2.14.3.1. DPSSatelliteSlideControl()
Input: None.
Processing: Prepare to set up the slide control buttons.
Output: None.
3.2.14.3.2. DPSSatelliteSlideControl(displays)
Input: A list of available displays.
Processing: Prepares to set up the slide control buttons.
Output: None.
3.2.14.3.3. initAllButtons()
Input: None.
Processing: Initializes all the slide control buttons.
Output: None.
3.2.14.3.4. sendFirstSlide()
Input: None.
Processing: Sends a command to the DPS/Base server to set the current display index to 0.
Output: None.
3.2.14.3.5. sendPreviousSlide()
Input: None.
Processing: Sends a command to the DPS/Base server to decrement the current display index by 1.
Output: None.
3.2.14.3.6. sendNextSlide()
Input: None.
Processing: Sends a command to the DPS/Base server to increment the current display index by 1.
Output: None.
3.2.14.3.7. sendLastSlide()
Input: None.
Processing: Sends a command to the DPS/Base server to set the current display index to the size of the display list minus one.
Output: None.
3.2.14.3.8. firstButtonClickEventMethod()
Input: System Dependent.
Processing: Calls sendFirstSlide() method.
Output: None.
3.2.14.3.9. previousButtonClickEventMethod()
Input: System Dependent.
Processing: Calls sendPreviousSlide() method.
Output: None.
3.2.14.3.10. nextButtonClickEventMethod()
Input: System Dependent.
Processing: Calls sendNextSlide() method.
Output: None.
3.2.14.3.11. lastButtonClickEventMethod()
Input: System Dependent.
Processing: Calls sendLastSlide() method.
Output: None.

3.2.15. DPSSatelliteSwapDisplayDialog Class

3.2.15.1. Description
An interface that will allow the user to swap a maximum of two displays.
3.2.15.2. Fields
3.2.15.2.1. actionlabel
A label to designate the action being performed.
3.2.15.2.2. displayalabel
A label to designate the first display being selected.
3.2.15.2.3. displayblabel
A label to designate the second display being selected.
3.2.15.2.4. displayacombobox
A drop down menu that allows the user to select an available display.
3.2.15.2.5. displaybcombobox
A drop down menu that allows the user to select an available display.
3.2.15.2.6. okbutton
A button that display execute the swap method and close the dialog.
3.2.15.2.7. cancelbutton
A button that will close the dialog box.
3.2.15.2.8. applybutton
A button that will swap the two displays but keep the dialog window open.
3.2.15.2.9. displays
A list of the current displays available for DPS.
3.2.15.2.10. displayindex
A index of the display
3.2.15.2.11. client
An object of DPSSatelliteClient class.
3.2.15.3. Methods
3.2.15.3.1. DPSSatelliteSwapDisplayDialog()
Input: None.
Processing: Initiates the buttons, labels, and combo boxes for the dialog window.
Output: None.
3.2.15.3.2. DPSSatelliteSwapDisplayDialog(displays,displayindex)
Input: List of displays.
Processing: Initiates the buttons, labels, and combo boxes for the dialog window. Assigns the input display to the class list.
Output: None.
3.2.15.3.3. initSwapDisplay()
Input: None.
Processing: Sets up the buttons, labels and combo boxes for the dialog window.
Output: None.
3.2.15.3.4. okbuttonClickEventMethod()
Input: System Dependent.
Processing: Sends message to DPS/Base server to perform the swap. Closes the dialog.
Output: None.
3.2.15.3.5. cancelbuttonClickEventMethod()
Input: System Dependent.
Processing: Closes the current dialog window.
Output: None.
3.2.15.3.6. applybuttonClickEventMethod
Input: System Dependent.
Processing: Sends message to DPS/Base server to perform the swap.
Output: None.

3.2.16. DPSSatelliteToolBar Class

3.2.16.1. Description
DPS/Satellite includes an icon toolbar which provides the user with several icon buttons to important functionality of the system.
3.2.16.2. Fields
3.2.16.2.1. displays
A list of displays.
3.2.16.2.2. displayindex
The number ID of the current display.
3.2.16.2.3. slideindex
The number index of the current slide.
3.2.16.2.4. bslidecontrol
An object of DPSSatelliteSlideControl class.
3.2.16.2.5. lockflag
Boolean value to determine the locked state.
3.2.16.2.6. swap
An object of DPSSatelliteSwapDisplayDialog class
3.2.16.2.7. duplicate
An object of DPSSatelliteDuplicateSlideDialog class.
3.2.16.2.8. whiteboard
An object of the DPSSatelliteWhiteBoard class.
3.2.16.2.9. clearbutton
Button for the toolbar.
3.2.16.2.10. showIDbutton
Button for the toolbar.
3.2.16.2.11. swapbutton
Button for the toolbar.
3.2.16.2.12. duplicatebutton
Button for the toolbar.
3.2.16.2.13. drawbutton
Button for the toolbar.
3.2.16.2.14. lockbutton
Button for the toolbar.
3.2.16.2.15. displaydropmenu
A dropdown menu.
3.2.16.2.16. displayIDlabel
A label for the display drop menu list.
3.2.16.2.17. client
An object of DPSSatelliteClient class.
3.2.16.3. Methods
3.2.16.3.1. DPSSatelliteToolBar()
Input: None.
Processing: Sets displays to new list object. Calls initToolBarButtons() method.
Output: None.
3.2.16.3.2. DPSSatelliteToolBar(displays,displayindex)
Input: A list of displays.
Processing: Sets displays to input parameter displays. Calls initToolBarButtons() method.
Output: None.
3.2.16.3.3. initToolBarButtons()
Input: None.
Processing: Creates objects of the buttons for the toolbar. Sets the button labels.
Output: None.
3.2.16.3.4. setDisplays(displays)
Input: A list of displays.
Processing: Sets list of displays to input parameter displays.
Output: None.
3.2.16.3.5. setBaseSlideControl(bSlideControl)
Input: An object of DPSSatelliteSlideControl class.
Processing: Sets object of DPSSatelliteSlideControl to input parameter bSlideControl.
Output: None.
3.2.16.3.6. sendSelectDisplay(displayID)
Input: A number ID.
Processing: Sends message to DPS/Base server to change the display to the input parameter display.
Output: None.
3.2.16.3.7. sendLockDisplay()
Input: None.
Processing: Sends message to DPS/Base server to lock display. Changes lockbutton label to "UNLOCK". Calls bSlideControl's enableAllButton() method to disables all bSlideControl's buttons.
Output: None.
3.2.16.3.8. sendUnlockDisplay()
Input: None.
Processing: Sends message to DPS/Base server to unlock display. Changes lockbutton label to "LOCK". Calls bSlideControl's enableAllButton method to enables all bSlideControl's buttons.
Output: None.
3.2.16.3.9. showIDbuttonClickEventMethod()
Input: System Dependent.
Processing: Send message to DPS/Base server to show display IDs.
Output: None.
3.2.16.3.10. swapbuttonClickEventMethod()
Input: System Dependent.
Processing: Sets swap to new object of DPSSatelliteSwapDisplayDialog class.
Output: None.
3.2.16.3.11. duplicatebuttonClickEventMethod()
Input: System Dependent.
Processing: Sets duplicate to new object of DPSSatelliteDuplicateSlideDialog class.
Output: None.
3.2.16.3.12. drawbuttonClickEventMethod()
Input: System Dependent.
Processing: Uses DPSSatelliteWhiteBoard object whiteboard to call its method getSlidePicture(). Calls its setSlidePicture() method after receiving the return object.
Output: None.
3.2.16.3.13. lockbuttonClickEventMethod()
Input: System Dependent.
Processing: Calls unlockDisplay() if lockflag is true. Calls lockDisplay() if lockflag is false.
Output: None.
3.2.16.3.14. displaydropmenuSelectEventMethod()
Input: System Dependent.
Processing: Calls selectDisplay() method with selected item's index as input parameter.
Output: None.
3.2.16.3.15. clearbuttonClickEventMethod()
Input: System Dependent.
Processing: Calls DPSSatelliteWhiteBoard object whiteboard method clear() to clear the white board.
Output: None.

3.2.17. DPSSatelliteWhiteBoard Class

3.2.17.1. Description
An interface element which can be drawn on using a pointing device. Drawings made will be reflected on the appropriate display device. This class will be a subclass of an interface element native to the development system which accepts pointing device coordinate input.
3.2.17.2. Fields
3.2.17.2.1. slidepicture
A picture object.
3.2.17.2.2. client
An object of DPSSatelliteClient class.
3.2.17.3. Methods
3.2.17.3.1. DPSSatelliteWhiteboard()
Input: None.
Processing: Prepares to accept pointing device coordinate input.
Output: None.
3.2.17.3.2. sendEnableDrawing()
Input: None.
Processing: Enables the drawing interface, and sends a command to the DPS/Base server to allow drawings to appear on the display. Also, obtains an image of the slide being drawn over from the DPS/Base server, and sets the background of the interface element to that image.
Output: None.
3.2.17.3.3. sendDisableDrawing()
Input: None.
Processing: Disables the drawing interface, and sends a command to the DPS/Base server to remove the drawing from the display.
Output: None.
3.2.17.3.4. sendDrawPoint(x,y)
Input: Coordinates of the pointing device cursor.
Processing: Sends a command to the DPS/Base server to draw a point at the coordinates provided in the current color.
Output: None.
3.2.17.3.5. sendChangeColor(r,g,b)
Input: Red, green, and blue value of a color.
Processing: Sends a command to the DPS/Base server to change the drawing color of the whiteboard.
Output: None.
3.2.17.3.6. sendClearBoard()
Input: None.
Processing: Sends a command to the DPS/Base server to clear the display of drawings made by the whiteboard.
Output: None.
3.2.17.3.7. sendGetSlidePicture()
Input: None.
Processing: Sends a command to the DPS/Base server to send a picture representation of the the display's current slide.
Output: A picture of the display's current slide.
3.2.17.3.8. setSlidePicture(slidepicture)
Input: A picture of the slide to be drawn on.
Processing: Sets picture object to the input parameter slidepicture.
Output: None.

4. User Interface Design

4.1. DPS/Base

The DPS/Base user interface is deigned to be user friendly. There are toolbar buttons to allow the user easy access to all the functionality of DPS. The interface consists of 5 parts: the menu bar, toolbar, slide view, slide control, and the status bar.

4.1.1. Menu Bar

The menu bar allows the user access to the functionalities of DPS. There are 3 menu items: File, Tools, and Help.

The File menu item consists of 4 submenu items: Open File, Recent Files, Close, and Exit. Recent Files submenu item displays another submenu with the list of recent files that were opened previously.

The Tools menu item consists of 4 submenu items: Current Display, Show Display IDs, Swap Displays, and Set Password. The Current Display submenu item displays another submenu with submenu items Draw, Duplicate, and Lock.

The Help menu item consists of 2 submenu items: Help Contents, About DPS.

4.1.2. Toolbar

The toolbar consists of 5 toolbar buttons for Show IDs, Swap Displays, Duplicate Slides, Draw, and Lock. Each of these toolbar buttons calls the function to perform the functionality when clicked.

There is a drop-down menu list of displays on the opposite end of the toolbar. The menu list contains all the display IDs detected by DPS.

4.1.3. Slide View

The slide view consists of picture files of each slide. Each picture is clickable by the user. A scroll bar appears if the pictures the slide view layout.

4.1.4. Slide Control

The slide control consists of 4 buttons: To Start, Back, Next, To End. The buttons are used to control the presentation.

4.1.5. Status Bar

The status bar displays the file name and current slide index of the displays.

4.2. DPS/Satellite

The DPS/Satellite user interface is also deigned to be user friendly. There are buttons to allow the user easy access to all the functionality of the DPS. The interface consists of 4 parts: the menu bar, action panel, draw view, and the slide control.

4.2.1. Menu Bar

The menu bar allows the user access to the functionalities of the DPS. There are 3 menu items: File, Tools, and Help.

The File menu item consists of 4 submenu items: Open File, Recent Files, Close, and Exit. Recent Files submenu item displays another submenu with the list of recent files that were opened previously.

The Tools menu item consists of 3 submenu items: Current Display, Show Display IDs, and Swap Displays. The Current Display submenu item displays another submenu with submenu items Draw, Duplicate, and Lock.

The Help menu item consists of 2 submenu items: Help Contents, About DPS.

4.2.2. Action Panel

The action panel consists of 6 toolbar buttons for Show IDs, Swap Displays, Duplicate Slides, Draw, Clear, and Lock. Each of these buttons calls the function to perform the functionality when clicked.

There is a drop-down menu list of displays on the opposite end of the toolbar. The menu list contains all the display IDs detected by DPS.

4.2.3. Draw View

The draw view behaves similar to Microsoft Paint. The user can select the drawing color from the color panel.

4.2.4. Slide Control

The slide control consists of 4 buttons: To Start, Back, Next, To End. The buttons are used to control the presentation.

5. Glossary

5.1. Advance

Move to the next slide in the presentation.

5.2. Blank

Removing visible content from the display screen.

5.3. Chained Display

A display type which permits the user to show a presentation across multiple displays in ordered succession.

5.4. Combo Box

A text entry field which also contains a drop-down menu for preselected entries.

5.5. Cursor

A graphic representing the current location of the device cursor in relation to the screen.

5.6. Dialog

A small message window which usually asks a simple yes/no question

5.7. Display ID

A number assigned to each display to give it a unique identification factor.

5.8. Displays

Devices such as monitors and projectors connected to a computer for the purpose of displaying graphical information.

5.9. DPS Server

Another name for the DPS/Base package, particularly when discussing network communications.

5.10. DPS/Base

The DPS software package which is designed for use on the desktop computer system hosting the multiple display devices.

5.11. DPS/Satellite

The DPS software package which is designed for use on Pocket PC 2003.

5.12. File path

A method by which the location of a file can be determined.

5.13. IP Address

Commonly, a series of numbers used to route networking traffic between two hosts. The IP address is comprised both of a network number and a host number. The subnet mask determines where the network address stops and the host address starts.

5.14. Locking

The ability to pause or freeze a display where no changes or modification to the display can be made. Any changes or modification to this display will be skipped to the next display.

5.15. Menu

A list of available options which can be selected from.

5.16. Microsoft PowerPoint

A tool produced by the Microsoft Corporation which allows its users to design and display a slide-based presentation using a computer.

5.17. Mirrored Display

Showing the same presentation on more than one display.

5.18. Personal Data Assistant (PDA)

A small handheld device that is essentially a small computer and display. The device is controlled using a stylus and touch-sensitive display screen. These devices are commonly used to store personal data such as address books, appointment calendars, and similar information.

5.19. Projector

an optical instrument that projects an enlarged image onto a screen.

5.20. Screen Drawing

The ability to use a pointing device such as a mouse or a stylus pen to freely draw anything on the screen and show it on the display.

5.21. Single Display

Refers to how documents are shown on only one display.

5.22. Slide Based

Refers to documents which acts as slides. For example, Microsoft PowerPoint.

5.23. Swap

To exchange one ID for another.

5.24. Toolbar

Panel with quick launch buttons for the most used features.

5.25. Whiteboard

The drawing interface on both the DPS/Base and the DPS/Satellite.