|Publication number||US6717589 B1|
|Application number||US 09/527,939|
|Publication date||Apr 6, 2004|
|Filing date||Mar 16, 2000|
|Priority date||Mar 17, 1999|
|Publication number||09527939, 527939, US 6717589 B1, US 6717589B1, US-B1-6717589, US6717589 B1, US6717589B1|
|Inventors||Pete Grillo, Alvin Pivowar|
|Original Assignee||Palm Source, Inc.|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (11), Referenced by (61), Classifications (6), Legal Events (10)|
|External Links: USPTO, USPTO Assignment, Espacenet|
The present application claims the benefit of U.S. Provisional Application No. 60/124,865 filed Mar. 17, 1999, incorporated herein by reference.
This invention relates generally to computerized help systems and, more particularly, to computerized help systems for personal computer application programs.
Personal computer systems have become ubiquitous in both the office and the home because they are powerful and flexible general purpose machines capable of running (“executing”) a wide variety of application programs. These application programs can range from the simple to the exceedingly complex. Commonly used application programs are word processors, spreadsheets, calendars, database programs, and Internet Web browsers, among others.
The level of sophistication of personal computer users varies considerably from that of a complete novice to the expert or “guru.” However, all users tend to, at some time or another, need some help or assistance in using an application program. This help can be derived from the application program vendor, a more knowledgeable user, a printed manual for the application program software, or by computerized (“on-screen”) help. The on-screen help can be provided by the application program itself, a separate help program, or as on-line help from a local or remote computer system.
Most modern personal computer systems use a “windowing” type protocol wherein displays created by application programs are created within one or more windows on the screen of the computer. The windows can range in size from the entire display screen to a small area on the display screen. Typically, these windows are “framed” such that the images within the window are more easily distinguishable from other images on the computer screen. The windows may be provided by the operating system (such as the Microsoft Windows operating systems, the Macintosh operating systems, or Unix operating systems), or may be provided by programs running on the computer system, such as the Java Virtual Machine (JVM).
Windowing systems are often referred to as “modal” systems in that only one window at a time is available for user input. To operate a windowing system in anything other than a modal fashion would create considerable confusion in that a user would not know which window of the various windows displayed on the screen is currently active.
Most on-screen help systems are modal-type help systems in that they are provided in their own help window which is separate from the window being used by the application program from which help was requested. The problem with these modal help systems is that they require a certain level of knowledge and sophistication by a user. That is, a user has to know how to open the help window, navigate through the help system, and then close the help window. While these are not difficult tasks, it has been found to be one which eludes novice and occasional users of personal computers.
Because of the difficulties encountered with modal on-screen help systems, a few non-modal help systems have been developed. One example of a non-modal on-screen help system is “balloon help” available in some later versions of the Macintosh operating system available from Apple Computer, Inc. With balloon help, the Macintosh operating system displays a small balloon enclosing textual information concerning an object that has been engaged with the on-screen cursor (“pointer”) for a predetermined period of time. In general, balloon help is only available at the system or “finder” level of the Macintosh operating system, unless it has been specifically programmed into application programs.
Many users of Macintosh computer systems end up turning off balloon help because the information that it provides does not offset the sometimes annoying characteristics of balloon help. One of these annoying characteristics is that balloon help tends to pop up as the cursor is moved over objects on the screen whether help was needed or not. Another deficiency is that the balloons are placed by software (typically the operating system itself), sometimes resulting in other objects on the screen being obscured.
Microsoft Windows Operating Systems, such as Windows 95, Windows 98, and Windows NT, provide a non-modal type of help known as “tool tips” that is somewhat similar to that of balloon help. Microsoft tool tips are primarily application-based in that they evolved from the Microsoft Excel for Windows 3.1 Application Program. More particularly, tool tips are primarily tied to the tool bar of an application program, although it is sometimes also used in a status bar of the application program. To use tool tips, the cursor is held over a button on the tool bar without activating the button, and a small yellow box will appear on the screen having a one-line explanation as to the function of that button. Since tool tips are pretty much restricted to use on the tool bar and, sometimes, the status bar, it tends to be less obtrusive than the Macintosh balloon help.
While the balloon help of Macintosh Computer Systems and the tool tips provided on Microsoft Windows computer systems can provide useful non-modal help, they tend to be quite limited in nature and, under some circumstances, can actually promote confusion in the user. This is due, in part, to the fact that both balloon help and tool tips adopt a object/verb mode for providing help wherein an object is selected and then actions that can be taken with respect to that object are listed. This object/verb paradigm is exemplified by a modal-type help that is also provided under the Windows Operating System. That is, a right mouse button click will result in a “pop-up” window on the screen of the computer operating under Microsoft Windows Operating System, and will provide a list of every action that can be performed on the selected object on the screen. Unfortunately, using an object/verb mode for communicating help ignores the context within which the help is requested. For example, tool tips will provide help for buttons on a toolbar that are not currently active.
Another problem with the object/verb paradigm is that an object needs to be selected before its function is displayed. Therefore, if the user does not know that a particular object has a function in a particular context, he will not know that he should activate, for example, balloon help or tool tips, and thus will not receive the desired assistance.
The present invention provides non-modal help which uses a verb/object paradigm. That is, the current context of the application program for which the user needs help is determined, and a help screen is provided which shows all of the actions that can be taken from that context. Unlike an object/verb paradigm, actions that cannot be taken within that context will not be listed, and no possible actions will be missed by the user.
Briefly, a computerized non-modal help system includes a display screen providing a window for a number of output displays of an application program, a collection of pre-defined images mapped to the output displays by their context, a user input device for initiating non-modal help, and a non-modal displayer which displays one of the predefined images within the window in the place of its contextually-related output display. Preferably, the predefined images are stored as static bit map images including a dithered representation of the context in which the help was requested and a number of help balloons strategically positioned on the dithered image. Even more preferably, the balloons are positioned manually by a graphic artist to maximize their placement on the dithered image. By providing a balloon to described the functionality of every (or most) of the active elements, a user is provided with a quick framework or “skeleton” view of the meaning and operation of the various elements in the display.
In a preferred embodiment of the present invention, the screen and the user input device form a part of a client computer system. The help system can further include a server computer system coupled to the client computer system, such as by a TCP/IP network. Common forms of TCP/IP networks are referred to as Intranets and the Internet. In this embodiment, the client computer system supports a browser process, and the server computer system supports a server process. The computerized processes running on the client computer system comprise Applets that are delivered from the server computer system to the client computer system via the network. However, once the Applets are running on the client computer system, they communicate directly with the server processes through, for example, sockets in a Java-based system.
In another aspect of the present invention, a computerized help system includes a display screen providing a process window for a number of output displays of a computerized process, a user input device for initiating non-modal and modal help, non-modal help for displaying help within the process window and response to a request for non-modal help by the user, and modal help for displaying help within a help window in response to a request for modal help by the user. Preferably, the user input device is a pointer mechanism wherein the modal help is initiated by a help button displayed on the screen. The non-modal help is preferably initiated by a pointer positioned within a predetermined distance of the help button by the pointer mechanism under the control of the user. The non-modal help preferably includes a collection of pre-defined bitmap images contextually related to the output displays, where each bitmap image includes a non-literal representation of its related output display and textual help within the representation.
A method for providing non-modal help in accordance with the present invention includes the operations of detecting a user request for non-modal help with respect to a dynamic application display, determining a context of the dynamic application display, retrieving a static image contextually related to the dynamic application display, where the static image includes a non-literal representation of the dynamic application display and textual help within the representation, and displaying the static image in the place of the dynamic application display.
An advantage of the present invention is that non-modal help is provided which operates on a verb/object paradigm rather than the object/verb paradigm of the prior art. The non-modal help is therefore very useful, even for novice or very occasional personal computer users in that it presents in a straightforward fashion the majority, if not all, of the options available to a user within the context of the application program.
The present invention is also advantageous in that it cleanly ties together both non-modal and modal help by using the approach of a cursor to a modal help button as the indication that non-modal help should be provided to the user. That is, a user can enter non-modal help by simply moving a cursor to within a predetermined distance of the modal help button, and can return to the application program by moving the cursor back to the display of the application program.
These and other advantages of the present invention will become apparent to those skilled in the art upon a reading of the following descriptions of the invention and a study of the several figures of the drawing.
FIG. 1 is a representation of a computerized help system in accordance with the present invention;
FIG. 2 is a block diagram of a client computer system and a server computer system used in the present invention;
FIG. 3 is a block diagram of a networked computerized help system of the present invention;
FIG. 4A is an illustration of a home screen of an application program;
FIG. 4B is an illustration of non-modal help being provided with respect to the context of the view of FIG. 4A;
FIG. 5A is an illustration of a conference room scheduling screen;
FIG. 5B is a view of non-modal help being provided with respect to the context of the view of FIG. 5A;
FIG. 6A is a view of the conference room scheduler in a day view;
FIG. 6B is an illustration of non-modal help being provided for the context of the view of FIG. 6A;
FIG. 7A is a view of a meeting with an attendee tab forward;
FIG. 7B is an illustration of non-modal help being provided within the context of the view of FIG. 7A;
FIG. 8A is a view of a meeting with a room tab forward;
FIG. 8B is a view of non-modal help being provided within the context of the view of FIG. 8A;
FIG. 9A is a view of an “edit a meeting” screen, with an attendee tab forward;
FIG. 9B is a view of non-modal help being provided within the context of the view of FIG. 9A;
FIG. 10A is a view of an “edit a meeting” screen, with a room tab forward;
FIG. 10B is a view of non-modal help being provided within the context of the view of FIG. 10A;
FIG. 11A is a view of a modal help screen in accordance with the present invention;
FIG. 11B is an additional view of modal help illustrating the navigation capabilities of modal help of the present invention;
FIG. 12 is a process diagram illustrating a preferred process for a computerized help system in accordance with the present invention;
FIG. 13 illustrates a user input handling process in accordance with the present invention;
FIG. 13A illustrates a method for entering non-modal help in accordance with the present invention;
FIG. 14 is a flow diagram of the repaint process of FIG. 13; and
FIG. 15 is a flow diagram of the “create and start thread” process of FIG. 13.
In FIG. 1, a computerized help system 10 includes a computer 12, a computer display screen14, and user input devices such as a mouse 16 and a keyboard 18. Optionally, the computerized help system can include a server computer system 20 coupled to the computer 12 by a network 22.
The computer system 12 is preferably a personal computer system capable of running a Windows operating system provided by Microsoft, Inc. of Redmond, Calif. Alternatively, the computer system 12 can be a Macintosh computer system provided by Apple Computer, Inc. of Cupertino, Calif., a workstation provided by Sun Microsystems, Inc. of Mtn. View, Calif. or Hewlett Packard Company of Palo Alto, Calif., or any other windowing computer system. The monitor 14 is preferably a standard graphical display monitor which be based on cathode ray tube (CRT), liquid crystal display (LCD), plasma emission, and other display technologies. Such displays or “monitors” are available from a variety of sources. The mouse 16 is one example of a class pointing devices which include track balls, joysticks, touch pads, etc. A keyboard 18, typically including cursor, function, and control keys in addition to the standard alphanumeric keyboard is also standard and is available from a variety of sources.
In an embodiment of the present invention, the computerized help system is fully implemented on the computer system 12. In other embodiments, the computerized help system is implemented over a network system to which the computer 12 is coupled. Another computer 20 on the network 22 can be designated as a “server” as either a part of its functionality or as its entire functionality. That is, the server 20 may simply be another computer on the network 22 which provides server services to one or more computers on the network, while still providing other services to local or remote users. Alternatively, the server 20 can be dedicated to server functions.
Illustrated on display screen 14 is a network browser window 24 having standard pull-down menus 26 and navigation buttons 28. The current URL for the browser is shown in a small window 30. The network browser 24 illustrated in this FIG. 1 is the Microsoft Internet Explorer browser, although other network browsers, such as the Netscape Navigator provided by Netscape Communications, Inc. of Mtn. View, Calif. are also suitable.
Within the network browser window 24 is a display window 32 which is displaying a web page 34 having the universal resource locator (URL) indicated in window 30. It should be noted that the web page 34 does not need to be accessed over a network 22, although it may be accessed over the network 22. That is, the web page 34, and other associated web pages, may be sorted locally on the computer 12. The web page 34 as seen in FIG. 1 is the “in/out home screen” of an illustrative application program using the help system of the present invention. While the help system will be described in terms of this application program, it will be appreciated by those skilled in the art that the concepts of the modal and non-modal help features of the present invention are generally applicable to a wide variety of application programs.
In FIG. 2, a block diagram of an exemplary computer system 12 in accordance with the present invention includes a microprocessor 36, an I/O bus 38, and a memory bus 40. The microprocessor 36 is coupled to both the I/O bus 38 and the memory bus 40 as will be appreciated by those skilled in the art. Often, the microprocessor 36 is coupled to the buses by a specialized set of chips known as a “chip set” which perform a number of bus, I/O, and memory functions.
Memory such as ROM memory 42 and RAM memory 44 are typically coupled to the memory bus 40, while they can also be coupled to other buses such as the I/O bus 38. ROM 42 and RAM 44 are two examples of computer readable media wherein data and instructions can be stored.
A number of devices known as “peripherals” can be coupled to the microprocessor 36 via the I/O bus 38. For example, the display screen 14 can be coupled to the I/O bus through a suitable video interface. Other examples of typical peripherals are CD-ROM drives 46, a network interface card 48, a floppy disk drive 50, and a hard disk drive 52. Since all of these peripherals can store data and program instructions, these peripherals are further examples of computer readable media. The architecture of the computer system 12 of FIG. 2 is also applicable to other computer systems of the help system 10, such the server 20 (see FIG. 1).
In FIG. 3, a block diagram of a network version of the help system 10 includes a number of client computer systems labeled 12A, 12B, . . . 12N. On each of the clients, a suitable web browser, such as the aforementioned Microsoft Internet Explorer web browser, is used to communicate with other processes in the help system 10. More particularly, the client computer 12A, 12B . . . 12N are coupled to the network 22 by network connections by 54A, 54B . . . 54N. A web server 20 is likewise coupled to the network 22 by a network connection 56. As will be appreciated by those skilled in the art, the network 22 can be the backbone of a TPC/IP protocol network such as the Internet, an Intranet or an Extranet. In the case of the Internet, the network connections 54A-54N and 56 are typically accomplished through one or more Internet Service Providers (ISPs).
In operation, the web server 20 is typically accessible through the Internet or other TPC/IP protocol network on a continuous basis. The clients, such as client 12A, is often not always connected to the network 22. For example, in the case of personal computers, the computers are often turned off when not in use. Furthermore, some network connections are not always operational even though the computer 12A may be turned on. For example, if the client computer system 12A is using a commercial service such as America On-Line (AOL) as their ISP, they will often dial into the system when they desire network services. However, in the context of this discussion, it will be assumed that a client computer 12A has a current connection to the network 22.
When client computer 12A activates or “launches” its network browser a “home” web page URL (usually stored as a preference) causes the browser to send a request out onto the network for that web page. In response, a web server (such as web server 20), will provide Hypertext Marked Up Language (HTML) file to the browser to generate a display within the browser window. This HTML can include text, graphics, images (such as GIF images), and a number of other types of communication media. In addition, the web server may send an “applet” to the browser. These applets are small programs designed to run within the browser window to provide some form of user service. For example, the applet can provide moving imagery, interactive program functions, etc. Additional requests sent by the client computer 12A will result in additional HTML and possibly additional applets being sent in return.
In FIG. 4A an “in/out home screen” is shown by way of example. This particular home screen is the most common entry point into an exemplary office productivity system. The system will be described by way of example, and not by way of limitation, to provide a context for the help system of the present invention.
In the example of FIG. 4A, the web page 34 (see also FIG. 1) displays a list of employees and whether they are in or out of the office. There is also a small remarks field to indicate where they are when they are out. In the exemplary application, this in/out home screen will be the entry point into the productivity software as long as there is at least one employee in the company. Alternatively, the home screen can be defined as the screen that was last left by a particular user.
The in/out screen 34 has several sections. One is the chooser section 58, another is the title bar section 60, and yet another is the main display section 62. The chooser section 58 in a preferred implementation of the present invention allows a user to select from a choice of applets which control the content of the web page 34. The title bar 60 not only includes the title of the current page, but also allows preferences to be set and provides for a help function in accordance with the present invention. The main display 62 is where the actual data is formatted and displayed.
While the various sections of the web page 34 may seem self explanatory, there are a number of subtleties that may not be apparent to a new user or to a user who is not very skilled in computer operations. The present invention provides at least one and preferably two or more methods for aiding the user in operating the software. As will be discussed in greater detail subsequently, two preferred methodologies for providing help in accordance with the present invention include a non-modal help mode and a modal help mode.
As used herein, a “modal” mode is one which requires a user to activate a window which is separate from the window that was currently active in order to receive on-screen help. Thus, traditional help windows are modal while the aforementioned balloon help and tool tips are non-modal. A preferred embodiment of the present invention further preferably provides non-modal help using a verb/object paradigm, as will be explained below.
In the event that a user of a client machine 12 feels that he is in need of help with an application program, he causes a cursor 64 to move toward the help “button” 66 in the title bar 60. In one embodiment of the present invention, the proximity of the cursor 64 to the help button 66 will cause the display of a non-modal help screen as seen in FIG. 4B.
In FIG. 4B, a display section 64′ and a title bar section 60′ replaces the main display section 62 and the title bar section 60 of FIG. 4A. This replacement can take place in a variety of ways, as will be appreciated by those skilled in the art. For example, the sections 64′ and 60′ can be caused to “over lie” sections 62 and 60. Preferably, the sections 62′ and 60′ are visually distinctive from the sections 62 and 60, such as being presented in a lighter or “half tone” image view. Such half tone images will also be referred to herein as “dithered” images, although half tone images can be created by methods other than dithering.
While the sections 62′ and 60′ are discussed as if they were separate, it is preferred that the entire area comprising the sections 62′ and 60′ are stored as a bitmap within the help system 10. This bit map is most preferably stored on the client machine 12, although it may also be stored elsewhere on the network 22, such as on the server 20.
It should also be noted that the section 62′ is not a precise image of the display within section 62. That is, it is representative (i.e. contextually related) of the image in section 62 of FIG. 4A, but is not the same as that image. For example, there are different employees listed on the in/out board, whether they are in or out has been changed, etc. Further, in section 62′ a window 66 has been opened and a number of balloons 68A-68L are all displayed on the screen. It should be noted that this window 66 and the balloon 68A-68L are all preferably part of the aforementioned bitmap of the sections 62′ and 60′. That is, these balloon windows and other graphics were created and stored in a bitmap (preferably by a graphic artist) in order to maximize readability and to best present help to the end user.
A window 66 in section 62′ illustrates a “mouse over” feature which provides greater detail as to an employee's location. The balloon 68H explains about the window and how to edit the content of the window. As to some of the other balloons, the balloon 68A indicates the purpose of the help button, balloon 68B indicates that clicking on the title of the in/out board gives information about the applet version, etc.
It should be noted that the balloons 68 of FIG. 4B are provided on a verb/object paradigm in that only the functions that can be currently implemented from that screen are described. Inactive functionality is not shown in this balloon help. This has been found to be far less confusing to a user than the object/verb paradigm used in the prior art. It will further be appreciated that all (or virtually all) objects on the screen that do have a functionality are associated with a balloon description. This is in marked contrast to the prior art which only shows one balloon at a time due to an object/verb paradigm.
It will therefore be appreciated that the present invention provides non-modal help which uses a verb/object paradigm. That is, the current context of the application program for which the user needs help is determined, and a help screen is provided which shows all of the actions that can be taken from that context. Unlike an object/verb paradigm, actions that cannot be taken within that context will not be listed, and no possible actions will be missed by the user.
The developers of the present invention sometimes refer to the multiplicity of balloons (e.g. 68A-68L) as “skeleton”™ help in that the aggregate image of a number of balloons is somewhat skeletal in appearance. With Skeleton help, virtually everything that can be accomplished within a single screen is shown simultaneously, and those things that cannot be accomplished within that screen or within that context are not shown. This provides a user with a very rapid, non-modal method for obtaining information on the proper operation of an application program. In a preferred embodiment of the present invention, the skeleton help is turned off such that the screen returns to that shown in FIG. 4A as the cursor 64 is moved away from the help button 68. Since this is non-modal help, it is not necessary for the user to reactivate the web page 34.
In FIGS. 5A-10B, some additional skeleton help examples will be described. To the extent that they operate similarly to previously described example, such description will not be repeated. However, where there are particular areas of interests, they will be pointed out.
In FIG. 5A, a conference scheduler applet is activated by activating the button 70 in choosier section 58. This creates a calendar image 72 on the screen for a particular month. Months and years can be navigated in the normal fashion. The calendar image 72 is provided with indicia 74 to indicate that the conference room has already been scheduled on that date. Preferably the indicia provides an indication of the approximate time the room has been scheduled. The image 72 is also preferably provided with a indicia 76 to indicate the current day.
If the user selects skeletal help by moving the cursor into proximity with the help button, an alternative image 72′ is displayed in place of the original image 72. It will again be noted that the image 72′ is preferably visually distinctive, such as by shown in half tone, and is not the same as, but merely is representative of, the original image 72. For example, the current date on FIG. 5A is indicated to be the 27th while the date in the example is the 14th. Balloons 78 provide help and comment in a verb/object paradigm.
In FIG. 6A a day view of conference room scheduler is illustrated. This screen 80 was obtain clicking on the date 25 of the screen 72 of FIG. 5A. As can be seen, a meeting has been scheduled in the conference room between 2 and 4 p.m. on the subject of marketing on May 25th. Additional information concerning the meeting is shown on the right of the screen.
In FIG. 6B an alternative screen 80′ illustrates skeleton help for the conference schedule day view. A representative image of the day view screen is shown with the skeleton help balloons 82 providing skeleton help on a verb/object paradigm.
In FIG. 7A, an image 84 allows a user to view a meeting in greater detail. This window is accessed, in this example, by clicking on the area 81 of FIG. 6A to create the image 84. It should be noted that this image 84 in addition to including additional information concerning the meeting includes two tabs sections namely an attendee tab 86 and a room tab 88. In this instance, the attendee tab is forward creating a context wherein attendee information is desired.
In FIG. 7B, an image 84′ provides skeleton help with regards to the image 84 of FIG. 7A. More particularly, an image 84′ representing the image 84 (but not identical to the image 84) it is provided along with balloon help 90. It should be noted that the balloons 90 point to and describe only relevant areas of the image 84′, i.e. only those areas that are relevant to the attendee tab. Items relevant to the room tab are displaced on this screen.
In FIG. 8A, an image 92 which is similar to the image 84 of 7A is shown. The difference between the image 92 and 84 is that the room tab has been activated in this image, while the attendee tab has been activated in the image 84 of FIG. 7A.
In FIG. 8B, the skeleton help 92′ of the image of 92 of FIG. 8A is illustrated. This image 92′ includes balloon help 94. It should be noted, in particular, that the balloon help 94 for the image 92′ is different than the balloon help 90 for the image 84′ of FIG. 7B. This points again to an important aspect of this embodiment of the present invention in that it provides help on a context-sensitive basis.
The context-sensitive nature of the present invention is further illustrated in FIGS. 9A-10B. In FIG. 9A, a image 96 illustrates a “edit a meeting” functionality with the attendee tab forward. In FIG. 9B, the image 96′ with balloon 98 provides context-sensitive skeleton help for the image 96 of FIG. 9A. FIG. 10A is similar to FIG. 9A, except that it is for editing a meeting with the room tab forward. That is, the image 100 has the room tab toward the right portion of the image forward and active. The image 100′ in FIG. 10B has the balloons 102. It should be again noted that the balloons 102 (in aggregate) are different from the balloons 98 of FIG. 9B in that the room tab has been set for FIG. 10B while the attendee tab was set for FIG. 9B. By “in aggregate” it is mean that some of the balloons may be the same as in the previous version, but not all of the balloons are the same due to the change in context.
In FIG. 11A, modal help window has been activated. This is typically accomplished by clicking on the help button 66 of the web page 38. This action creates a new window 104 providing modal help 106. In this instance, the additional window is an additional web browser window.
In FIG. 11B, the web browser window 104 and help window 106 are illustrated. The modal help of the present invention uses graphical interface 108 to index a text portion 110. That is, to access information concerning the in/out quick info column, the graphical interface 108 is selected for in/out quick info and the textural information concerning the in/out quick info is displayed at 110.
In FIG. 12, a process 112 for providing a help system in accordance with the present invention is shown in block diagram form. As noted previously, the processes of the present invention can be provided on a single computer, on a networked computer, between a client and server, etc. In this implementation, the process 112 is implemented over a TCP/IP network such as an Intranet or the Internet between a client or user computer and a server coupled to the network. The flow diagram of FIG. 12 is therefore divided into client, network, and server portions. The client portion of the process includes portions implemented by applets, by the Java Virtual Machine (JVM), and by the browser. The server side process is implemented by a web server, by a JVM and servlet interface, and by the application and help program of the present invention.
The process 112 is initiated from a browser of the client machine. This process has been described previously with reference to FIG. 3. The URL is entered into the computer in an operation 114 and a request is sent via the network to the web server as previously described.
The web server for this invention can be any suitable web server such as the Microsoft Personal Web Server (PWS). Alternatively, web servers are available from a variety of other vendors including Netscape Communications, Inc. In the case of the Microsoft PWS, an interface known as ISAPI is provided by Microsoft to allow for “bolting”, i.e. to attach other programs to the web server. These other programs are typically handled by utilities known as servlets. Typically, a servlet initiates an application program and also provides HTML. A servlet is therefore used as a conduit from the ISAPA interface of the Microsoft PWS to the application program of the present invention. Serviettes for this purpose are sold commercially from such companies as New Atlanta and JRUN for both Microsoft and Netscape Communications web servers.
When the server receives the URL from the operation 114, the web server starts the servlet 118 which then creates HTML in the form of two applets which are passed back through the web server 116 to the client. The servile also initiates the program of the present invention at an operation 120 which starts them running in free running sockets 122.
While the use of sockets is well known to those skilled in the art, a little background will be given here for completeness. Before data is sent across the Internet from one host to another using TCP/IP, it is split into packets of varying but finite size called datagrams, which range in size from a few dozen bytes to about 60,000 bytes. Anything larger than this, and often things smaller than this, needs to be split into smaller pieces before it can be transmitted. The advantage is that if one packet is lost, it can be retransmitted without requiring redelivery of all other packets. Furthermore if packets arrive out of order they can be reordered at the receiving end of the connection. However, this is all transparent to the Java programmer. The host's native networking software transparently handles the splitting of data into packets on the sending end of a connection, and the reassembly of packets on the receiving end. Instead, the Java programmer is presented with a higher level abstraction called a “socket.” The socket represents a reliable connection for the transmission of data between two hosts. It isolates the programmers from the details of packet encodings, lost and retransmitted packets, and packets that arrive out of order. There are four fundamental operations a socket performs. These are: connect to a remote machine; send data; receive data; and close the connection. A socket may not be connected to more than one host at a time.
The two HTML applets received from the servlet 118 create windows in an operation 124. The browser then requests classes from the server which are sent back to the browser by an operation 126. These classes comprise additional applets. The browser then initiates the start of the applets in an operation 128 which opens the Java Virtual Machine (JVM) in an operation 130 and which automatically starts the applets in an operation 132. The applets create sockets 134 which talk directly with the sockets 122 on the server. That is, once the process has been initiated the browser and web server are no longer intermediaries in the process and that the sockets 134 and 122 talk directly with each other over the network. To put it another way, everything inside box 135 is startup operation to initialize and start the socket 134 on the client and the socket program 122 on the server, which thereafter communicate directly with each other.
The applets 132 are the aforementioned applets in the list in the choosier section 58. If the current applets being run detects a request for modal help (by clicking on the help button) the Java Virtual Machine 136 is activated and a new browser window is opened. The modal help URL is provided in an operation 138, and is sent over the network to the server. The server will send the HTML for the help in an operation 140 and operation 142 will display the help in the browser window.
In FIG. 13, a process 144 for initiating non-modal and modal help in accordance with the present invention begins at 146 with the running of the applets. If there is a mouse interrupt, an operation 148 determines whether the pointer is in the bounding box of the help button. With brief reference to FIG. 13A, the help “button” 66 can be imagined to be surrounded by a invisible rectangular bounding box B. The cursor (“pointer”) 64 can be thought to be inside the bounding box when any portion of the icon is within the bounding box B. When the cursor 64 is moved to a position 64′ that is outside of the bounding box, it is considered to be no longer within the bounding box B.
Referring again to FIG. 13, if the pointer is in the bounding box of the help button an operation 150 determines whether there is a thread running. This thread is to handle the cursor detection. If not, this thread is created and started in operation 152. This operation 152 will be discussed in greater detail subsequently with respect to FIG. 15. Operational control is then returned to the applets in 146.
If operation 148 determines that the pointer is not in the bounding box of the help, it is determined in a step 154 whether the thread is running. If it is, this thread is killed in step 156. This is to eliminate threads after skeleton help is no longer being requested. Next, in an operation 158, it is determined whether a skeleton help is visible. If it is not, operation control is returned to applets at 146. If skeleton help is visible as determined by operation 158, an operation 160 switches to the non-skeleton mode. That is, the flag “skeleton” is set to false.
It is generally necessary to hide all children's in the view when you call skeleton help and then put them back after skeleton is no longer required. This is particularly true when using Java version 1.02 which has no “Z” order. By “Z” order, it is meant that the top window can be placed on top upon request. With systems such as Java version 1.02 that have no “Z” order, the children or underlying views must be explicitly hidden and then returned after the skeleton view is eliminated. This is accomplished in a repainting operation 162 which will be discussed in greater detail with reference to FIG. 14. Operational control is then returned to the applets 146.
The process 144 also detects a request for modal help. In the present invention, this is initiated by a mouse click interrupt wherein the cursor 64 is engaged with the button 66 and a button on the mouse is pressed. In operation 164 determines where the pointer is in the bounding box of the help button, and, if not, process control is returned to the applets 146. If the pointer is in the bounding box of the help button, an operation 166 determines the state or context in which help is requested and operation 168 opens a help window corresponding to the state and allows the navigation using the standard navigation controls of the web browser.
In FIG. 14, the process 162 for reprinting of FIG. 13 is illustrated in greater detail. The process 162 begins at 170 and, in an operation 172, it is determined whether the process is currently in the skeleton mode. If it is, it is determined what is the proper skeleton background image for a database of images in operation 174 and the appropriate image is displayed in an operation 176. The operation 174 preferably uses a tree structure look-up to select the appropriate skeleton background image from a datebase based upon the context from which skeleton help was requested. The process is then completed at 178.
If operation 172 determines that the process is not currently in skeleton mode, it is determined that step 180 with the current regular background image should be. The image is then displayed in an operation 182 and view-specific painting is accomplished in an operation 184. The operation is then completed at 178.
In FIG. 15, the operation 152 of FIG. 13 is illustrated in greater detail. Operation 152 begins at 186 and, in an operation 188, there is a 0.1 second delay. The purpose of this delay is to prevent the accidental or inadvertent entry into skeleton help as the cursor or pointer is momentarily dragged through the bounding box B (see FIG. 13A). In other words, a small delay is inserted into the thread to ensure that the user was, indeed, attempting to reach the help button 66 and, therefore, skeleton help should be provided. After 0.1 second, an operation 190 determines whether the skeleton help is visible. If it is, an operation 192 switches to skeleton mode by setting the flag “skeleton” to true. Within this step 192, any appropriate children windows are hidden and logged so that they can be subsequently re-introduced. Next, at operation 194 causes a repaint, and operation 196 sets the thread to “null”. Operation 152, (i.e. the execution of the skeleton thread) is then completed at 198.
It will therefore be appreciated that a computerized non-modal help system of the present invention includes a display screen providing a window for a number of output displays of an application program, a collection of pre-defined images mapped to the output displays by their context, a user input device for initiating non-modal help, and a non-modal displayer which displays one of the predefined images within the window in the place of its contextually-related output display. Preferably, the predefined images are stored as static bit map images including a dithered representation of the context in which the help was requested and a number of help balloons strategically positioned on the dithered image. Even more preferably, the balloons are positioned manually by a graphic artist to maximize their placement on the dithered image. By providing a balloon to described the functionality of every (or most) of the active elements, a user is provided with a quick framework or “skeleton” view of the meaning and operation of the various elements in the display. The predefined images are preferably accessed by a simple database algorithm which maps the environment from which the user is requesting help to an appropriate help image. Methods and formats for storing predefined images in compressed and uncompressed forms are well known to those skilled in the art, as are methods for storing and retrieving images from a database of images.
In one preferred embodiment of the present invention, the screen and the user input device form a part of a client computer system. As noted above, the help system can further include a server computer system coupled to the client computer system, such as by a TCP/IP network. Common forms of TCP/IP networks are referred to as Intranets, Extranets and the Internet. In the networked embodiment of the present invention, the client computer system supports a browser process, and the server computer system supports a server process. The computerized processes running on the client computer system comprise Applets that are delivered from the server computer system to the client computer system via the network. However, once the Applets are running on the client computer system, they communicate directly with the server processes through, for example, sockets in a Java-based system.
In another aspect of the present invention, a computerized help system includes a display screen providing a process window for a number of output displays of a computerized process, a user input device for initiating non-modal and modal help, non-modal help for displaying help within the process window in response to a request for non-modal help by the user, and modal help for displaying help within a help window in response to a request for modal help by the user. Preferably, the user input device is a pointer mechanism such as a mouse, trackball, touch-pad, joystick, etc., wherein the modal help is initiated by a help button displayed on the screen. The non-modal help is preferably initiated by a pointer positioned under the control of the user within a predetermined distance of the help button. The non-modal help preferably includes a collection of pre-defined bitmap images contextually related to the output displays, where each bitmap image includes a non-literal representation of its related output display and textual help within the representation.
A method for providing non-modal help in accordance with the present invention includes the operations of detecting a user request for non-modal help with respect to a dynamic application display, determining a context of the dynamic application display, retrieving a static image contextually related to the dynamic application display, where the static image includes a non-literal representation of the dynamic application display and textual help within the representation, and displaying the static image in the place of the dynamic application display.
While this invention has been described in terms of several preferred embodiments, it is contemplated that alternatives, modifications, permutations and equivalents thereof will become apparent to those skilled in the art upon a reading of the specification and study of the drawings. It is therefore intended that the invention be interpreted as including all such alternatives, modifications, permutations and equivalents as fall within its true spirit and scope.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5546521 *||Oct 17, 1994||Aug 13, 1996||International Business Machines Corporation||Dynamic presentation of contextual help and status information|
|US5790974||Apr 29, 1996||Aug 4, 1998||Sun Microsystems, Inc.||Portable calendaring device having perceptual agent managing calendar entries|
|US5918232 *||Nov 26, 1997||Jun 29, 1999||Whitelight Systems, Inc.||Multidimensional domain modeling method and system|
|US6058415||Jul 24, 1997||May 2, 2000||Intervoice Limited Partnership||System and method for integration of communication systems with computer-based information systems|
|US6112024 *||Oct 2, 1996||Aug 29, 2000||Sybase, Inc.||Development system providing methods for managing different versions of objects with a meta model|
|US6138245||Feb 5, 1999||Oct 24, 2000||Neopoint, Inc.||System and method for automatic device synchronization|
|US6212494 *||Jul 20, 1998||Apr 3, 2001||Apple Computer, Inc.||Method for extracting knowledge from online documentation and creating a glossary, index, help database or the like|
|US6212509 *||May 2, 2000||Apr 3, 2001||Computer Associates Think, Inc.||Visualization and self-organization of multidimensional data through equalized orthogonal mapping|
|US6335738 *||Jan 5, 1999||Jan 1, 2002||International Business Machines Corp.||Method and tool for generating and displaying a descriptive annotation of selected application data|
|US6342907 *||Oct 19, 1998||Jan 29, 2002||International Business Machines Corporation||Specification language for defining user interface panels that are platform-independent|
|US6430571 *||Aug 13, 1999||Aug 6, 2002||International Business Machines Corporation||Multi-frame output form that facilitates internet search and update in a hierarchical database|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US6971068 *||Jul 26, 2001||Nov 29, 2005||International Business Machines Corporation||Dialog box positioning|
|US7024626 *||Nov 30, 2001||Apr 4, 2006||Apple Computer, Inc.||System and method of producing user interface information messages|
|US7376897 *||Sep 30, 2000||May 20, 2008||Intel Corporation||Method, apparatus, and system for determining information representations and modalities based on user preferences and resource consumption|
|US7464336 *||Jun 23, 2005||Dec 9, 2008||Canon Kabushiki Kaisha||Information processing apparatus, image edit apparatus, and control methods thereof, and computer program and computer-readable storage medium|
|US7533341||Apr 4, 2006||May 12, 2009||Apple Inc.||System and method of producing user interface information messages|
|US7594186 *||May 13, 2005||Sep 22, 2009||International Business Machines Corporation||Dialog box positioning|
|US7620949 *||Mar 31, 2004||Nov 17, 2009||Intel Corporation||Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment|
|US7669125 *||Nov 22, 2005||Feb 23, 2010||Samsung Electronics Co., Ltd.||Apparatus and method for adaptively generating tooltip|
|US7757234||Oct 24, 2005||Jul 13, 2010||Sap Aktiengesellschaft||Methods and software for a batch processing framework for wizard-based processes|
|US7861245||Jun 29, 2009||Dec 28, 2010||Intel Corporation||Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment|
|US7937162||Oct 31, 2006||May 3, 2011||Caterpillar Inc.||Machine operator interface having linked help feature|
|US8140581||May 15, 2008||Mar 20, 2012||Microsoft Corporation||Configurable view on data models|
|US8140593||May 15, 2008||Mar 20, 2012||Microsoft Corporation||Data viewer management|
|US8321553 *||Mar 29, 2002||Nov 27, 2012||Oracle America, Inc.||Method and apparatus for calling virtual machine across processes|
|US8595639||Nov 29, 2010||Nov 26, 2013||Covidien Lp||Ventilator-initiated prompt regarding detection of fluctuations in resistance|
|US8607788||Jun 30, 2010||Dec 17, 2013||Covidien Lp||Ventilator-initiated prompt regarding auto-PEEP detection during volume ventilation of triggering patient exhibiting obstructive component|
|US8607789||Jun 30, 2010||Dec 17, 2013||Covidien Lp||Ventilator-initiated prompt regarding auto-PEEP detection during volume ventilation of non-triggering patient exhibiting obstructive component|
|US8607790||Jun 30, 2010||Dec 17, 2013||Covidien Lp||Ventilator-initiated prompt regarding auto-PEEP detection during pressure ventilation of patient exhibiting obstructive component|
|US8607791||Jun 30, 2010||Dec 17, 2013||Covidien Lp||Ventilator-initiated prompt regarding auto-PEEP detection during pressure ventilation|
|US8638200||May 7, 2010||Jan 28, 2014||Covidien Lp||Ventilator-initiated prompt regarding Auto-PEEP detection during volume ventilation of non-triggering patient|
|US8640699||Mar 23, 2009||Feb 4, 2014||Covidien Lp||Breathing assistance systems with lung recruitment maneuvers|
|US8640700||Mar 23, 2009||Feb 4, 2014||Covidien Lp||Method for selecting target settings in a medical device|
|US8757152||Nov 29, 2010||Jun 24, 2014||Covidien Lp||Ventilator-initiated prompt regarding detection of double triggering during a volume-control breath type|
|US8757153||Nov 29, 2010||Jun 24, 2014||Covidien Lp||Ventilator-initiated prompt regarding detection of double triggering during ventilation|
|US8769407 *||Jul 31, 2007||Jul 1, 2014||International Business Machines Corporation||Pointing help system|
|US8928551 *||Jul 1, 2010||Jan 6, 2015||Village Green Technologies, LLC||Multiple displays for a portable electronic device and a method of use|
|US9027552||Jul 31, 2012||May 12, 2015||Covidien Lp||Ventilator-initiated prompt or setting regarding detection of asynchrony during ventilation|
|US9030304||Jan 3, 2014||May 12, 2015||Covidien Lp||Ventilator-initiated prompt regarding auto-peep detection during ventilation of non-triggering patient|
|US9038633||Mar 2, 2011||May 26, 2015||Covidien Lp||Ventilator-initiated prompt regarding high delivered tidal volume|
|US20020018055 *||Jun 6, 2001||Feb 14, 2002||Smith James David||Substraight positioning device and method|
|US20030020756 *||Jul 26, 2001||Jan 30, 2003||International Business Machines Corporation||Dialog box positioning|
|US20030058267 *||Sep 25, 2002||Mar 27, 2003||Peter Warren||Multi-level selectable help items|
|US20030098887 *||Apr 18, 2002||May 29, 2003||International Business Machines Corporation||Graphical user interface for non-disruptively displaying messages with an indication of context|
|US20030103072 *||Nov 30, 2001||Jun 5, 2003||Steve Ko||System and method of producing user interface information messages|
|US20030217086 *||Mar 29, 2002||Nov 20, 2003||Kushnirskiy Igor Davidovich||Method and apparatus for calling virtual machine across processes|
|US20040001218 *||Jun 27, 2002||Jan 1, 2004||Christiansen Robert Douglas||System and method for customizing an imaging device|
|US20040036715 *||Aug 26, 2002||Feb 26, 2004||Peter Warren||Multi-level user help|
|US20050210407 *||May 13, 2005||Sep 22, 2005||International Business Machines Corporation||Dialog box positioning|
|US20050210412 *||May 9, 2005||Sep 22, 2005||Microsoft Corporation||Unified navigation shell user interface|
|US20050240700 *||Mar 31, 2004||Oct 27, 2005||Bennett Steven M||Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment|
|US20060005159 *||Jun 23, 2005||Jan 5, 2006||Canon Kabushiki Kaisha||Information processing apparatus, image edit apparatus, and control methods thereof, and computer program and computer-readable storage medium|
|US20060104276 *||Nov 18, 2004||May 18, 2006||International Business Machines Corporation||Dynamic hover text for HTML table cells|
|US20060123341 *||Nov 22, 2005||Jun 8, 2006||Samsung Electronics Co., Ltd.||Apparatus and method for adaptively generating tooltip|
|US20060166741 *||Jan 24, 2005||Jul 27, 2006||Boyd Scott A||System for communicating with a player|
|US20060179408 *||Apr 4, 2006||Aug 10, 2006||Apple Computer, Inc.||System and method of producing user interface information messages|
|US20070011603 *||Jul 6, 2005||Jan 11, 2007||Mikko Makela||Method, system, device and software product for showing tooltips for page segments and generating content for the page segments|
|US20070113180 *||Nov 15, 2005||May 17, 2007||Michael Danninger||Method and system for providing improved help functionality to assist new or occasional users of software in understanding the graphical elements of a display screen|
|US20080188954 *||Oct 31, 2006||Aug 7, 2008||Caterpillar Inc.||Machine operator interface having linked help feature|
|US20080288865 *||May 16, 2007||Nov 20, 2008||Yahoo! Inc.||Application with in-context video assistance|
|US20080319818 *||Jun 21, 2007||Dec 25, 2008||Microsoft Corporation||Multimedia calendar|
|US20090037815 *||Jul 31, 2007||Feb 5, 2009||International Business Machines Corporation||Pointing help system|
|US20110006971 *||Jul 1, 2010||Jan 13, 2011||Village Green Technologies, LLC||Multiple displays for a portable electronic device and a method of use|
|US20120075208 *||Mar 29, 2012||Nintendo Co., Ltd.||Information processing program, information processing apparatus and method thereof|
|US20140155123 *||Nov 29, 2013||Jun 5, 2014||Samsung Electronics Co., Ltd.||Mobile terminal and information handling method for the same|
|US20140173711 *||Dec 13, 2012||Jun 19, 2014||Sap Ag||Anti-phishing system for cross-domain web browser single sign-on|
|US20150160813 *||Feb 27, 2014||Jun 11, 2015||Kaspersky Lab, Zao||System and method for blocking elements of application interface|
|EP1760582A2 *||Aug 29, 2006||Mar 7, 2007||Sony Corporation||Help-guidance display method and apparatus, information processing apparatus, printing kiosk apparatus, and program|
|EP1785856A2 *||Sep 29, 2006||May 16, 2007||Sap Ag||Batch processing for wizards|
|EP1785856A3 *||Sep 29, 2006||Aug 8, 2007||Sap Ag||Batch processing for wizards|
|EP2743825A1 *||Oct 23, 2013||Jun 18, 2014||Sap Ag||Dynamical and smart positioning of help overlay graphics in a formation of user interface elements|
|WO2011005691A1 *||Jul 2, 2010||Jan 13, 2011||Village Green Technologies, LLC||Multiple displays for a portable electronic device and a method of use|
|U.S. Classification||715/715, 715/711|
|International Classification||G06F9/44, G06F3/14|
|Aug 9, 2000||AS||Assignment|
Owner name: PLUSFACTOR SOFTWARE, OREGON
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GRILLO, PETE;REEL/FRAME:011010/0271
Effective date: 20000804
|Jan 11, 2002||AS||Assignment|
|Apr 11, 2002||AS||Assignment|
|Jul 16, 2002||AS||Assignment|
Owner name: WESYNC.COM, INC., OREGON
Free format text: CORRECTIV;ASSIGNORS:GRILLO, PETE;PIVOWAR, ALVIN;REEL/FRAME:013092/0230;SIGNING DATES FROM 20000316 TO 20000616
|Mar 20, 2003||AS||Assignment|
|May 12, 2004||AS||Assignment|
|Sep 26, 2007||FPAY||Fee payment|
Year of fee payment: 4
|Aug 27, 2010||AS||Assignment|
Owner name: ACCESS SYSTEMS AMERICAS, INC., CALIFORNIA
Free format text: CHANGE OF NAME;ASSIGNOR:PALMSOURCE, INC.;REEL/FRAME:024892/0374
Effective date: 20061017
|Mar 4, 2011||AS||Assignment|
Owner name: ACCESS CO., LTD., JAPAN
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ACCESS SYSTEMS AMERICAS, INC.;REEL/FRAME:025898/0852
Effective date: 20110225
|Sep 20, 2011||FPAY||Fee payment|
Year of fee payment: 8