CCK Wizard Machine Design
Table of Contents
|This component provides ISP an opportunity to customize the very first (shell) dialog that pops up when the end user inserts the Communicator CD in his/her machine. The shell dialog(s) presented to the user displays an image in the background and few buttons and text explaining the user about the installation options in the foreground. This is a great place for an ISP to customize all these elements (viz., back ground image, Dialog captions, text associated with buttons, etc.,). So, Shell interface will have text fields allowing ISPs to enter the customized information viz., customized text, caption and path to background image.|
|Majority of the customizations to the Communicator can be done using Configuration Editor. Config Editor allows ISP to set default preference elements for the Communicator components (like mail, news, bookmarks, etc.,). This helps ISP to take care of all customizable preferences allowed by CCK, for all ISP customers at once.|
|ISP will also have an option to customize the Account Setup Wizard. Account Setup Wizard is used by the end users who want to create a new Internet account or modify an existing Internet account. Account Setup Editor lets ISP to provide the customized information that ISP wants to present to the end user when the end user runs the Account Setup Wizard. Typically, ISP can change the image that appears on the each screen of Account Setup Wizard and set a common Title to all the pages.|
|Install Builder is a critical component as it gathers all the customization information entered by an ISP and creates a media (CD/disk) image (a directory of files). ISP can simply drop the image thus created on to a CD/disk and distribute the same to all his/her end users. Install Builder also allows ISPs to define the installation experience that end users to going to get when they run the CD.|
The new approach brings in a new component that needs to built into CCK Wizard, i.e., Wizard Machine. Wizard Machine will be the driving force behind the CCK application. All other CCK components depend on Wizard Machine in displaying the dialogs and in transferring the information among themselves. Wizard Machine provides APIs to the all other components to collect and disseminate the information. ISP never interacts with Wizard Machine directly. ISP performs his tasks using one of the other tools (viz., Config Editor, Account Setup Editor or Install Builder) and in turn each of these components depend on Wizard Machine creating and displaying dialog interfaces to ISP.
The following diagram explains the design of new CCK Wizard application.
Another interesting thing to note in the new approach is that the Account Setup application can also be built as an INI file based application. That will allow Account Setup to use the APIs offered by Wizard Machine to collect and disseminate the information across the screens in creating or modifying an account.
The underlying advantage in shifting to INI file (from the standard VC++ resource file usage) is to give the flexibility to the ISP in case to the ISP chooses to tailor the screens to the ISP's requirement. ISP can choose to move components around, remove some components or add additional fields. Also INI file allows us to modify the screens, if we need to do so in future, with no need to recompile the sources.
Wizard Machine will use a m-way tree data structure to manage the data that it gathers from INI files that it receives as input. A set of top level global defaults will be defined for some common elements like a default image that can appear on all CCK/Account Setup Wizard pages and a title that can appear on CCK/Account Setup wizard pages, etc.,. A tree as shown below will be built so that Wizard machine can access and update the information easily. Building of tree happens dynamically as Wizard Machine reads INI files.
The node with cck.ini will be the root of the tree i.e., cck.ini will contain information about the globals and also informs Wizard machine that it has four sub pages. The four nodes that are branching out of root are the sub pages found in cck.ini. Wizard machine starts at the root of the node and visits the all nodes of the tree reading INI file corresponding to each node and storing the same in the inter data structures. Global Defaults, represented by a node, will have link with root node. If for some reason, none of the INI files contains the information about globals, Global Defaults node will supply that information. Arrows between any 2 nodes point at each other indicating that data access can ne in both directions.
Wizard Machine with above data structure recursively parses all INI
files and builds a knowledge base. It handles all the common wizard functionalities
like Next and Back buttons and passes the specific tasks to the individual
top level components.
|#Represents variables that are specific to this page - part of control
#Represents any sub pages under this component
#Represents all fields that go on to the dialog pertained to this page
Author : Bhuvan Rachamreddy
Date : 12/07/98