![]() |
|
|
CCK Wizard Machine DesignTable of Contents Target Audience
Target AudienceAll groups involved in developing and supporting Netscape's Client Customization Kit.CCK ComponentsThe main goal of CCK (Client Customization Kit) is to allow ISPs to customize and build an installer for the latest Netscape Communicator. Building a customized communicator involves an ISP to work with 4 major components of CCK. They are,Shell :
Design of CCK Wizard applicationThe CCK Wizard that we are building for next generation Netscape Communicator, is designed with 2 main goals. They are Easy and Stable. We want to provide ISPs a tool that is easy to use and stable to operate with. CCK design past required ISP to run the components like Config Editor, Account Setup Editor and Install Builder separately in order to customize the Communicator. Such a design can lead to redundant data collection and disconnected experience to the CCK user. So, the new CCK designed is aimed at providing a unifying experience of all the above components. User can run CCK wizard to provide the set of required customizations and build a media image (CD or Diskette) by walking through the series of screens presented by the CCK wizard. This approach allows components to transfer the data among themselves and remove the burden on the user to run the components separately entering the same information in multiple locations.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.
Design of CCK Wizard MachineAs explained above, Wizard Machine is the key component of CCK Wizard. Wizard Machine is like a service provider for all the top level CCK components that ISP uses. It starts the CCK Wizard and processes INI files, presenting back the screens that ISPs have to use to enter the customization information and allows the top level components to perform their tasks by providing them access to the required information.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.
A Sample INI File
i18n issuesIt is always important for us to develop our application in such way that it can be easily localized. Currently, we are discussing with i18n group in identifying the areas that need to be focussed in making localization an easy task with respect to the the new design proposed above.
Author : Bhuvan Rachamreddy Date : 12/07/98
|
||||||||||||
| Copyright © 1998 The Mozilla Organization. | |||||||||||||