14,42c14 < The scenarios in this section cover full details of file-related commands, some < of which have been introduced in preceding sections. There are two file < command menus to be covered, one in the regular-user Calendar Tool and the < other in the Calendar Tool Administration program. Regular-user file commands < are covered in Sections < < 2.8.1 < < through < < 2.8.7. < < Administrator file commands are covered in < < 2.8.8 < < through < < 2.8.11. < < The concluding Sections < < 2.8.12 < < and < < 2.8.13, < < cover general topics relevant to both regular-user and administrative files. --- > Explain the deal with calendars, files, and their names up here. 44c16 < --- > 46c18 < 2.8.1. Files Used by the Calendar Tool --- > 2.8.1. New, Open, Close, and Close All 50,57c22 < There are two types of files used by the regular-user Calendar Tool -- calendar < files and settings files. Calendar files contain the following information: <

<

>

> OK, OK -- it looks like we've covered a lot of the ground about > "current" in the new(ish) > > Section 2.3.6.4. 70c49,51 < ) --- >

> Also need firm definition of "current", to whit: >

    72,76c53,54 < filter settings and custom filters ( < < Section 2.3.4.3 < < ) --- > current "calendar" is the listed at the top of the `View Calendars' > list, as determined ... fell the fuck off. 78,82c56,60 < options ( < < Section 2.7 < < ) --- > Question: If the current window is not a calendar, then is there still a > current calendar? If so, it is presumably the calendar, if any, who's window > is the topmost in the windows list. But what of the banner in the menubar in > this case? Does it, potentially confusingly, list the name of the calendar > most recently open? OK, the next item addresses these questions. 84,88c62,63 < page setup and print settings ( < < Section 2.8.6 < < ) --- > OK, here's the deal about banner labeling, I think: >
      90,94c65,74 < windowing mode ( < < Section 2.3.6.2 < < ) --- > The menubar banner always contains the name of the calendar with the active or > most recently active window (as defined by the order of windows in the > `Windows' menu. >
    1. > When calendar has been saved to a file, the calendar name is the same as its > file name. >
    2. > When a (new) calendar has not been saved to a file, its name is "no > name" or "no name [i]" for i = 2 to the number > of unsaved saved calendars. 96,119c76,77 < state of open windows ( < < Section 2.3.6 < < ) < < < All of this information is stored in a single calendar file for each calendar < created by the user. In this way, a single file encapsulates scheduled items < and all other calendar-specific information that the user has defined for that < calendar. "For that calendar" means that each calendar has its own setting < information, but no settings for other calendars that may be open at the same < time. In particular, the calendar-specific information for the state of open < windows means the windows open for a particular calendar, not for any other < open calendars. The calendar-specific nature of the different types of < information is explained further in the sections cited parenthetically in the < immediately preceding list. <

      < The other type of Calendar Tool file contains settings that exist independent < from any individual calendar. These settings are used as the defaults when a < new calendar is created and to record setting values that apply to a whole < Calendar Tool session, not just an individual calendar. The contents of a < settings file are the following: <

        --- > When the >
    121c79,128 < Calendar-specific settings: --- > Some more terminology: windows are "active"; calendars and files are "open". >
>

