Browse Prior Art Database

Optimizing the process resolving user context and related user assistance.

IP.com Disclosure Number: IPCOM000014856D
Original Publication Date: 2000-Dec-01
Included in the Prior Art Database: 2003-Jun-20
Document File: 3 page(s) / 49K

Publishing Venue

IBM

Abstract

The invention is a method for optimizing the process that determines a user's context within a graphical user interface (GUI). The term "user context" means:where a user has placed the mouse pointer, cursor, or other navigation device within the windows of a GUI. In the past, the user context was stored in arbitrary and static data structures. The invention uses an improved data structure, hereafter referred to as the "map object." These structures include header files and plain text files. Fundamentally, these data structures contain a list of assignments, such as: guicontext1=topicID1 guicontext2=topicID2 guicontext3=topicID3 guicontext4=topicID4 In a Java application this approach might be implemented in a class or interface that defines values such as the following:

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 35% of the total text.

Page 1 of 3

Optimizing the process resolving user context and related user assistance.

    The invention is a method for optimizing the process that determines a user's context within a graphical user interface (GUI). The term "user context" means:where a user has placed the mouse pointer, cursor, or other navigation device within the windows of a GUI. In the past, the user context was stored in arbitrary and static data structures. The invention uses an improved data structure, hereafter referred to as the "map object."

These structures include header files and plain text files. Fundamentally, these data structures contain a list of assignments, such as:

guicontext1=topicID1 guicontext2=topicID2 guicontext3=topicID3 guicontext4=topicID4

In a Java application this approach might be implemented in a class or interface that defines values such as the following:
public static final String HELP_FOR_A_WINDOW = "helpfile" ;
where HELP_FOR_A_WINDOW is a variable name and
where "helpfile" the name of the file, "helpfile.htm".

In a VisualBasic application this approach might be implemented in a header (.hh) file that defines values such as the following:
#define Help_ID 10
where Help_ID is a constant name that corresponds to a topic ID that a help author
defines inside the source of help topics and
where 10 is an integer ID that corresponds to a value that
a programmer sets in application code.

The context ID entries, which are on the left in the Java implementation and on the right in the Visual Basic implementation correspond to different locations within an application's windows. These arbitrary values might be associated with an entire window or with controls within the window, such as text fields and buttons.

Typically, a programmer links the HELP_FOR_A_WINDOW variable name or 10 value to one or more windows or controls in the source code. At run time, the help engine resolves the user context, the context ID, and the help topic.

This traditional approach is time consuming, resource intensive, and difficult to maintain. The work required by this approach has impeded products from delivering field-level context sensitive help, because it requires a discrete context ID for each unique GUI control. This requirement results hundred, even thousands of individual work items for writers and programmers.

Because it is dependent on human intervention at each stage, it is also prone to errors. A person must also manage a catalog of IDs, ensuring that no context IDs are inadvertently duplicated or mismatched. IDs can become mismatched when a programmer uses an incorrect value or variable name or when a writer specifies an incorrect name in their help source.

The RoboHelp user's guide speaks to this problem on page 353:

Since Topic IDs uniquely identify Help topics in a help project, Topics IDs need to be treated carefully. Specifically, if you change the topic ID for a topic, any existing hypertext link referring to the topic will become invalid or broken. So, you must...