Winter Quarter 1996 February 8, 1996
Document Author:
Project Sponsor:
| Yakko Wakko and Dot Profile Team:
Manager: Harry Marlin |
The scope of our design document can be found here.
The following are documents relating to Java applets that our group uses for tutorial and references.
The YWD Dayplanner is in the form of a Java Applet. When the "Open Dayplanner" command is executed, the WWW Server downloads the applet to the client. The client receives the download, compile the applet, and execute the program. Within the applet exists five components of the dayplanner. As the user uses various functions in the dayplanner, different component work together to provide services to the user.
The Dayplanner Parser is the object which contains all the information. It is the provider of information to the various modules. As modules requests information from the Dayplanner Parser, the Dayplanner Parser returns the necessary information the client needs. When the dayplanner is first executed, the Dayplanner parser communicates to the HTTP Server for the .dayplan information fron the user's account. The .dayplan is then parsed and applicable data is stored within the Dayplanner Parser object. At this point, the Dayplanner will hold the all of the user's schedule information.
If the user requests an overlay on another person's schedule, the Dayplanner Parser will once again request the HTTP Server for information regarding the person's calendar. The HTTP Server returns the information that the Parser requested. The Parser then provides the new overlay data to the Overlay Display.
The Month Display, at startup, receives the current month information from the Parser. The Month Display then displays the information at the Month Display section of the Dayplanner.
The Daily Display receives the information from the Parser. The Daily Display then take the list of schedules and display the time section and the free-text of the Daily Display. The Scheduled Time and Free-Text are linked such that if the user clicks on a time, the free-text section will scroll to the specified time with description on the appointment that is taking place.
The Overlay Display receives information from the Dayplanner regarding the list of schedules for overlay. At startup, the overlay receives only the user's schedule. The Overlay Display then shows the block of time the user has appointments and also shows the free time block available.
The Group Overlay option, when invoked, sends the group that the user wishes to display overlay information for to the Dayplanner Parser. The Dayplanner Parser, after receiving the information from the HTTP Server, sends the information to the Overlay Display to display.
The Add Calendar option, when invoked, sends the URL of the person that the user wishes to add to the Overlay Display. The Dayplanner Parser then sends the request to the HTTP Server. After receiving the schedule information from the server, the Dayplanner Parser then sends the new overlay to the Overlay Display for viewing.
DayplanParser is the superclass for many of the objects that will hold the dayplan data. It provides a uniform interface for its subclasses. DayplanParser does not specify any data (these are subclass responsibility), but it does contain methods to set and retrieve data stored within it. Specific data types within the subclasses will require overloading of these inherited methods.
DayplanData is responsible for parsing and storing the information in the dayplan file(s). It contains classes Repititions, EntryList, DayplanData, TimeAdjustment, and Options. Upon creation, it expects to be passed a reference to one or more dayplan format files. It parses the information in the file(s). It creates classes to store the parsed information as needed. DayplanData handles requests for information from the user interface. When such a request is made, it refers to its component objects to find the answer.
Repititions is a data holding object. It holds a value indicating the number of times a given entry is to be carried into following days. Upon creation, it expects to be passed a value corresponding to the number of times a given Entry is to be repeated. It does not perform any processing.
DayplanData is a data holding object. It holds information about printers, mailers, users, and number of users. Upon creation, it expects to be passed information about the server's printers, mailers, and the users of the calendar applet. It does not perform any processing.
TimeAdjustment is a data holding object. It holds an adjustment value to be applied to the system clock. Upon creation, it expects to be passed the calibration offset of the server's system clock. It does not perform any processing.
EntryList is a hash table of Entry objects. It has methods to create, modify, and access its component Entry objects. Upon creation, it expects to be passed a list of entries from the dayplan file(s), each with associated data. With each entry, EntryList creates an Entry instance, and passes it the data associated with that dayplan file entry. EntryList can be queried to return a list of its Entry instances, or to provide information about a specific Entry. Requests for information about a specific Entry are passed to that Entry.
Entry contains an OptionArray. It also stores and provides data about a specific dayplan file entry, including triggerDate, triggerTime, duration, etcetera. Upon creation, it expects to be passed a list of data. Entry then stores the information it needs, and creates a component instance of the OptionArray class, which holds the remaining information from the dayplan file(s). Upon recieving a request for information, it will pass back the information if it has it, or will forward the request to its OptionArray instance.
OptionArray is an array of other objects, including Options, PrintOptions, and TriggerFlag instances. The component objects are responsible for holding the data parsed from the dayplan file(s). OptionArray has methods to access its component classes. Upon creation, it expects to be passed a list of values for its component classes. With these values, it creates its component classes and stores their respective values in each.
Options is a data holding object. It holds the flag and header information parsed from the dayplan file(s). Options is a part of an OptionArray. Upon creation, it expects to be passed a list of flags and headers to store. It does not perform any processing.
TriggerFlag is a data holding object. It holds the early and late warning tolerances for warnings regarding an appointment. This information is parsed from the dayplan file(s) by other objects. TriggerFlag is a part of an OptionArray. Upon creation, it expects to be passed the values for early and late warnings. It has a method to set an alarm, which may be used upon creation, if the early and late values warrant it.
PrintOptions is a data holding object. It holds print spooler string parsed from the dayplan file(s). PrintOptions is a part of an OptionArray. It expects to be passed the string upon creation. It does not perform any processing.
CalendarView is a container for other objects. It contains MonthView, DayView, and OverlayView objects. Upon creation, it queries DayplanData for dayplan file information. With this information, it creates the component views. When a component view requests further information, CalendarView queries DayplanData for the appropriate data, and passes the results back to the component view.
Monthview holds the monthly view of the calendar. It contains a MonthlyButtonLayout. It interprets pointer input messages from MonthlyButtonLayout, and uses this information to form update requests and queries sent to CalendarView. Upon creation, it expects to be passed a list of the days in the current month which have appointments. It passes this list on to MonthlyButtonLayout for use.
MonthlyButtonLayout contains a group of buttons, each of which corresponds to a day of the month. Upon creation, it expects as a parameter a list of all the days in the month which have an appointment. MonthlyButtonLayout monitors for pointer input, and passes that input back to MonthView for interpretation. It also waits for update messages from MonthView, which cause it to redraw with the new information.
DailyView holds the daily view of the calendar. It contains a DailyButtonLayout. It interprets pointer information passed from DailyButtonLayout, and uses this information to form update requests and queries sent to CalendarView. Upon creation, it expects to be passed the text of the current day's schedule. It passes this text on to the DailyButtonLayout.
DailyButtonLayout contains a row of buttons, each of which corresponds to an hour of the day. It also contains a text box which displays the appointments of the day. It has methods to draw the buttons and text box, and to monitor for input. On the right side, DailyButtonLayout has a slider. The buttons and slider control the alignment of the text in the text box. DailyButtonLayout waits for new text from DayView.
OverlayView contains an OverlayLayout. Upon creation, OverlayView expects a list of the hours and appointments for each of the users. It creates an instance of OverlayLayout and passes it this list.
OverlayLayout contains a picture of the overlay information of the user. Upon creation, it expects a list of the hours with appointments for each of the users of the calendar system. It then draws and displays a diagram of the free and filled times for all of the users.
This section presents a general overview of the user interface design for the Yakko, Wakko, and Dot Dayplanner. The physical environment and the specific screen design is outlined. The semantic and syntactic details of the user interface design are explained as well.
The World Wide Web provides a medium where the user can use any platform to access information. By creating an application that is accessible via the WWW, we eliminate the problem of platform compatibility. Also, since the information on the WWW is stored electronically, the user do not have to worry about losing the dayplanner, unlike the problem people faces when using the paper/pencil dayplanner.
By placing the calendar on the WWW, the user can access his/her calendar anywhere in the world as long as there exists an internet connection and a web browser. The Java applet is a newly introduced program that provides security to the server. This reduces the chance an unauthorized user receives access to someone else's calendar.
The YWD Dayplanner is designed for anyone to use with ease. No previous knowledge of (or experience with) computers is required in using the YWD Dayplanner. It is of utmost importance for the interface to be easily understandable. Anyone who use any type of dayplanner will be able to understand how to view, edit, and overlay various schedule.
Many functionalities exists for the user interface. When the user first enters the system. The user will see the Dayplanner Screen.
The following are detailed descriptions of the user interface:
(Note: Postscript Format, 1 Page Each)
The problem domain component of the project has three simple test cases. Each case will be composed of a number of dayplan format files. The files will vary in size from tiny to fairly large.
Top | Plan | Req Doc | Design Doc | Prototype | History | Revision |