> Zero or more calendars may be open at any time. Need to be clear about the > distinction between an open calendar versus an open calendar file. I'm pretty > sure it's pretty much the same distinction as a buffer and file in emacs, > however it seems that with the requirments we've developed this far, a calendar > doesn't get a name until it's stored to a file, i.e., the calendar's name is > synonymous (and co-existent with) its file name. This may actually point to a > problem we've not yet (I don't think) adequately addressed, viz., having more > than one unsaved calendar open at the same time, i.e., as the result of > executing `File New' more than once without executing any saves for the new > calendars. >

> The name of the currently active file is listed in the banner of the command > menubar. When no calendar file is open, the file name in the banner is listed > as "none" (or perhaps, per musing above, something like "no name" is > better). If the active calendar is that of another user, that user's name is > displayed in place of the file name, in the form "OTHER USER: > user name". >

> When exactly one calendar file is open, its name is listed only in the banner > of the command menubar, not in any other display window. When two or more > calendar files are open, the banner of every display window is augmented with > the name of the file on which the displayed data are or will be stored. >

> The effect of multiple files on the windowing modes is as follows. Every > window says what file it's associated with. The current file is defined as the > file associated with the current window. Whenever a different window becomes > active, the current file is changed to the file of that window. The banner of > the menubar is changed as necessary dynamically. The default per-level > windowing mode applies separately to each >

> 22aug01 Note: The problem with every window having the file ID in the > banner is that with the newish listing and filtering banner paraphenalia, the > banners may get too crowded. So, let's leave the filename out of the > individual window banners and have it just be in the menubar banner, updating > as noted in the preceding paragraph. >

> This paragraph is now WRONG. Note that File Close and Window Close are > different commands. The former closes a file and all windows containing views > of that file's data. The latter closes only the current window and does not > close the file (ever), even if the window is the last or only window open for > (i.e., belonging to) a particular calendar. >

> Mention that the solid/grey type deal applies to options loading, but > instead of calendar file types shown in solid type, calendar option files are > shown in solid type. >

> Some `File Close' details: 124,128c131,132 < categories <

  • < custom lists <
  • < filter settings and custom filters --- > closing a file-less calendar with unsaved changes (items or other) does offer- > to-save-as 130,134c134,135 < options <
  • < page setup and print settings <
  • < windowing mode --- > closing an filed calendar with unsaved changes (items or other) does offer-to- > save 136c137,138 < state of open windows --- > closing a calendar that is associated with a connected host warns that the > connection will be terminated if the close proceeds. 138,149c140,147 <
  • < Session-wide settings: <
      <
    • < global options, described in < < Section 2.7.6 < <
    • < settings defined in the host-connection table, described in < < Section 2.6.6.1. --- > where "or other" is changes to categories, custom lists, custom filters, > options, or in any pending scheduling dialog (maybe for the last of these, or > maybe just have all pending scheduling quietly canceled). > > >

      > 2.8.2. Save, Save As, Save All >

      150a149,151 >

      > 6aug03 Notes: >

        152,156c153,164 < the names of all open calendars, i.e., the names in the < View->Calendars submenu described in < < Section 2.3.6.4 < --- > If user sames when not connected, it obviously can't be written to the remote > host. When user reconnects, the writing to the host happens automatically as > part of the connection process. >
      • > `Save As' needs to issue a warning when the current calendar is > associated with a connected host. The warning should allow the user to stay > connected, with the host connection table automatically updated. >
      • > Whether local-to-host copying is full or incremental is up to the implementors; > the of the local-to-host copy operation is that the two calendars must be > identical when the copy operation is complete, and some reasonable performance > standards must be met, where we need to figure out what "reasonable" is. 158,172c166,209 <
      < The calendar-specific settings in a settings file are a separate version of the < same information that is contained in each calendar. Their existence in the < settings file is for permanently recording settings used in new calendars, and < to allow settings to be conveniently copied among different calendars. The < session-wide settings define information that applies across all calendars < during a Calendar Tool execution session. < < Section 2.8.5. < < describes how settings files are saved and loaded. <

      < Calendar and settings files may be stored in any file directory accessible to < the user. However, there is a specific directory called the Calendar Tool < user directory used for the following purposes: --- >

      > Another 4aug03 Note. OK, I think I want to take back what I > say in the next paragraph. I think it's appropriate to require that each user > calendar be stored in a separate file in a known (settable) dir, with some > reasonable convention for file name, such as the user's ID plus ".cal" > extenstion. >

      > 4aug03 Note (if not mentioned elsewhere): Implementors can > choose how they implement the central host repository, e.g., having a separate > cal file for each user or having all user cals in the same file, or some other > implementation. There is no requirement that a user be able to view the > contents of a calendar in the central repository as a raw file in any form. > Operatioally, the user has her own local calendar as a file with a known name. > On the remote host, the publically-visible contents of that calendar > are made available to other users through the calendar tool, via the > operational effects of connecting and file saving described herein. Again, > however, there is no requirement for the user to see a specific calendar file > on the central host. >

      > When the user saves and the current calendar is connected to one or more > (active) hosts the calendar is written to those hosts. >

      > Note that `Save' and `Save As' are disabled when the current > window is that of another user's or group's calendar. >

      > NOTE: Given the new unified view of options as just another type of > "other data", there should not be a speific offer-to-save for options that is > fundamentally different that offer to save other unsaved changes, such as > categories or filters. Therefore, as noted somewhere abouts, we can mention, > but not really make special cases for, the kinds of unsaved changes that exist > when the offer-to-save dialog comes up. >

      > If the user exectues `File Save' for a calendar with unapplied aux > data, the file-save dialog contains the message and radio buttons: >

      >         "There are X changes for this calendar."
      >          (x) Apply these changes before saving
      >          ( ) Do not apply these changes before saving
      > 
      > If the user chooses the first radio option, the options are saved and the state > of the otions for the saved calendar go from unsaved to saved, which will be > reflected in the options dialog. If the user chooses the secon radio option, >

      > Some `Save As' Details: 175,180c212 < the location of the Settings file opened when the Calendar Tool starts < up <

    • < the initial default directory for the `File->Open', File->Save < As', `File->Load Settings', and `File->Save Settings' < dialogs --- > dir names shown in regular black type 182,183c214 < the location of calendars named in the connection table, when the calendars < have no leading pathname in the table --- > all file names shown in grey, but still selectable 185,186c216 < the location where users presumably store their calendar files, though this is < not required --- > warning if OK pressed and extant fill would be overwritten 188,226d217 <

      < Whenever the Calendar Tool is invoked, it opens a single settings file to < initialize the session-wide settings for the ensuing session. The name of this < file is "Settings", and it must be located in the Calendar Tool user < directory at the time the `New' command is executed. The user < directory also has a default location, determined at installation time as < described in < < Section 2.15.1. < <

      < The user can save additional copies of setting files, which are useful for < copying settings from one calendar to another. However, the user cannot change < the name or location of the default file named "Settings" that the < Calendar Tool opens initially at start up. The user can change the < location of her own Calendar Tool user directory, as an option. Doing so is < described in < < Section 2.7.6. < <

      < There are no naming requirements for calendar or settings files, other than the < requirement for the fixed name and location of the "Settings" file. < In particular, there are no requirements for filename extensions. If the user < chooses to give calendar files an extension, or if a particular operating < environment recommends or requires that application files have known < extensions, then the recommended extension for calendar and settings files is < ".cal". If this extension conflicts with that used by some other < application, then the installation process can assign a particular extension to < be used in a particular operating environment. <

      < The internal data format of calendar and settings files is not specified in < these requirements, and therefore left to the implementors. In particular, < there are no requirements that these files be editable as plain text or other < external data format understandable to application programs other than the < Calendar Tool. It is required that the Calendar Tool be able to identify < calendar and settings file as such, so they can be distinguished from each < other and from other types of files. The specific means to accomplish this < identification is left to the implementors. 228c219 < --- > 230c221 < 2.8.2. New and Open --- > 2.8.3. Save Config 234,529c225,244 < When the user executes the `New' command in the `File' menu, < the system responds by creating a new calendar and displaying its initial view. < The default initial view is at the month level, with today's date highlighted. < The user can change the default initial view for new calendars with the view < option described in < < Section 2.7.6. < <

      < The name of a new calendar is "unnamed", until the user saves it with < a different name. Each successive application of New, with no < intervening save, creates a calendar named "unnamed[N]", for < N = 2 to the number of unnamed calendars. <

      < A new calendar has no scheduled items except for system-defined events. The < user can change the visibility of system-defined events with the option setting < described in < < Section 2.7.4.3. < < The setting effects only whether system-defined events are visible in calendar < displays, not their physical presence in the calendar. < < Section 2.11.16 < < describes exactly what the system-defined events are. <

      < The calendar-specific settings for each new calendar are those defined in the < Settings file in the Calendar Tool user directory. If there is no < Settings file, settings have the built-in default values defined when < the Calendar Tool is installed. Table 15 shows the built-in default settings < for all new calendars, in the absence of a Settings file. < <
      <
      <


      <
      < < < < < < < < < < < <
      Type of setting < Initial value < Where illustrated <
      categories < only holidays defined < < Figure < < 7 <
      custom lists < none defined < < Figures < < 37 < and < < 38 <
      < filter settings and <
      < custom filters <
      < all items shown, <
      < no custom filters defined <
      < Figures < < 51 < and < < 52 <
      options < various < < figures in < < Section 2.7 < showing initial values in options-setting tabs <
      < page setup and <
      < print options <
      < platform-dependent defaults < < Figures < < 303 < and < < 304 <
      < windowing mode < per-level < < Figure < < 71 <
      < state of open windows < < monthly view shown, < < Figure < < 1 <
      <

      Table 15: Built-in default settings for new calendars, absent < a Settings file. <
      <


      <

      < <
      < <

      < < A new calendar becomes the current calendar, and the system performs all of the < actions associated with making a calendar current. These actions are described < in < < Section 2.3.6.4. < < Before the user saves a new calendar, it has no associated file. This affects < the behavior of file-save operations, as discussed in < < Section 2.8.4. < <

      < When the user selects the `Open' command in the `File' menu, < the system displays a dialog of the form shown in Figure 287. < <
      <
      <


      < <

      < <

      <

      Figure 287: File open dialog.

      <
      <
      <
      < < The dialog reflects the state of the .CalendarTool directory after the < user has saved two calendar files -- DepartmentCalendar and < PersonalCalendar. The `Directory' pulldown lists the < components in the file path to the current working directory. As explained in < < Section 2.8.1, < < the default directory path for the file-open dialog is the Calendar Tool user < directory for the current user. <

      < The user may type the name of the file to open or select it from the scrollable < list of file names. When the user selects the pulldown arrow in the < `Directory' field, the system displays the directory path, as shown in < Figure 288. < <
      <
      <


      < <

      < <

      <

      Figure 288: File open dialog with directory path displayed. <

      <
      <
      <
      < < The user may select from the directory list to navigate to another directory, < whereupon the system displays its files and subdirectories in the scrollable < list. The names of readable calendar files and readable subdirectories are < shown in regular type in the file list. The names of all other files are shown < in grey type, indicating they are disabled for selection. This means the user < cannot open an unreadable calendar file, an unreadable directory, or any type < of non-calendar file. The user can load a settings file, but this is done with < the `Load Settings' command, described in < < Section 2.8.5 < <

      < The user may navigate into a subdirectory by selecting its name in the list and < pressing `OK'. The `OK' button is enabled when there are one < or more subdirectories in the scrollable list. When the user presses < `OK' for a selected directory, the system displays its contents in the < scrollable list. <

      < When the user selects a specific file in the list, the system enters its name < in the `File' field and enables the `OK' button, if it was < not already. When the user presses `OK', the system opens the < selected file if it is not already open. Once opened, the system displays the < file's initial view, per its most recently saved settings, including in < particular the option setting for its initial view window(s) (see < < Section 2.7.4.3 < < ). The opened calendar becomes the current calendar, and the system performs < all of the actions associated with making a calendar current, as described in < < Section 2.3.6.4. < < If the selected file is already open, pressing `OK' in the open dialog < has the same effect as selecting the calendar's name in the < `Calendars' list, described in < < Section 2.3.6.4. < < Double clicking on a calendar file name or directory name is a shortcut for < selecting that name and pressing `OK'. <

      < The user may type the name of a calendar file or directory in the < `File' field. As the user types, the scrollable list is scrolled to < the alphabetic position in the list nearest but not after the place where the < thus-far typed name appears or would appear in the list. If the user types the < complete name of an existing calendar file or readable directory, the effect is < the same as when the user selects the name by clicking in the list. If the < user types the name of a non-existent file, the user may press `OK', < whereupon the system creates a new file of the entered name. This is < effectively a short cut for executing `File->New' followed immediately < by `File-Save'. <

      < Since unreadable files, unreadable directories, and non-calendar files are < disabled in the file-open dialog list, the user cannot select one of these. < However, the user may type the name of an unreadable file, unreadable < directory, or non-calendar file in the `File' field. If the user does < so, the system disables the `OK' button, since these files or < directories cannot be opened. If the user continues typing so that the name is < not an unreadable calendar file, unreadable directory, or an existing non- < calendar file, the system re-enables the `OK' button. <

      < When a calendar is opened from a saved file, the name of the calendar is < synonymous with its root filename. The root filename is the name of the file, < less any leading file path and less any filename extension. For example, the < name of the calendar stored in the file < "/users/home/dcollins/.CalendarTool/DepartmentCalendar.cal" is < "DepartmentCalendar". The Calendar Tool provides no command to change < the name of a calendar independent from its filename. In particular, the only < way the user can name an unnamed calendar is to save it to a file. <

      < A new or just-opened calendar has today's date highlighted with a darkened < border, as illustrated in < < Section 2.3.1. < < No date is selected as a viewing target, in the sense of selection defined in < < Section 2.11.9. < <

      < If an opened calendar is associated with one host in the host connection table < and the `Auto-connect on file open' option is on, then the system < initiates the host connection. The connect operation proceeds as described in < < Section 2.6.6.1, < < as if the user had pressed the `Connect' button in the host connection < table. The auto-connect option is described in < < Section 2.7.5. < < If an opened auto-connect calendar is associated with more than one host, the < system displays the dialog shown in Figure 289. < <
      <
      <


      < <

      < <

      <

      Figure 289: Select from multiple associated hosts.

      <
      <
      <
      < < The name string is the name of calendar just opened. The < dialog informs the user that since the calendar is associated with more than < one host, the user must run the `Admin->Connect' command in order to < select the host to connect to. <

      < The `New' and `Open' commands are always enabled in the file < menu. The following is a summary of the when the `OK' button is < enabled in the file-open dialog: --- > It's more than just the window config since it includes what files are open. I > think the easiest way to define exactly what save config does is as a script > file. This way we can deal with the tricky issue of having the dispaly look > the same, but having the displayed content all be relative to today's date. If > for some reason the user would like to have a config that is absolute datewise, > of relative some other date than today, then she can tweak the generated script > from `Save Config', or of course write her own start-up script from > scratch. >

      > An issue we need to deal with is the relationship between the option setting of > what we call "the standard default view" in the ui-overview. Here's what I > think could work well: There is an option called `Start-Up View Level' > that specifies the default viewing level from item to year. If there is no > init file in the user's home dir (per OS-specific definition of "home dir" and > as discussed further in Admin section), then the Cal Tool comes up a la > described in the initial screen config in the ui-overview. Viz., there's a > menubar and zero or one view window at the level specified by the setting of > `Start-Up View Level', open on today's date. If there is an init file > or the tool is invoked with an start-up file in the command line or from a > start-up file icon, then we could do one of two things: 532,539c247,268 < when the user has selected the name of a readable calendar file in the < scrollable list <

    • < when the user has selected the name of a readable directory in the scrollable < list <
    • < when the user has typed anything in the `File' field, except for the < complete name of an unreadable calendar file or existing non-calendar file --- > The system displays no windows automatically, thus ignoring entirely > the setting of default-init-view-level; this means that the mere > existence of an init file means there's no default display, and I don't think I > like this; so let's try thing b ... >
    • > The system proceeds to put up the initial window per default-init-view- > level, and then goes about executing the init file. If the user really > wants to get rid of the default initial window(s), she puts this code at the > beginning of the init file, which code closes the initial window: >
      > ViewWindows(1);
      > FileClose();
      > 
      > This works because of the rule that says the default window is put up before > the init file is run, which means therefore that it's window 1 in the windows > list, hence the arg of 1 to ViewWindows (assuming lists start from 1 > like humans think, not from 0 like geeks think). But given this, here's an > even simpler bit of code to do the same thing: >
      > FileCloseAll();
      > 
      > which works for hopefully obvious reasons. 542,557c271,274 < As explained in < < Section 2.3.6 < < zero or more new or existing calendars can be open at any time the Calendar < Tool is running. That section explains the way that the windows of multiply < open calendars are managed and displayed. <

      < Since `New' and `Open' are always enabled, the user may < execute these commands at any time while the Calendar Tool is running. This < means that the user can have an unbounded number of calendars open. If taken < to an extreme, this could conceivably cause resource problems in some operating < environments, as discussed in < < Section 2.11.31 < --- > This all seems pretty darn clean. To be consistent, it seems with this scheme > that the first like of the init file saved with `Save Config' will in > fact be the preceding chunk of code to close the default window, so that the > config file starts with a blank slate. 559c276 < --- > 561c278 < 2.8.3. Close and Close All --- > 2.8.4. Print 565,575c282,284 < The `Close' and `Close All' commands are enabled in the < `File Menu' if there is at least one open calendar, disabled < otherwise. `Close' applies to the current calendar; `Close < All' applies to all open calendars. <

      < When the user selects the `Close' command, the system performs the < following pre-close steps for the calendar to be closed, i.e., the current < calendar: <

        <
      1. < checks if the calendar has unsaved changes --- > Sketch of some ideas: The print dialog should include at least the > following options: >
          577c286 < checks if there are any pending edits in dialogs associated with the calendar --- > start date 579,606c288 < checks if the calendar is connected to a central host computer <
      < Once these steps are completed satisfactorily, the system proceeds to perform < the close operation. Details follow. <

      < For the first pre-close step, the system checks if the current calendar has any < unsaved changes. The precise definition of an unsaved change is given in < < Section 2.8.4. < < If there are one or more unsaved changes, the system displays the dialog shown < in Figure 290. < <
      <
      <


      < <

      < <

      <

      Figure 290: Offer to save calendar before closing.

      <
      <
      <
      < < The name string is the name of the current calendar to be < closed. If the user presses `Yes', the system proceeds as follows: <
        --- > end date 608,648c290,302 < If the calendar to be closed has not yet been saved to a file, the system < displays the file save-as dialog shown in < < Figure 293. < < If the user confirms a legal save-as operation in that dialog, the system < proceeds to the next pre-close step. If the user presses `Cancel' in < the save-as dialog, the system returns to the offer-to save dialog, where the < user may press `No' or `Cancel' (or `Yes' if she < wants to return again to the save-as dialog). <
      1. < If the calendar to be closed has previously been saved to a file, the system < performs the file save operation described in < < Section 2.8.4, < < and proceeds to the next pre-close step. <
      < If the user presses `No' in the offer-to-save dialog, the system < proceeds to the next pre-close step without saving the calendar, thereby losing < any unsaved changes. If the user presses `Cancel' in the offer-to- < save dialog, the system cancels the close operation entirely, without saving, < without performing further pre-close steps, and leaving the calendar open and < unchanged. The system also removes both the offer-to-save and file-close < dialogs from the screen. <

      < If the calendar to be closed has no unsaved changes, the system proceeds to the < next pre-close step, without displaying the offer-to-save dialog. Calendars < with no unsaved changes are those that have been saved prior to close, as well < as other-user and group calendars, since the latter two types of calendar < cannot be changed. <

      < For the second pre-close step, the system checks if there are any pending edits < in calendar-specific, non-modal editing dialogs for the calendar to be closed. < < Section 2.11.32 < < defines which Calendar Tool dialogs are of this type. A pending edit is any < unconfirmed or unapplied change the user has made in one or more of these < dialogs. if there any such pending edits, the system displays the dialog shown < in Figure 291. --- > apply active filter? >

    > But woe nelly, I just had a look at all of the features in Claris, particularly > for the "book" option, including editing its format. I think this will be an > excellent place to draw the line and say that fancy printing will be part of > future work. >

    > So, here's the deal with printing. We'll keep it brutally simple by > printing out in the plain text form of the current example-items file. In > fact, we can use this file pretty much as is, except for the parenthetical > remarks about edits made. We'll also need to add some kind of indication of > individual instance changes to recurring items, which will be done in the same > brutally simple form. 650,659c304,307 <
    <
    <


    < <

    < <

    <

    Figure 291: Warning when there are unconfirmed or unapplied < dialog edits.

    <
    --- >
    >

    > 2.8.5. Exit >

    661,673d308 <
    < < If the user answers `Yes' in the pending-edits dialog, the system < discards any pending edits, cancels all pending dialogs, and removes the < dialogs from the screen. When the system responds to the `Yes' < response or if the pending-edits dialog was not displayed, the system proceeds < to the last pre-close step. <

    < If the user answers `No' in the pending-edits dialog, the system < cancels the close operation without performing the last pre-close step, leaves < the calendar open, and leaves all pending edit dialogs open and unchanged. If < the calendar had been saved as a result of the first pre-close step, it remains < saved, i.e., the save operation is not undone. 675,680c310,322 < For the third and final pre-close step, the system checks if the calendar being < closed is currently connected to a central host computer (see < < Section 2.6.6.1 < < ). If so, the system displays the dialog shown in Figure 292. --- > If the user exits or closes a calendar with unsaved options, then in addition > to whatever offer-to-save file messages there may be, there are also offer-to- > save options messages. Viz., there is one such message for each active > calendar for which options have been applied but not saved. The text of these > offer-to-save messages should most likely be integrated into the file offer-to- > save dialogs, so two dialogs don't appear if both the file data and options > need to be saved for a particular calendar. >

    > If the user exits or closes a calendar with notifications that have not yet > been responded to, the system displays a dialog of the form: >

    > There are meeting notifications you have not yet processed.  Do you want to
    > review or discard the unprocessed notiications?
    682,693c324,330
    < 
    <
    <
    < <

    < <

    <

    Figure 292: Warning when closing calendar is connected to a < central host.

    <
    <
    <
    --- > Review Discard >
    > If the user chooses 'Review' and then grows tired of it before all > notifications are processed (where processing means pressing one of the three > buttons on the bottom, or explicitly closing the notification dialog (which is > equivalent to Delay)), then she can select Exit of Close again (whichever of > which started the whole thing, or either) and then hit Discard. 695,753d331 < If the user answers `Yes' in the connected-to-host dialog, the system < disconnects the host and updates the host connection table accordingly, as < described in < < Section 2.6.6.1. < < When the system responds to the `Yes' response, or if the connected- < to-host dialog was not displayed, the system proceeds to complete the close. <

    < If the user answers `No' in the connected-to-host dialog, the system < cancels the close operation, leaving the calendar open and connected. If the < calendar had been saved as a result of the first pre-close step, it remains < saved, i.e., the save operation is not undone. If any pending-edit dialogs < where canceled and closed as a result of the second pre-close step, the dialogs < remain so. <

    < When the pre-close steps have been completed without a cancellation, the system < completes the close operation by closing the current calendar, removing its < name from the Calendars list, and removing all windows associated with < the calendar from the screen, including any remaining dialogs (those without < pending edits). < < Section 2.3.6.4 < < describes details of the Calendars list, calendar-to-window < association, and changing the current calendar. When the close operation has < been completed or canceled, the system removes all close-related dialogs from < the screen. <

    < When the user selects `Close All' in the `File' menu, the < system executes a close operation for all open calendars, in the same manner as < described above for `Close'. The offer-to-save dialog is displayed in < turn, as necessary, prior to closing each calendar. If the user presses < `Cancel' in the offer-to-save dialog for any calendar, the system < cancels the close operation for that calendar and all remaining open calendars. < `Cancel' does not affect any already-closed calendars for which the < user previously answered `Yes' or `No' in the offer-to-save < dialog; these calendars remain closed. The pending-edits and connected-to-host < dialogs are also displayed in turn, as necessary. Since there is no < `Cancel' button in the pending-edits or connected-to-host dialogs, the < 'Close All' operation proceeds with the next calendar to be closed, < whatever the user's decision is in either of these warning dialogs. A calendar < remains open if the user answers`No' in either the pending-edits or < connected-to-host dialog. <

    < When the system completes a `Close' or `Close All' for the < last open calendar, it closes the `Find' dialog and `Goto < Date' dialog, if either or both are open. As described in < < Section 2.11.32, < < these two dialogs can be open only when at least one calendar is open. <

    < Closing the last open calendar does not automatically exit the Calendar Tool. < As explained in < < Section 2.3.6.4, < < the Calendar Tool runs with zero or more calendar files open. 755c333 < --- > 757c335 < 2.8.4. Save, Save As, and Save All --- > 2.8.6. Save As and Load in Editing Dialogs 761,776c339,344 < A new calendar is not associated with a file until it is saved for the first < time. For new not-yet-saved calendars, the `Save' and `Save < As' commands have exactly the same effect. When the user selects either < of these commands for a not-yet-saved calendar, the system displays the dialog < shown in Figure 293. < <
    <
    <


    < <

    < <

    <

    Figure 293: Initial save dialog for a not-yet-saved calendar. <

    <
    --- > NOTE: Adjust the following fodder pulled from the options section to > apply uniformly to all four types of aux data. What might be nice is to use > this options-specific scenario as the concrete example for all five types of > aux data. See also the semi-epiphany in >
    > Section 2.11.26. 778,818d345 <
    < < This dialog shows the initial state of the .CalendarTool directory < before the user has saved any files. The Settings file is shown in < the scrollable list, since it is installed by default during the normal < Calendar Tool installation process, described in <
    < Section 2.15.1. < < The system does not pre-enter "unnamed" in the `File' field, < to discourage the user from naming a calendar "unnamed". The system < does not however prevent a recalcitrant user from doing so. <

    < As in the file-open dialog, the user may navigate to another directory by < selecting from the `Directory' pulldown list and by selecting < directory names in the scrollable list. To save to a file, the user types its < name in the `File' field. The system enables the `OK' button < when the user begins typing, and it remains enabled unless the user does one of < the following: < <

      < <
    • < erases all typing <
    • < enters the name of a currently open calendar file <
    • < enters the name of an unwritable calendar file <
    • < enters the name of an unreadable directory <
    • < enters the name of an existing non-calendar file <
    < The system disallows saving in any of these circumstances (only the first of < which happens to be possible in < < Figure 293 < < ). If the user continues typing to change these circumstances, the system < re-enables the `OK' button. The system does allow saving a calendar < into an existing calendar file, which case is described shortly. 820,821c347,351 < Figure 294 shows the user having entered the name "DepartmentCalendar" < for saving. --- > The `Save As ...' button is used to save a copy of the current option > settings in a selected file. Saving options in different files allows the user > to create different option configurations that can be loaded using the options > `Load' command. When the user presses `Save As ...', the > system displays a dialog of the form shown in Figure 285. 826c356,360 < --- > >

    > >

    > 828c362 < --- > Figure 285: Options save-as dialog. 830d363 <

    Figure 294: Initial save dialog filled in.

    835,853c368,372 < When the user presses `OK', the system saves the entire contents of < the calendar onto the named file. All scheduled items and all calendar- < specific settings are saved. After completing the save, the system removes the < save dialog from the screen. If the user enters the name of an existing < calendar file and presses `OK', the system asks for overwrite < confirmation, as described below. <

    < When saving a new calendar onto a new file, it is not possible for the saved-to < calendar to yet be connected to a central host computer, since to make such a < connection the calendar must already have been open. Hence in this case of < saving, no copying to a central host is ever performed. Such copying is < performed when saving an existing connected calendar, as described shortly. <

    < When the current calendar is already associated with a file, the < `Save' and `Save As' commands differ. The `Save' < command is enabled whenever the current calendar is associated with a file, and < the calendar has unsaved changes. < < A calendar has unsaved changes when the user has performed one or more of the --- > The default save-as directory is the user's Calendar Tool directory, the > default name of which is ".CalendarTool". The four listed files are the > standard files created when the Calendar Tool is installed, as described in > > Section 2.15.5. 855,904c374,375 < following actions since the file was opened or the last confirmed save < operation, whichever has occurred most recently: <

      <
    1. < confirmed any scheduling or category-changing command in the < `Schedule' menu <
    2. < confirmed any change to custom lists <
    3. < confirmed any change to filter settings or custom filters <
    4. < executed any command in the view menu that changes the state of the display < screen <
    5. < changed the windowing mode <
    6. < moved, iconified, or closed any window associated with the calendar <
    7. < applied any option changes <
    8. < confirmed any change to page setup or print settings <
    9. < loaded settings <
    < If the user undoes any of these actions such that the state of the calendar < returns to the same state as most recently saved, then the calendar no longer < has unsaved changes. The "state" of the calendar is defined as the values of < all scheduled items and calendar-specific settings. It is noteworthy that the < definition of unsaved change includes any and all actions that change scheduled < items or calendar-specific settings. <

    < When the user selects the enabled `Save' command in the < `File' menu, the system saves the scheduled items and settings for the < current calendar on the file associated with the calendar. If the file is < connected to a central host computer, the system also copies the calendar file < to the central host, as explained in < < Section 2.6.6.1. < < All scheduled items and calendar-specific settings are copied to the host. If < a calendar is associated with a central host but not connected to it, the save < operation does perform the copy. <

    < The `Save As' command is enabled in the `File' menu whenever < the current calendar is not that of another user or group. `Save As' < is enabled whether or not the current calendar has unsaved changes. When the < user selects `Save As' for a new calendar, the system displays the < dialog shown in < < Figure 293, --- > > Section 2.8.2. 906c377,379 < and the system actions are those described for that figure. --- > covers complete details of the format and use of file saving dialogs, including > the directory browsing list and the warning issued when an extant file would be > overwritten by the save. 908,909c381,384 < When the user executes `Save As' for a calendar that is associated < with a file, the system displays the dialog shown in Figure 295. --- > To save options to a file, the user enters the filename in the save-as dialog > and presses `OK'. For example, Figure 286 shows the user having > entered the file name "PersonalOptions" as the location to which options > are saved. 914c389 < --- > 916c391 < --- > 918,964d392 <

    Figure 295: File save-as dialog.

    <
    <
    <
    < < This is the same dialog as shown in < < Figure 293, < < except the banner is "Save Calendar As" instead of "Save New < Calendar". Figure 295 shows the state of the .CalendarTool < directory after the user has saved two calendars. The names of writable < unopened calendar files and readable subdirectories are shown in regular type < in the list. The names of all other files are shown in grey type, indicating < they are disabled for selection. This means that the user cannot save to an < already open calendar file, an unwritable calendar file, or to any type of < existing non-calendar file. The user can navigate through directories as < explained above. The user can navigate to a readable but unwritable directory < to see the files there. The existence of a writable calendar file in an < unreadable or unwritable directory renders the file itself unwritable. <

    < For a calendar that has an associated file, the purpose of `Save As' < is to save a copy of the calendar on a file other than the one with which the < calendar is already associated. To perform the save, the user types the name < of the desired file in the `File' field, or selects the name of an < existing calendar file in the scrollable list. The system enables the < `OK' button when the user begins typing, and it remains enabled except < under the circumstances enumerated < < above < < after < < Figure 293. < < When the user selects an enabled name in the list, the system enters the name < in the `File' field. <

    < To save the calendar onto a new or existing calendar file, the user presses < `OK'. If the calendar to be saved is connected to a central host, the < system displays warning shown in Figure 296 before completing the save-as < operation. < <
    <
    <


    < 966c394 < --- > Figure 286: Saving options to a PersonalOptions file. 968d395 <

    Figure 296: Save-as operation will cause disconnect.

    973,993c400,403 < The name string is the name of the host to which the current < (pre-save-as) calendar is connected. If the user presses `OK' in the < disconnect warning dialog, the system disconnects the calendar under its < current name and proceeds with the save-as. As the dialog message explains, < the user must run the `Admin->Connect' command to re-connect the < calendar under its new name. If the user presses `Cancel', the system < cancels the save-as operation, leaving the current calendar connected and < otherwise in its pre-save-as state. <

    < To proceed with the save-as, the system checks if the file to be saved to < exists. If it does not exist, the system completes the operation by saving a < complete copy of the current calendar to the new file. If the saved calendar < had unsaved changes, those changes are saved in the new saved-to file, but not < in the original file. The original file remains in the same state as it was < prior to `Save As' being executed. The saved calendar remains the < current calendar, but with the new name instead of the old name. The system < changes the name of the calendar in all of the contexts in which the original < name appears. These contexts are described in < < Section 2.3.6. < --- > The `Save As' command does not execute `Apply' or `Save', it > only saves a coy of the curent options settings on the selected file. The > applied and saved states of options are unchanged after execution of `Save > As'. 995,996c405,408 < When the user executes `Save As' to an existing calendar file, the < system displays the warning dialog shown in Figure 297. --- > The `Load ...' button is used to load a previously-saved options file. > When the user presses `Load ...', and there are no unapplied or unsaved > options, the system displays the dialog in > Figure 287. 1001c413 < --- > 1003c415 < --- > 1005c417,419 <

    Figure 297: Confirm overwrite of an existing calendar file. --- > >

    > Figure 287: Options load dialog. 1011,1039c425,428 < If the user presses `OK', the system proceeds with the save, fully < overwriting the previous contents of the file. The states of the original and < saved-to files are as described above for when `Save As' saves to a < new file. The system also changes the name of the current calendar in the same < way as for `Save As' to a new file. If the user presses < `Cancel' the system does not perform the save, returning to the < `Save As' dialog where the user can enter a different file name. In < either case, the system removes the overwrite warning dialog. <

    < The user may save a new or existing calendar to a file that is listed in the < host connection table (in the `Calendar' column). In such a case, the < system does not initiate a connection to the associated host as a result of the < save. This is the case even if the option `Auto-connect on file open' < is on. This option only applies to `File->Open', not to `Save < As'. To connect to a host of a saved-to calendar, the user must execute < the `Admin->Connect' command. <

    < The user can type or select the calendar's current name in the save-as dialog, < although this defeats the ostensible purpose of the `Save As' command. < If the user does so and presses `OK', the system saves the calendar < onto the file with which is currently associated, in the same manner as if the < user had executed the `Save' command. <

    < When the user selects `Save All' in the `File' menu, the < system executes a `Save' for all calendars with unsaved changes. If < any of the calendars is not yet saved to a file, and the user presses < `Cancel' in the save-new-calendar dialog ( < < Figure 293 --- > The names of valid options files appear in normal typeface in the directory > list; all other types of files appear in greyed typeface. > > Section 2.8.1 1041c430,431 < ), the system cancels the save for that calendar only. --- > covers further details on the format and use of file opening (i.e., loading) > dialogs, including the directory browsing list and file-type validation. 1043,1086c433,439 < The following is a summary of the enabled/disabled states of the save commands: <

      <
    1. < `Save' is enabled when the current calendar is new and has no < associated file, i.e., it has not yet been saved. Save is enabled < unconditionally for a new calendar, even if the user has performed no changes < to it since it was created. In this way, the user can save a completely empty < new calendar. <
    2. < `Save' is also enabled when the current calendar has an associated < file which has unsaved changes. <
    3. < `Save As' is enabled whenever at least one calendar is open, and the < current calendar is not that of another user or group. `Save As' is < enabled whether or not the current calendar has unsaved changes. <
    < `Save' and `Save As' are disabled otherwise. <

    < None of the save operations affects the state of pending edit dialogs. < Unconfirmed or unapplied edits are not saved, and the states of all dialogs < associated with a calendar are unchanged by a save of the calendar. <

    < As described above, the system attempts to disallow saving to an unwritable < calendar file. However, if the user changes the permissions of a calendar file < externally, before or during Calendar Tool execution, it is possible for the < user to execute a `Save' or `Save As' to an unwritable file. < The circumstances where this can happen are described in < < Section 2.8.12. < < When the user does execute a `Save' or `Save As' to an < unwritable file, the system responds with an appropriate error message, as < described in < < Section 2.12.11. < < If this error is reported for a file during a `Save All' sequence, the < system continues with the `Save All' after the user dismisses the < error message. < < <

    < 2.8.5. Loading and Saving Settings <

    --- > To load options from a local file, the user selects or enters a filename in the > `File:' text field. The user can alternatively load the > administrator-defined options file from the Calendar Tool central host > computer, if the user is currently connected to an operational central host > (see > > Section 1088,1148c441,444 <

    < As outlined above, Calendar Tool settings are stored in the standard < Settings file, as well as in other named files in which the user < chooses to save them. The commands to save and load settings allow the user to < bundle different settings to be used in different types of calendars. For < example, the user can define a collection of work-related settings, save them < in a settings file, and then load them for use in work-related calendars. < Users or administrators can share such settings files with other users, so that < a particular user community has a common collection of settings. < Administrators can create useful settings files for inclusion when the Calendar < Tool is installed, as described in < < Section 2.15.1 < <

    < Since calendar files contain their own calendar-specific settings, the sharing < functionality provided by settings files could be accomplished in part by < sharing just calendar files themselves. However, settings files provide the < advantage of being able to copy settings from one calendar file to another, < without adding or deleting scheduled items in either calendar. Also, since < calendar files do not contain session-wide settings, the only way to save and < load these are through independent settings files. <

    < The system loads the standard Settings file under the following < circumstances: <

      <
    1. < when the user starts up the Calendar Tool from the operating environment <
    2. < when the user invokes the `File->Load Settings' command and selects < the Settings file to be loaded <
    < When the system loads Settings at start up, it uses the session-wide < component of the settings file to initialize global options, initialize the < host connection table, and to determine which calendars to open at start-up. < The initialized global options are those used in the ensuing session of the < Calendar Tool, and those presented to the user when she executes the < `Options->Global' command. The initialized host connection table is < that which is used during the ensuing session, and that which is presented to < the user when she runs the `Admin->Connect' command. The list of < which calendars, if any, to open at start-up is in the `names of open < calendars' component of the settings file. Further discussion of the < Calendar Tool start-up procedure is in < < Section 2.15.2. < <

    < The system does not use the calendar-specific component of the < Settings file at start-up. Rather, for each calendar it opens at < start-up, it uses the calendar-specific settings stored in that calendar's < file. This includes the calendar-specific settings for viewing options and the < setting for the `state of open windows' for each calendar. These < settings determine which windows are opened for each start-up calendar. The < calendar-specific component of the Settings file is used when the user < creates a new file, as described in < < Section 2.8.2. < <

    < When the user runs the `Load Settings' command in the `File' < menu, the system displays the dialog shown in Figure 298. --- > ). > If the user is not so connected, the `Load from central host' checkbox is > disabled. Figure 288 shows the user having selected to load from the > "Personal Options" file. 1153c449 < --- > 1155c451 < --- > 1157,1196d452 <

    Figure 298: Load-settings dialog.

    <
    <
    <
    < < The user may select via checkboxes which parts of a settings file to load, and < from which file to perform the load. All of the checkboxes are on by default. < When the filter settings checkbox is on, the system automatically checks and < disables the categories checkbox. This is because custom filter definitions < may be defined in terms of calendar-specific categories. If the user unchecks < the filters checkbox, the categories checkbox is enabled for independent < checking or unchecking. <

    < If the user invokes `Load Settings' when there is no current open < calendar, the system unchecks and disables all of the calendar-specific < checkboxes under `For the current calendar'. In this case, only the < settings for global options and the host connection table can be loaded. If < the user invokes `Load Settings' when one or more calendars is < connected, the `host connection table' checkbox is unset and disabled. < This means that the host connection table cannot be loaded from settings when < there any active connections. <

    < The default file in the load-settings dialog is the standard Settings, < in the Calendar Tool user directory. The dialog shown Figure 298 reflects the < user having previously saved two settings files in addition to the pre- < installed "Settings". Only Calendar Tool settings files and < directories are enabled in the scrollable file list. The user can type, < navigate, and select in the dialog in the same manner as described for the < `Open' dialog in < < Figure 287. < <

    < Figure 299 shows the user having chosen to load a subset of the settings stored < the file "OfficeSettings". < <
    <
    <


    < 1198c454 < --- > Figure 288: Loading from the Personal Options file. 1200d455 <

    Figure 299: Load-settings dialog filled in.

    1205,1206c460,461 < When the user presses `OK', the system displays the confirmation < dialog shown in Figure 300. --- > Figure 289 shows the case where the user selects to load from the central > host. 1211c466 <
    --- > 1213c468 < --- > 1215,1384d469 <

    Figure 300: Confirm load settings.

    <
    <
    <
    < < The dialog explains that loading settings may cause changes to the calendar and < its display windows, and that changes will be made without further < confirmation. The dialog further explains that any currently unconfirmed or < unapplied settings edits will be canceled. What this means precisely is that < if the user has edited by not applied or confirmed changes to settings that are < being loaded, the dialogs in which the edits have been performed are canceled. < This cancellation applies only to dialogs for settings checked on in the load- < settings dialog. Edit dialogs for unchecked settings are not canceled. For < example, if the user has edited a category definition but not yet confirmed the < edits, and the `categories' checkbox is on, the system cancels the < categories editing dialog and loads the settings. On the other hand, if the < user has unapplied edits to calendar-specific options, but the < `options' checkbox is off in the load-settings dialog, then the < options dialog is unaffected by the settings load, and the dialog remains open < with the still unapplied edits. <

    < If the users answers `OK' in the load-settings dialog, the system < performs the following actions: <

      <
    1. < copies the values for calendar-specific settings from the settings file into < the current calendar; this is done for the settings with the checkbox turned < on; unchecked settings values are not copied, leaving them unchanged in the < current calendar <
    2. < confirms and applies all setting changes <
    3. < performs all processing that results from changed, added, or deleted calendar- < specific settings <
    4. < re-initializes the session's global options and host table from the settings < file; this is performed when the associated checkbox is on; if either or both < checkbox is off, the global settings and/or connection table are left unchanged < for the current session <
    < When the system performs copying of calendar-specific settings, the values from < the settings file completely replace all of the calendar-specific settings < values in the current calendar. If values copied from the settings file are < the same as those in the current calendar, then those values are effectively < unchanged. <

    < The effective change of values is particularly relevant to the definition of < categories, custom lists, and custom filters. If any of these definitions are < exactly the same in the settings file and the current calendar, then these < definitions remain effectively unchanged in the calendar. Any definitions in < the settings file that are not the same as the current calendar cause a change, < addition, or deletion to the calendar. Table 16 specifies precisely what < constitutes the same definition, a changed definition, a definition to be < added, and a definition to be deleted. < <
    <
    <


    <
    < < < < < < <
    Type of Definition < Same < Change < Addition < Deletion <
    category < same name and color < same name with different color < < new name in settings file that is not in calendar < < name in calendar that is not in settings <
    < custom list and <
    < custom filter <
    same name and values < < same name with one or more different values < < new name in settings file that is not in calendar < < name in calendar that is not in settings <
    <

    Table 16: Comparison of definitions in settings file versus < current calendar. <
    <


    <

    < <
    < <

    < <

    < Once calendar-specific settings values are loaded, the system confirms and < applies all loaded values. In particular, <

      <
    • < categories, custom lists, and custom filter definitions are confirmed and < applied <
    • < changed option settings are applied <
    • < page set up and print settings are confirmed <
    • < the effects of a change to the windowing mode takes effect when the user < executes the next affected viewing command <
    < The system then performs all processing that results from changed, added, or < deleted settings values. If this processing would require further user < confirmation, the system proceeds as if the confirmation is affirmative < (`OK' or `Yes'). The sections of the requirements that < specify the processing associated with each type of calendar setting are those < cited parenthetically in the list at the beginning of < < Section 2.8.1. < <

    < Changes to category definitions and options are the only setting changes that < may result in immediate changes to scheduled items in the current calendar. < The category changes that have immediate effect are those described in < < Section 2.5.5 < < that result from color changes or deletions of category definitions. Changes < in meeting-scheduling options can have immediate effect if the current calendar < is connected to a host and the loaded options change the setting of when < pencil-ins are accepted to `whenever connected to the originating < host`. <

    < Changes to custom lists, filters, options, and windowing mode may result in < changes to the appearance of scheduled items in display windows, but not in the < items themselves. Changes to page setup and print settings take effect only < when the user executes the `Page Setup' and `Print' commands. <

    < When the system re-initializes the host connection table, it completely < replaces the contents of current the session-wide table with the entries in the < settings file. The "session-wide table" is that in use in the current Calendar < Tool session, as it appears when the user runs the `Admin->Connect' < command. To avoid undue disruption, the checkbox to load host connection < settings is unset and disabled when one or more hosts is connected in the < current Calendar Tool session. Changes to the host connection table may lead < to changes in scheduled items being downloaded from the host. However, these < changes are not immediate when settings a loaded, because no hosts can be < connected when the host connection table is loaded from a settings file. < Complete discussion of the host connection table is in < < Section 2.6.6.1. < <

    < It is noteworthy that two parts of the settings file are missing from the < load-settings dialog. These are the the calendar-specific setting for the < `state of open windows', and the session-wide setting for the < `names of open calendars'. These settings are used, and are only < manageably meaningful, when the settings file is loaded at start-up, or in the < case of open windows, when a calendar is opened. <

    < When the user selects the `Save Settings' command, the system responds < by displaying the dialog shown in Figure 301. < <
    <
    <


    < 1386c471 < --- > Figure 289: Loading options from the Calendar Tool central host. 1388d472 <

    Figure 301: Save-settings dialog.

    1393,1441c477,482 < The figure reflects the state of the Calendar Tool user directory before any < settings files have been saved. The dialog is very similar in content to that < for loading settings, with the addition of the two settings noted just above as < missing from the load dialog. The user may select via checkboxes which parts < of a settings file to save, and to which file to perform the save. All of the < checkboxes are on by default. When the filter settings checkbox is on, the < system automatically checks and disables the categories checkbox. This is < because custom filter definitions may be defined in terms of calendar-specific < categories. If the user unchecks the filters checkbox, the categories checkbox < is enabled for independent checking or unchecking. <

    < If the user invokes `Save Settings' when there is no current open < calendar, the system unchecks and disables all of the calendar-specific < checkboxes under `From the current calendar'. In this case, only the < session-wide settings can be saved. If the user invokes `Save < Settings' when one or more calendars is connected, the settings can still < be saved, but the connected state is ignored. That is, the host connection < table is always saved with the `Connected?' column blank. <

    < The default file in the save-settings dialog is the standard Settings, < in the Calendar Tool user directory. The values shown Figure < < Figure 301 < < reflect the initial state of the dialog, with the pre-installed < "Settings" file, before the user has saved to any other settings < files. Only Calendar Tool settings files and directories are enabled in the < scrollable file list. The user can navigate and select in the dialog in the < same manner as described for the `Save As' dialog in < < Figure 295. < < The `OK' button is enabled except when the user does one of the < following: < <

      < <
    • < erases all typing <
    • < enters the name of an unwritable settings file <
    • < enters the name of an unreadable directory <
    • < enters the name of an existing non-settings file <
    < The system disallows saving in any of these circumstances. If the user < continues typing to change these circumstances, the system re-enables the < `OK' button. --- > When the central host checkbox is selected, the File and Directory > data fields are cleared and disabled. The user confirms the load by pressing > `OK', whereupon the option settings defined in the loaded file become the > current unapplied and unsaved settings in the options dialog. (To restore the > Calendar Tool to the global default optins configuration, the user can save the > options settings loaded from the central host to the local Options file.) 1443,1444c484,485 < Figure 302 shows the user having chosen to save a subset of the settings to the < file "OfficeSettings". --- > If there are unapplied or unsaved option changes when the user presses `Load > ...', the system issues the warning shown in Figure 290, 1449c490 < --- > 1451,1588c492 < <

    <

    Figure 302: Save-settings dialog filled in.

    <
    <
    <
    < < When the user presses `OK', the system performs the following actions < to complete the save: <
      <
    1. < copies the checked calendar-specific settings from the current calendar to the < selected settings file <
    2. < copies the checked session-wide settings to the selected settings file <
    3. < for the unchecked calendar-specific settings, the system does one of the < following: <
        <
      1. < if the saved-to settings file exists, the unchecked settings in the file are < not changed <
      2. < if the saved-to settings file does not exits, the system copies the built-in < default values to the settings file; < < Table 15 < < defines the values of built-in calendar-specific settings <
      <
    4. < for unchecked session-wide settings, the system copies the built in values, < which are as shown in < < Figure 282 < < for global options, and are empty for both the host connection table and list < of open calendars <
    < <

    < < In saving the state of open windows, the system saves all physical details of < all windows associated with the current calendar. These details are the window < content, size, position, and state of iconification. In saving calendar view < windows, the system uses the specific absolute dates in the display, not dates < relative to today's date. For example, if there is a month view for September < in an active window, the system saves the state of that window as open for that < specific month. If the user subsequently opens the calendar with the saved < settings in, say, October, the month view opened from the saved settings is < still September. The system always highlights today's date in any calendar < view that contains today's date. However, if a view saved in the settings < contains today's date when it is saved, but not when the settings are later < loaded, the view cannot and does not have today's date highlighted. The point < again is, views saved in the `state of open windows' setting are saved < with the absolute dates displayed at the time of saving, and the dates are not < adjusted relative to today's date when the settings are subsequently loaded. < If the user wants the initial view of a calendar to be relative to today's < date, she can use a viewing option other than `per most recently saved < settings', as described in < < Section 2.7.4.3. < <

    < The system does not display an overwrite warning if the user saves to an < existing settings file. This is because the user may frequently save settings < to an existing file, in particular the Settings file in the Calendar < Tool directory. In this sense, overwriting an existing settings file is more a < normal than exceptional activity. <

    < When the user saves settings to the standard Settings file, the saved < values become those that are used as the defaults when the Calendar Tool starts < up, and as the defaults for new calendars. In this way, the current calendar < serves as the basis for the standard default settings. If the user wants < different values for the standard defaults, she can change the current calendar < and save again to the standard Settings file. <

    < Confirming the `Save Settings' command results in a change to the < selected settings file, but not to the current calendar. Hence, the system < performs none of the change-related processing associated with loading settings < shown in < < Table 16. < <

    < Table 17 summarizes all of the ways that the user can save settings to a < calendar file or to a settings file. < <
    <
    <


    <
    < < < < < < < < < <
    Command < Type of saving performed <
    < `Save' command in the `File' menu < < All calendar-specific settings in the current calendar are saved to the file < associated with current calendar; there is no change to any settings file, and < in particular, session-wide settings are not saved anywhere. <
    < `Save As' command in the `File' menu < < All calendar-specific settings in the current calendar are saved to the < selected calendar file; there is no change to any settings file, and in < particular, session-wide settings are not saved anywhere. <
    < `Save Settings' command in the `File' menu < < Checked settings are saved to the selected settings file; unchecked settings < are unchanged in an existing file, defaults in a new file; no calendar file is < affected. <
    < `Save' button in the global options dialog < < Global options are saved to the Settings file in the user's Calendar Tool < directory; all other settings are unchanged in the Settings file; no < calendar file is affected. <
    < `Save' button in the host connection dialog < < The host connection table is saved to the Settings file in the user's < Calendar Tool directory; the `Connected?' column is fully blank in the < saved table; all other settings are unchanged in the Settings file; no < calendar file is affected. <
    <

    Table 17: Summary of ways to save settings. <
    <


    --- > 1590,1618d493 < <
    < <

    < < < <

    < 2.8.6. Page Setup and Print <

    < <

    < Printing from the Calendar Tool is based strictly on the content visible in < active Calendar Tool windows. Window content appears on the printed page < exactly as it appears on the screen. "Exactly" means the content of the < printed page is the same in appearance and absolute size as it appears on the < screen. Scrolling lists and other scrollable components of the display are not < expanded in the printed output. The printed content excludes the window < banner, any bordering other than a single black line, and any content that is < not visible within the window frame on the screen. This means there is no page < numbering, header, footer, or other page labeling. <

    < When the user selects the `Page Setup' command in the `File' < menu, the system displays the dialog in Figure 303. < <
    <
    <


    < 1620c495 < --- > Figure 290: . 1622d496 <

    Figure 303: Page setup dialog.

    1626a501,504 > where affected is one of "unapplied" or "unsaved", > as appropriate. Unapplied changes are also unsaved, given that saving > automatically applies. The user presses `Yes' to proceed, `No' to > cancel the `Load' command. 1628,1648c506,509 < The `Orientation' setting defines the width-by-height orientation of < pages. With the default selection of `portrait', pages are laid out < with the width dimension running horizontally and the height < dimension running vertically. When `landscape' is on, the < width dimension runs vertically and the height dimension < horizontally. <

    < The `Page Size' values define the size of a page in inches. The < `Margins' values define the unprintable area between the edge of the < page and the edge of the printed content. When possible, the Calendar Tool < queries the underlying operating environment to determine page size and margin < settings for the currently selected printer. When such determination is made, < the system inserts the values as the defaults in the page setup dialog. If the < system cannot make this determination, the default width and height values are < 8.5 and 11 inches, the default margins are all .5 inch. <

    < The user can manually adjust the page size and margin settings to accommodate < the paper size and margin requirements of different printers. In doing so, it < is the user's responsibility to enter page size or margin values that can be < accommodated on a particular printer, such that printed content is not cropped < on the page. --- > The `Load' command does not perform `Apply' or `Save'. Once > options are loaded, they are both unapplied and unsaved. Hence, loading has > precisely the same effect as if the user had manually entered all of the loaded > values in the options dialog. 1650,1651c511,519 < The `Scale' setting defines the scale of the printed content relative < to the printed page. The default is 100%. --- > Leaning towards fixing the following paragraph to allow load from (and maybe > save to) two sources -- options files and (portions of) calendar files. If > this happens, we need to fix above too. See > > Section 2.8.9 > > for an overview. So if we allow load from cal file but not save-as to cal > file, here's how we accomplish save-into: open the cal file, load, save (as > opposed to save-as). 1653,1664c521,527 < When the user selects the `Print' command in the `File' menu, < the system displays the dialog in Figure 304. < <
    <
    <


    < <

    < <

    <

    Figure 304: Print dialog.

    <
    --- > Even though calendar-specific options are stored within calendar files, the > `Save As' and `Load' option commands operate only on separate > options files, not on the options portion of calendar files. The system > considers calendar files and saved option files as two different file types > (see >
    > Section 2.8.9 1666,1713c529,539 <
    < < The user selects the printer to which output is directed from a list of < available printers. When possible, the Calendar Tool queries the underlying < operating environment to determine the identity of the user's preferred < printer. When such determination is made, the system inserts the name of the < printer as the default value in the `Printer' field. If the user's < preferred printer cannot be determined, the field is blank. <

    < The user can select to print the current window only, all windows of the < current calendar, or all active windows. Per < < Section 2.3.6, < < an active window is any that appears in the `View->Windows' submenu. < Iconified (i.e., minimized) windows are considered active. The successive < print order of multiple windows is based on the top-to-bottom order of windows < in the `View->Windows' submenu. <

    < The user may select the number of copies of each window to print, the default < being 1. The `Collated' checkbox is enabled if the user selects more < than 1 copy. If `Collated' is off (the default), the system prints < all copies of the same window in immediate succession, before printing the next < window. If the user turns `Collated' on, the system prints one copy < of each window in succession before beginning the next copy of the each window. <

    < When the user presses `OK' in the print dialog, the system proceeds < with the printing. If a window fits on a single page based on the page setup < parameters, the system prints the window centered on the page. The system does < not print more than one window per page, even if more than one window could fit < on a single page. If a window is too large to fit on one page, the system < prints as much per page as possible, printing the multiple pages of the same < window in row-wise order. The multiple pages of a single window are all left < and top justified to the defined margins, not centered as for single-page < windows. <

    < There may well be additional functionality for page set up and printing in < specific operating environments. This includes the ability to set other < printer parameters, preview printed pages, and define other forms of page < layout. Implementors must provide all such available functionality. < Implementors are required to provide only generic page layout functionality, < not content-specific layout. Contentwise, layout is at most one window per < page, as described above. < < <

    < 2.8.7. Exit <

    --- > ). When an extant calendar file is selected in the `Save As' > file-selection dialog, saving to that file replaces the previous file contents > entirely, in just the same way as saving to any other extant file would do. > The `Load' options command can only be used to load previously saved > options files, not the options portion of a calendar file. Sections > > 2.8.1 > > and > > 2.8.2 1714a541,542 > describe how file dialogs display inapplicable file types and the details of > overwriting extant files. 1716,1741c544,566 < When the user selects the `Exit' command in the `File' menu, < the system begins the exiting process by executing the `Close All' < command. The associated processing for `Close All' ensues, including < any necessary user interaction through the warning dialogs. This is described < in < < Section 2.8.3. < < If the user responds at any point such that the `Close All' is < canceled for all remaining calendars, the `Exit' operation is also < thereby canceled. <

    < Once the `Close All' has run to completion, the system checks if there < are unsaved session-wide settings. If so, the system displays the dialog shown < in Figure 305. < <
    <
    <


    < <

    < <

    <

    Figure 305: Offer to save session-wide settings before exit. <

    <
    --- > Since options are calendar-specific, the `Apply' and `Save' > commands operate only on one calendar at a time, namely the current calendar. > Switching to a different current calendar always makes the options for the > newly current calendar become active, without applying or saving options for > the previously current calendar. Given this behavior, there is no direct way > to save or apply the same option settings to multiple calendars en masse. To > apply or save the same option settings to more than one calendar, the user must > save the options to a file, make a new calendar current, load the saved > options, and then apply or save the loaded options to the newly current > calendar. >

    > Any applied but unsaved changes are not saved by `Cancel'. If the > options dialog is subsequently opened on a calendar with unsaved option > settings, the unsaved state of the options is reflected by the `Save' > button being enabled. If user closes a calendar with unsaved options or exits > the Calendar Tool when one or more calendars have unsaved options, the system > warns the user of the condition, as described in Sections > > 2.3.6.1 > > and > > 2.8.5. 1743,1756d567 <
    < < If the user answers `Yes', the system saves all session-wide settings < to the Settings file in the user's Calendar Tool directory. If the < user answers `No', the system does not save session-wide settings, < thereby losing any unsaved changes. If the user presses `Cancel', the < systems cancels the `Exit' command and removes the < offer-to-save-settings dialog from the screen, leaving all calendars closed but < the Calendar Tool still running. <

    < When the user answers `Yes' or `No', or if the session-wide < warning dialog was not displayed, the system proceeds with the `Exit' < operation by terminating the current session of the Calendar Tool, thereby < returning the user to the underlying operating environment. 1758c569 < --- > 1760c571 < 2.8.8. Files Used by Calendar Tool Administration --- > 2.8.7. Local Files 1764,1774c575,579 < Sections < < 2.6, < < and < < 2.14, < < contain general discussions about the data repositories on Calendar Tool < central host computers. This section presents specific details of the < directory and file structure of the repositories. --- > Local Files dialog now has two items: path for local file directory and name of > default calendar file to open when the app is launched as an app as opposed to > from a file. If the user specifies a value for the default start-up calendar > and then invokes the cal tool from a file, the file from which the tool is > invoked overrides the default start-up calendar. 1776,1781c581,594 < A central host data repository consists of the following storage components: <

      <
    • < a user database, holding Calendar Tool user records but no user calendars <
    • < a group database, holding Calendar Tool group records --- > NOT to all of the following paragraph; coverage of `File->Local Files' > since it's been nuked to a command and moved to Admin options; the priv admin > `File->Host Files' has been moved to the priv Admin menu. > So, what this section covers is what's in the files (a review, most likely), > but not these two commands, since they're not on a file menu anymore. >

      > Need to cover `File->Local Files' command here or elsewhere, as > well as the privileged admin `File->Host Files' command. With > `File->Local Files' regular users should be able to set the path to > where the local files are. When creating a config, admints can set the default > value for the local files >

      > There are four standard fixed-name files used by the CalendarTool: >

        1783,1784c596,606 < a location database, holding meeting location records and other-usage booking < records --- > "CommunityCalendar": [THIS IS WRONG NOW, need to decide if we want to > keep CommunityCal around anyway as the "standard", or more likely "standard > sample" normal calendar] the place where the central host expects to find the > calendar that the user shares with the Calendar Tool community >
      1. > "Options": the standard options file that is used to set the initial > options for all new calendars >
      2. > "Configuration": the file where the results of the `Save > Config' command go, that says what windows are up initially and where they > are 1786c608,609 < a directory containing user and group calendars, one calendar per file --- > "Intialization": the command file read in by the CalendarTool whenever > it starts up 1788,1831c611,613 < a Settings file containing administrator password, email address, and < options <
    < The internal structure of repository directories and files is < implementation-dependent. The externally-visible names and organization of the < files are shown in Table 18. < <
    <
    <
    <
    < < < < < < < < < <
    File or Directory < Usage <
    Users < user database file or directory <
    Groups < group database file or directory <
    Locations < location database file or directory <
    Calendars < < directory of user and group calendar files, with each root file name identical < to the Calendar Tool user or group ID of its owner <
    Settings < administrative settings <
    <

    Table 18: Central Host Data Files. <
    <


    <

    < <
    < <

    < --- > "FileInfo": file containing settings established with the > `File->Connect' and `File->Local Files' commands. > 1833,1852c615 < When the Calendar Tool Administration program is installed, initial versions of < the repository files and directories are created, as described in < < Section 2.15.3 < < The file and directory names shown in < < Table 18 < < are fixed. The three databases are either single files or directories < organized in some implementation-specific manner. The Calendars directory must < contain one file for each user and group calendar, with user and group ID as < the root filename. The internal structure of the files and possible filename < extensions is left to the implementors. <

    < The fact that the databases may be a file or a directory allows the < implementors to use a database representation that is either in a single file < or multiple files in a parent directory. Independent of this level of < implementation detail, the implementors must meet the following specific < requirements: --- > Here's the order in which files are handled on start up: 1855c618,619 < the three databases must be in three separate files or directories --- > Any command-line files that do not exist are created as new Calendar Tool > files, with the contents of the Options file copied into them. 1857,1860c621,622 < the names of the files or directories must be those in Table < < Table 18 < --- > Any command-line files that exist as valid Calendar Tool files are opened, and > their default view windows are opened at window-manager-controlled positions. 1862c624,644 < user and group calendars must each be stored in a separate file --- > Any command-line files that are not valid Calendar Tool files or not otherwise > readable are ignorred, with a warning dialog to this effect displayed on the > screen. >

  • > If there's a Configuration file and it requires openning any of the > command-line files, these files a considered already opened. Even if multi- > window mode is on in a file's options, there is at most one default view window > opened for each file. If the positions of any of the command-line file default > view windows are specified in the Configuration file, the windows are > placed at those positions. The system then proceeds to process the rest of the > configuration file. In this way, the start-up configuration is the union of > the command-line files and the Configuration file. >
  • > If there's an Initialization file, it is executed last. This means > that the Initialization file can override any of the configuration > performed as a result of command-line file specification and > Configuration file processing. E.g., the initialization file > could contain the command CloseAll to undo all of the command-line and > Configuration file processing. Since there are no window placement > commands in the Calendar Tool comamnd language, there's no way to duplicate the > window-placement functionality of Configuration file. 1864,1890d645 < The purpose of these requirements is to allow the administrator readily to < assess the size of databases and calendars using the normal file sizing < functionality of the underlying operating environment. <

    < The repository files and directories are themselves stored in a single < directory, specified initially when the Calendar Tool Administration program is < installed. This superdirectory is the root of the entire central host < repository. If there are conventions in a particular operating environment for < where such application-specific files should be stored within the file system, < then such conventions can be followed during installation. After installation, < the administrator can change the location of the repository directory, if < necessary. This is done by changing the administrative option setting < described in < < Section 2.7.7. < < The repository directory may contain other files at the discretion of the < administrator. In particular, an administrator may choose to create settings < or sample calendar files, to be distributed to users as a convenience. These < files are created with the regular-user Calendar Tool, run by an administrator < who has privileges to save files in the repository directory. < < <

    < 2.8.9. Administrative Save and Save Copy <

    < 1892,1912c647,665 < When the administrator executes the `Save' command in the < administrative file menu, the system saves all changes made to any data since < the last save. Changes to "any data" mean any data added, changed, or deleted < in any of the administrative dialogs discussed in Sections < < 2.6.2 < < through < < 2.6.5 < < of the requirements. As discussed in < < Section 2.8.8, < < administrative data are stored in fixed files in a fixed location; these are < the files to which data are saved. <

    < To save a copy of all repository data, the administrator uses the `Save < Copy' command. In response, the system displays the dialog shown in < Figure 306. --- > Given the nixing of CommunityCalendar as the global calendar, > the folloiwng paragraph is WRONG. If the CommunityCalendar file is > deleted or corrupted, it's as if the user sets `Options.Meetings.When to > Show Meeting Notifications' to `never', but otherwise things are > as normal. Note that deleting (or renaming) CommunityCalendar on the > user's local computer does not delete any of the user's community > calendar information on any central host on which the user is registered. In > order to do this, the user must contact the system adminstrator(s) on the > host(s) from the user wants to be unsubscribed. There need not be any > explicitly identifiable CommunityCalendar file on the central host. > It is up to the user to be prudent about saving backup copies of calendar > files, including the CommunityCalendar. There is no Calendar Tool > command to download the contents of a CommunityCalendar file from a > Calendar Tool central host. >

    > Note that the value of the local files directory path, user settable via the > `File->Local Files' command, is stored in the application program > itself, not in a file. There's chicken-and-egg thing going on here [which I'll > explan a bit more in due course]. 1914,1968c667 <
    <
    <


    < <

    < <

    <

    Figure 306: Save-copy dialog.

    <
    <
    <
    < < The administrator selects the parent directory into which a copy of all < repository files is to be saved. The administrator can navigate and select in < the dialog in the same manner as described for the `Save As' dialog in < < Figure 295. < < The `OK' button is enabled whenever a writable directory is selected < in the scrolling list. For example, Figure 307 shows the administrator having < selected to save a copy of the repository in the directory < "/usr/local/caltool/Backup", which in his case is a subdirectory of < the repository itself. < <
    <
    <
    < <

    < <

    <

    Figure 307: Save-copy dialog filled in.

    <
    <
    <
    < <

    < When the administrator presses `OK', the system saves a complete copy < of all repository files in the selected directory. A "complete copy" means < that all directories and files listed in < < Table 18 < < are fully copied. No other files that happen to be within the repository < superdirectory are copied. If there are one or more files or directories < within the destination directory of the same name as the copied files, the < system provides no overwrite warning. Existing directories are written into, < existing files are fully overwritten. <

    < The save-copy command does not affect the files in the fixed repository < location, and does not change the location of the fixed repository. When the < administrator subsequently executes the `Save' command, data are saved < to the fixed repository. < < --- > 1970c669 < 2.8.10. Administrative Page Setup and Print --- > 2.8.8. File Connect and Local Files 1974,1986c673,675 < Administrative page setup and print commands provide precisely the same < functionality as in the regular-user Calendar Tool, described in < < Section 2.8.6. < < As with Calendar Tool printing, output is based strictly on the content visible < in active administrative windows. The page-setup and print dialogs are the < same. < < <

    < 2.8.11. Administrative Exit <

    --- > The `Connect' command was described in > > Section 2.6.6.1 1988,1992c677,678 <

    < When the administrator executes the `Exit' command, the system checks < if there are any unsaved changes to repository files or pending dialog edits. < If either or both of these conditions is true, the system displays the dialogs < of Figures 308 and 309, respectively. --- > on administrative commands. When the user selects the `Local Files' > command, the system displays the dialog shown in Figure 291. 1997c683 < --- > 1999,2007c685,686 < <

    <

    Figure 308: Offer to save repository data before closing. <

    <
    <
    <
    < < --- > Stick in the `Default Calendar Tool > Directory' 2009,2013c688 <
    <
    < <

    < --- > item from the Admin tab of the Options dialog. 2015,2016c690,692 <

    Figure 309: Warning when there are pending edits in < administrative dialogs.

    --- > > Also add field for entering default calendar to open on fileless app launch. >

    Figure 291: Local files dialog.

    2021,2031d696 <

    < If the administrator answers affirmatively in both cases, or if the dialogs < were not displayed, the system proceeds with the `Exit' by terminating < the current session of the Calendar Tool Administration program, thereby < returning the administrator to the underlying operating environment. < Termination of the administration program does not terminate the Calendar Tool < server program. The server remains running asynchronously until the < administrator executes the `Stop Server' command, as described in < < Section 2.6.5.1. < 2033c698 < --- > 2035c700 < 2.8.12. External Changes to Calendar Tool Files --- > 2.8.9. File Types 2039,2048c704,719 < As explained in the preceding scenarios of this section, both the Calendar Tool < and Calendar Tool Administration program normally attempt to disallow opening < and saving to ineligible files. However, if a user changes or deletes files < when the Calendar Tool or Calendar Tool Administration are running, normal < operation may be disrupted. < < Section 2.12.11 < < enumerates the conditions under which file-related errors can occur and the < associated error messages. --- > Discuss the different file types and the ramifications thereof, including > that filetypes are used to do the filename greying thing in open/load dialogs, > and that file typing may vary in different operating environments. >

    > OK, try this: (See the semi-epiphany in options.me.) Also, as a non- > annoyiing emacs-like behavior, we'll list all file names greyed out in all > save-as dialogs, but all the user to select them. This way in contexts like > the options save-as dialog, we can let the user select the standard Options > file in the chooser for overwriting. Given this behavior, we may well want to > specialize the overwrite message into two cateogories: (1) overwriting an > extant file of the correct type (e.g., overwriting Options from the > options save-as dialog or an extant cal file from File->Save As) (2) > overwriting an extant file of the wrong type (e.g., overwriting > Categories the options save-as dialog or an extant file of some non- > cal-tool type from the File->Save As dialog. It think is is all > pretty farging sweet. 2050c721 < --- > 2052c723 < 2.8.13. Operating Environment Conventions --- > 2.8.10. Calendar File Contents 2056,2071c727,740 < Different operating environments may have conventions for many aspects of file < handling. There may be conventions for file naming, including characters < allowed in file names, the length of file names, and the designation of a users < "home" directory. There may be varying functionality for file-selection < dialogs, filespace navigation, and other basic features of file management. < Environments may also have conventions for the location of installed files and < directories, such as a user's Calendar Tool directory. <

    < Implementors may follow required or appropriate conventions, but must implement < the features described in these requirements insofar as is possible. In < particular, the feature of the user being able to type a file name in the < file-open dialog must be retained, even if it is not standard in a particular < operating environment. Also, the user must be able to change the location of < the Calendar Tool user directory, even if the operating environment recommends < the placement of such directories in a particular location. < --- >

      >
    1. > scheduled items >
    2. > categories >
    3. > custom lists >
    4. > filter settings and custom filters >
    5. > windowing mode >
    6. > options >