The present invention relates to personal computer systems and, more particularly, to a method, system, and computer program product for providing interactive user assistance in the main graphical user interface (GUI) of an application program, and the use thereof.
In recent years, virtually all personal computers and workstations have adopted a graphical user interface (GUI) environment, which allows a user to manage the computer system and execute applications using a “point-and-click” method on objects shown on the computer display and/or in application windows. As a result, the vast majority of software applications developed for use on such computer systems tend to be “window-based” applications, often comprising a primary or main user interface window wherein key software functions are performed, and, optionally, one or more child or adjunct windows. Examples of window-based software applications in current use include Microsoft's Windows XP and Windows 2000.
Due to the wide variety of tasks capable of being executed on today's software, most window-based software applications are developed with some form of “help” system designed to assist a user in executing any of a variety of single or multi-step functions within or from a main user interface window. Examples of conventional help-systems include standard help window systems, system wizards, tutorials, and coaches.
Standard help window systems are typically separate from the software products for which they offer help, and operate by opening a help window, separate from the main user interface window, wherein instructions (often a list of steps) for executing an application task in the main user interface window are retrieved (often via a search function or by paging through lists of help topics) and displayed for the user. Upon review of the help instructions in the help window, a user then moves from the help window to the main user interface window to perform, within the main user interface window, the steps described in the help window.
Applicants have recognized, however, that such standard help systems are disadvantageous for several reasons. One disadvantage is that such help systems fail to provide contextual assistance within a main user interface window to visually guide a user to the areas of the main user interface window where user interaction(s) is/are required to execute a task in the main application. While such separate assistance windows may provide textual descriptions, and even visual representations, of icons, objects, or areas of the main interface where user interaction is required to perform a task (i.e. click “print” icon or “tools”), in the absence of some contextual help on the main interface in the location of the icon/interaction area, a user unfamiliar with the application interface is left to move from the assistance window to the main interface and search the main interface window for the icons, objects, etc. to be interacted with.
Another disadvantage is that, in certain standard help systems, a user cannot execute a given step within the main user interface while the assistance window is displayed and viewable by the user. That is, to “move” from the help window to the main user interface to execute a step following certain typical help system procedures, a user is required to exit the help window, either by closing such window or by first clicking on the main user interface window, which first click acts to automatically “hide” the help window behind the main user interface window, as is known in the art. Only after the assistance window is closed or hidden can the user then interact with the main user interface window to execute a user step. Accordingly, because many standard help systems do not allow the assistance window to be displayed while the steps described therein are executed in the main user interface window, a user must either remember all the user steps described in the assistance window and then move to the main interface window to execute all of such steps, or a user must repeatedly move between the assistance window and the main user interface window to alternately review, then execute, the user steps to perform an application task.
Wizards provide a closed system wherein a user is guided through a series of windows outside of the main user interface to perform an application task. Typically, the wizard windows provide a description of a task to be performed and ask for authorization from the use to perform such task. Upon authorization, the task is performed by the wizard, without providing the user an opportunity to interact with the main user interface until after the task is completed and the wizard system closed. Further, in such systems, users are not provided any contextual guidance, or other assistance, for performing user steps or tasks within a main user interface.
Many conventional tutorial modes operate in an adjunct window, apart from the main user interface, which displays a mock-up representation of the main user interface. Contextual user assistance is then provided within the adjunct window, which illustrates relative areas in the mock-up where similar user interaction is required on the main user interface window to achieve the application task. For example, a three-step task may be illustrated by highlighting three icons on the mock-up to be subsequently activated in sequence by the user within the main user interface. However, such help is still not given in within the specific context of the actual main user interface window, and a user cannot actually execute the illustrated steps while in the tutorial mode. Rather, the user is required to remember the highlighted steps, exit the tutorial mode, and move to the main user interface prior to executing the user steps.
Certain other help systems, including coaches and certain tutorials provide assistance on the main user interface. However, such help is still dissociated from the execution of the desired user steps and tasks on the main interface in that the help provided is not contextually displayed within the main interface and/or a user is required to exit one or more help windows or help modes before the tasks described therein can be executed.
Accordingly, applicants have recognized the need to provide a method, system, and computer program which overcomes the disadvantages of conventional help systems.
The present invention overcomes the aforementioned disadvantages by providing a method for assisting a user to execute a task in a program application, which method allows the user to interact with, and execute one or more steps to complete the desired task on, a main user interface while assistance information describing each one or more steps to be executed is displayed contextually on the main interface window. By allowing the user to execute steps on the main user interface while assistance information describing each step is displayed within the same main interface, the present methods facilitate the execution user steps, and the resulting application tasks, while avoiding the extraneous user time associated with exiting one or more assistance modes and/or moving between one or more separate help windows and the main user interface. In addition, the contextual display of information within the main user interface window according to the present invention more quickly directs a user to key objects in the main user interface that need be interacted with to perform a given step. A user can readily learn how to execute, and actually execute, in a step-by-step manner, the steps required to complete a desired application task, including a high-level multi-step task, within the main interface window in a manner that is more direct and less likely to cause confusion to the user.
Accordingly, in certain preferred embodiments, the present invention thus provides a method of providing assistance to the user of a computer application program having a main user interface window, the method comprising: determining when a user needs assistance to perform a program task; and contextually displaying an assistance panel within the main user interface window which describes a user step to be executed to perform the program task and allows the user to execute such step within the main user interface while the assistance panel is displayed within the main user interface window.
According to certain other preferred embodiments, a system and a computer program product for carrying out the inventive method are also provided.
In certain other embodiments of the present invention, the need for user assistance may be determined by a user's mouse entering a particular location on the screen and/or pausing in such location for a designated period of time. Any suitable method for detecting a mouse location or mouse hovering event known in the art can be adapted for use in the determining step of the present invention. In light of the disclosure herein, those of skill in the art will be readily able to provide any of a variety of means for determining the need for user assistance for use in the present invention without undue experimentation.
Referring back to
As used herein, the term “contextually displayed within the application main user interface window” refers to an assistance panel which is displayed: (a) within the two-dimensional space defined by a main user interface window; and is (b) placed within such space such that at least a portion thereof is overlapping, touching, or adjacent to, in a two-dimensional sense, an image, object, or particular area of the main user interface window where a user is required to interact to perform the step described in the assistance panel. In certain preferred embodiments, a contextually displayed assistance panel comprises an assistance panel which, in a two-dimensional sense, overlaps or touches the image/object/area of the main interface window where user interaction is required to perform the step described in the panel. In certain other preferred embodiments, a contextually displayed assistance panel comprises an assistance panel which, in a two-dimensional sense, is adjacent to the image/object/area of the main interface window where user interaction is required to perform the step described in the panel. Illustrative examples of contextually displayed assistance panels are shown in
Any means for contextually displaying an assistance panel according to step 102 of the present invention may be adapted for use herein. In certain preferred embodiments, this step may involve, for example, the steps of: (a) determining, via any of a variety of known methods, information relative to the task to be performed, the user steps to be executed to perform such task, and information defining various aspects of an assistance panel to be displayed for each user step, such as, the location within the user interface window where the panel is to be contextually displayed for the step, the shape and size of the assistance panel, and the content to be displayed in the assistance panel; and (b) displaying an assistance panel based on such determining step (a). For example, in certain preferred embodiments, the contextually displaying step 102 comprises the steps of retrieving a model for the task to be performed (“task X”), comprising all the user steps required to perform the overall task, descriptions of the steps, locations for displaying panels describing the steps, as well as, the sizes and shapes of each panel to be displayed, from a task model repository, and displaying one or more assistance panels based on the information retrieved from the model repository. In certain embodiments, the contextually displaying step further comprises communicating with the host application program (having the main user interface window) to adjust the main user interface window in some manner to allow an assistance panel to be properly contextually displayed. For example, if a user step to be performed in the sequence of steps necessary to perform a task is to be carried out (for example, via user interaction with a clickable object) in a dialog box of the main user interface, the contextually displaying step may comprise communicating with the host application to open the appropriate dialog box and then displaying an assistance panel in the appropriate context within the dialog box. In such embodiments, the contextually displaying step may comprise (i) determining, via any of a variety of known methods, information relative to the task to be performed, the user steps to be executed to perform such task, and information defining various aspects of an assistance panel to be displayed for each user step, such as, the location within the user interface window where the panel is to be contextually displayed for the step, the shape and size of the assistance panel, and the content to be displayed in the assistance panel; (ii) communicating with the application main user interface to adjust the main user interface window for contextually displaying the assistance panel therein, and (iii) displaying an assistance panel based on such determining step (i). In light of the description herein, those of skill in the art will be readily able to provide appropriate software code for storing and retrieving information to contextually display an assistance panel within a main user interface window based on such information without undue experimentation.
As indicated above, each contextually displayed panel comprises at least a description of the next user interaction to be conducted to perform the program task. In addition to such content, each assistance panel may further comprise one or more objects with which a user can interact to perform one or more desired functions. For example, as shown in
Each assistance window contextually displayed according to the present invention may be of any suitable size and shape for a given application. Preferably, the size and shape of a displayed window are selected to clearly describe to a user the next user step to be executed and, optionally, to provide some indication as to where within the main interface the next user interaction is required to perform the next user step. In certain embodiments, an assistance window of the present invention is preferably large enough to display, in a desired font and font size (preferably selected to be legible to an average user), a text description of the next user step to be executed, as well as, any other text, objects, or other information to be shown therein. At the same time, in certain applications, it is preferred that the assistance window comprise as little space of the main interface window as possible, to avoid covering important information and valuable window space. Those of skill in the art will be readily able to determine the assistance window size desired for a given application and to display a window of such size according to the present invention without undue experimentation.
The shape of the assistance window may be selected for any given application to function merely to surround the desired content to be displayed therein, or optionally, the window may be shaped to direct the user's attention to a particular portion of the main interface. For example, a portion of the assistance window may be tapered, and especially, tapered to a point which indicates an area on the main interface window where user input is required to execute the described user step.
In certain preferred embodiments, appropriate software code is provided such that the contextually displayed assistance panel of the present invention is an overlay graphic which, in a three-dimensional sense, is located in a “plane” or “layer” nearer to the user than the “plane” or “layer” of the main user interface window. That is, as will be recognized by those of skill in the art, the view in the work area of a GUI, such as the main user interface window of the present invention, may be perceived in a three-dimensional sense as a series of layers, with certain objects being in the nearest plane or layer relative to the user and the remaining objects occupying layers or planes “beneath” (i.e., deeper) in the work area. Just like a physical desktop of a desk, when an object is in the nearest plane, it overlaps (covers) the other objects underneath it, thereby obstructing the view of some or all of the object(s) underneath. In the preferred embodiments of the present invention, by presenting the assistance panels of the present invention as overlays, the assistance panels can be readily displayed over a main user interface window to appear, in a two-dimensional sense, in any desired context within the main user interface window.
In certain preferred embodiments of the present invention, appropriate software code is employed so that the assistance panels remain in their relative two-dimensional contexts within the main user interface window upon adjustment in size or location of the main user interface window. That is, as a main user interface window is increased or decreased in size (for example, the window is maximized or reduced), an assistance panel contextually displayed therein preferably increases or decreases in size to the same degree such that the relative size of the assistance window as compared to the main user interface window remains approximately the same. In addition, as the main user interface window is moved around a computer GUI screen, the assistance panel preferably moves with the main user interface to maintain the same relative two-dimensional position therein.
As indicated in
As indicated in
In certain other embodiments, applicants note that the contextually displayed panel from step 102 may be closed, and optionally replaced with another panel, prior to execution of the desired user step. For example, in certain embodiments a user step may take some noticeable time to execute within the host application. In this case, in certain embodiments, the displayed panel may be closed and replaced with a next panel indicating “Task being executed. Please wait” or the like. Alternatively, if there is an internal problem in executing the desired step, and error panel (i.e. “Error, please try again”) may be displayed over the panel displayed in step 102 or replace such panel (upon closing of the panel from step 102).
The methods of the present invention are suitable for use in assisting users to conduct single- or multiple-step tasks. Referring to
In certain preferred embodiments, the methods of the present invention comprise methods for assisting users to perform a multi-step task. Referring to
By way of example, and without intending to be limiting, the execution of a multi-step task (“apply color”) using the assistance methods of the present invention is illustrated from a user's point-of-view with reference to
As shown in
With reference to
Referring to
Referring to
By way of further example,
The above-described steps can be implemented using standard well-known programming techniques. The novelty of the above-described embodiment lies not in the specific programming techniques but in the use of the steps described to achieve the described results. Software programming code which embodies the present invention is typically stored in permanent storage of some type, such as permanent storage of a computer running a GUI configured to include the present invention. In a client/server environment, such software programming code may be stored with storage associated with a server. The software programming code may be embodied on any of a variety of known media for use with a data processing system, such as a diskette, or hard drive, or CD-ROM. The code may be distributed on such media, or may be distributed to users from the memory or storage of one computer system over a network of some type to other computer systems for use by users of such other systems. The techniques and methods for embodying software program code on physical media and/or distributing software code via networks are well known and will not be further discussed herein.
It will be understood that each element of the illustrations, and combinations of elements in the illustrations, can be implemented by general and/or special purpose hardware-based systems that perform the specified functions or steps, or by combinations of general and/or special-purpose hardware and computer instructions.
These program instructions may be provided to a processor to produce a machine, such that the instructions that execute on the processor create means for implementing the functions specified in the illustrations. The computer program instructions may be executed by a processor to cause a series of operational steps to be performed by the processor to produce a computer-implemented process such that the instructions that execute on the processor provide steps for implementing the functions specified in the illustrations. Accordingly, the figures support combinations of means for performing the specified functions, combinations of steps for performing the specified functions, and program instruction means for performing the specified functions.
While there has been described herein the principles of the invention, it is to be understood by those skilled in the art that this description is made only by way of example and not as a limitation to the scope of the invention. Accordingly, it is intended by the appended claims, to cover all modifications of the invention which fall within the true spirit and scope of the invention.