A user interface is a portion of a program with which a user interacts. Types of user interfaces include command-line interfaces, menu-driven interfaces, and graphical user interfaces. A windowing environment, which uses a graphical user interface, is an operating system or shell that presents the user with specially delineated areas of the screen called windows that may be resized and moved around on the display of a computer. The Macintosh OS® and Microsoft Windows® are both examples of windowing environments. Graphical user interfaces (hereinafter “GUIs”) are one of the means by which a user interacts with an application, which is a program designed to assist in the performance of a specific task, such as word processing, accounting, software distribution, and the like.
Wizards are very commonly used within windowing environments and by hundreds of applications that execute in these environments. Those skilled in the art and others will recognize that a wizard is an interactive utility that guides a user through a potentially complex task, typically through a series of question-and-answer dialog boxes. Typically, wizards consist of multiple wizard pages through which a user progresses by clicking on various user interface components such as “Next” and “Back” buttons. Each wizard page provides some information to the user to guide the user through a subset of tasks necessary to complete a larger task. Moreover, typically, the user provides some input on each wizard page that is used by the application program the wizard is designed to service.
Since wizards were introduced, they have gained wide acceptance as a way to guide end users through complex tasks in a simple and uniform manner. As their acceptance has grown, so too, has the complexity of the tasks that wizards have been called upon to perform. In addition, due to increased usage, certain aspects of most wizards, such as their “look and feel,” have become uniform so that windowing environments may be more readily understandable to a user.
Conventional wizards, when in complete form, are easy to navigate and use for even inexperienced end users. However, with the increasing popularity of wizards, users are repetitively entering data into wizard pages that have been previously entered during previous wizard sessions. For example, a user may employ a wizard to interact with a word processing program in order to create a letter. In this instance, the wizard may prompt users for certain data that is used by the word processing program to create the letter. In subsequent wizard sessions, the wizard may prompt -the user for the same data to create a different letter or other document. In this instance, a user is required to repetitively input the same data into the wizard pages even though the data was previously entered in a previous session.
The foregoing problems discussed in the Summary are overcome by a re-use wizard, embodiments of which are directed to recording data input during a wizard session in a stored “template” and providing the user with mechanisms for reusing the data when the re-use wizard is subsequently executed. More specifically, in one aspect the re-use wizard performs a method that leverages data input during a previous wizard session. In this regard, when a command handled by the re-use wizard is identified, the method allows the user to choose among one or more “templates” that may be used to satisfy the command. If the user selects one of the available templates, the method causes data stored in the template to be applied to an application object that is the target of the command generated by the user. As a result, the user does not need to repetitively enter data when tasks handled by the re-use wizard are scheduled to be executed.
In another embodiment, the re-use wizard serves as a software system that causes program code to be executed using data that was obtained during a previous wizard session. More specifically, the software system includes (1) a graphical user interface that obtains data from the user; (2) a data store that stores data input into the graphical user interface; and (3) a coordination module operative to cause data input into the graphical user interface to be stored in the data store and recalled when necessary to satisfy a command that is handled by the re-use wizard.
In yet another embodiment, a computer-readable medium is provided with contents, i.e., a program that causes a computer to operate in accordance with the method described herein.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
The foregoing aspects and many of the attendant advantages of this re-use wizard will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
The detailed description that follows is represented largely in terms of processes and symbolic representations of operations by conventional computer components, including a processor, memory storage devices for the processor, connected display devices, and input devices. Furthermore, these processes and operations may utilize conventional computer components in a heterogeneous distributed computing environment, including remote file servers, computer servers and memory storage devices. Each of these conventional distributed computing components is accessible by the processor via a communication network.
Embodiments of the re-use wizard described herein are directed to making a graphical user interface on a computer system more convenient and easier to use. More specifically, the re-use wizard records and re-uses data entered during a wizard session so that program code may be automatically executed when a user issues a command that identifies an application object that varies between wizard sessions. For example, consider a wizard associated with a word processor application that allows a user to generate a letter that includes the date, address of the sender, greetings, and closing statements. Such a wizard may include multiple pages where each page is designed to allow the user to set up a portion of the letter. In this regard, the first wizard page might allow the user to choose the format for the date. The second wizard page might allow the user to choose whether the letter is formal or informal in presentation. Once the wizard pages have been completed, the wizard causes the formatted data to be inserted in a word processing document at locations appropriate for a letter. However, typically with existing systems, users have not been able to “re-use” data that was previously entered into a wizard. For example, if the user wanted to create a second letter that has the same attributes as the first letter, the user would proceed to repetitively input data into the wizard pages to create the same style of letter. However, aspects of the re-use wizard described herein allow a user to “record” a wizard session and re-use data entered during the session. The saved wizard session may be used as a template so that a user may later identify an application object (e.g., word processing document) that should have the same attributes as the template.
While the re-use wizard will primarily be described in the context of making an aspect of a graphical user interface commonly known as a wizard easier to use, those skilled in the relevant art and others will recognize that aspects of the re-use wizard are also applicable to other areas than those described. In any event, the following description first provides an overview of an environment and system in which the re-use wizard may be implemented. Then a method that implements aspects of the re-use wizard is described. The illustrative examples provided herein are not intended to be exhaustive or to limit the claimed subject matter to the precise forms disclosed. Similarly, any steps described herein may be interchangeable with other steps or combinations of steps in order to achieve the same result.
The following discussion is intended to provide a brief, general description of a networking environment 100 suitable to illustrate an exemplary application of the re-use wizard. As illustrated in
For the sake of convenience,
Aspects of the re-use wizard may be implemented in a number of different applications of which the following is only an example. In an exemplary application, the re-use wizard is implemented on a server-based computer (e.g., the distribution server 102) in conjunction with a software system that distributes application programs and software updates to client-based computers (e.g., the client computer 104, the PDA 106, and the cell phone 108). In general, the distribution server 102 acts as a distribution point for software that regularly becomes available from a trusted entity. In this regard, the distribution server 102 maintains a software system configured to transmit application programs and software updates from the distribution server 102 to one or more client-based computers connected to the network 110. Moreover, the software system maintains functionality that assists administrators in performing tasks including identifying the software state of client computers connected to the network 110.
In one aspect, the distribution server 102 allows an administrator to customize how application programs and software updates will be installed on the client-based computers. For example, the software system maintained on the distribution server 102 allows a system administrator to customize how software updates will be installed on client computers in an enterprise network. In this regard, the distribution server 102 may be configured to perform installations at predetermined periods of time, thereby minimizing inconvenience to users. Similarly, some types of software updates may be assigned a higher priority than other software updates. For example, software updates to antivirus software may be assigned a high priority level so that they may be installed as soon as they become available. In one exemplary embodiment, aspects of the re-use wizard are implemented on the distribution server 102 to obtain and re-use configuration data that defines how applications and software updates will be installed on client-based computers. However, those skilled in the art and others will recognize that aspects of the re-use wizard may be implemented in other contexts not described herein.
As will be appreciated by those skilled in the art and others,
Now, with reference to
The depiction of the distribution server 102 illustrated in
As illustrated in
The depiction of the distribution server 102 illustrated in
As illustrated in
Now with reference to
As illustrated in
As illustrated in
Generally described, a wizard is any utility that uses a “step-by-step” method to obtain input from a user for the purpose of accomplishing a task. Typically, wizards obtain input using a plurality of graphically based dialog boxes that support various types of interactive input mechanisms (e.g., text boxes, check boxes, buttons, etc.). Similarly, the coordination module 204 may obtain input using a plurality of graphically based dialog boxes or similar input mechanisms when a command is generated from within an application. However, as described in reference to block 302, the coordination module 204 may also perform functions in other instances without obtaining input through the use of a traditional wizard interface.
At block 304, the coordination module 204 prompts the user to identify a saved wizard template. If block 304 is reached, program code that is designed to obtain input regarding a task handled by the coordination module 204 is activated at block 302. In this instance, the user is prompted with at least one wizard page that requests input regarding whether a saved template should be used in order to perform the task requested by the user. In the example described above that involves software updates, a system administrator may select a software update in an application program that will be distributed to client-based computers connected to a network. In this instance, at block 304 the coordination module 204 generates and displays a wizard page that requests input regarding whether an existing template should be used to distribute the software update. As mentioned previously, a system administrator may define a plurality of templates for distributing software updates such as templates designed for critical software updates that are installed as soon as they become available or software updates that are distributed and installed at a time that minimizes the inconvenience to users.
At decision block 306, the coordination module 204 determines whether the user selected a template at block 304 to perform a task that is handled by the re-use wizard. As described above and illustrated in
Returning to
In some instances, all of the data needed to perform a task handled by the re-use wizard is not known when block 307 is reached. For example, a user may save a template so that certain types of information are required to be input by the user during a wizard session. Moreover, the application object that will be used to perform the desired task may not have been previously selected by the user. In instances when all of the required data is not known, data stored in the template, selected at block 304, may be “pre-filled” in the relevant portions of the wizard pages that are displayed to the user. This enables a user to quickly proceed through a set of wizard pages, filling in the required data and potentially modifying data that was provided as a default value.
At block 308, a set of wizard pages is displayed and data needed to perform the task handled by the re-use wizard may be input into the set of wizard pages by the user. When block 308 is reached, entries in the wizard pages may be pre-filled if the user selected a template at block 304. Alternatively, the user may be required to input data into the set of pages at block 308. In any event, as mentioned previously, aspects of the re-use wizard may be implemented in conjunction with any number of different application programs to make a computer more user-friendly. However, since creating and displaying a set of wizard pages that are designed to obtain data from a user are generally known in the art, additional description of the techniques used to obtain input from the user at block 308 will not be described in further detail here. However, once all of the necessary data is entered, the coordination module 204 proceeds to block 312, described below.
For illustrative purposes and by way of example only, exemplary wizard pages are illustrated in
With reference to
As illustrated in
At block 316, program code associated with an application that implements the re-use wizard is executed. As mentioned previously, aspects of the re-use wizard may be implemented in conjunction with any number of currently existing or yet to be developed applications that obtain data from a user using a “step-by-step” input system (e.g., a wizard). At block 316, after all of the data necessary to execute the desired task is obtained by the coordination module 204, the data is made available to the appropriate application that executes program code to perform the desired task. Then coordination module 204 proceeds to block 318 where it terminates.
It should be well understood that aspects of the re-use wizard as described herein may be performed in different ways without departing from the claimed subject matter. For example, steps in the coordination module 204 described above with reference to
While the preferred embodiment of the re-use wizard has been illustrated and described, it will be appreciated that various changes can be made therein without departing from the claimed subject matter.