Task-sensitive methods and systems for displaying command sets
First Claim
Patent Images
1. A method of exposing commands in a document-centric application program executed by a computer, the method comprising:
- automatically displaying, by the computer, a window on a display device, the window generated by the document-centric application program, the document-centric application program operating at the computer, the window containing a work area and a controls area, the work area containing a document, the controls area not initially containing a context block;
storing, by the computer, Hyper-Text Markup Language (HTML) code that specifies a title of the context block and a set of commands of the context block, the set of commands executable by the document-centric application program, the title identifying a task, the set of commands useful to a user in accomplishing the task;
storing a tree data structure, the tree data structure stored at the computer, the tree data structure comprising an overall set of nodes, each node in the overall set of nodes being an independent data structure, the overall set of nodes including a root node and a set of child nodes, each node in the set of child nodes being a child of one other node in the overall set of nodes, the overall set of nodes comprising a set of leaf nodes and a set of non-leaf nodes, no node in the overall set of nodes being a child of any node in the set of leaf nodes, each node in the set of non-leaf nodes having at least one child node in the overall set of nodes, the root node not being a child of any node in the overall set of nodes, each node in the overall set of nodes associated with a value, each node in the overall set of nodes associated with a Boolean expression, the Boolean expressions associated with each of node in the set of non-leaf nodes taking as operands the values associated with each child node of the node, the set of leaf nodes including a first leaf node and a second leaf node;
ascertaining, at the computer, whether a change has occurred to a position of a cursor, the cursor being controlled by a user, the cursor being within the document, the document being worked on by the user;
ascertaining, at the computer, whether a change has occurred to selected text portions of the document, the selected text portions of the document being portions of the document selected by the user using the cursor;
in response to ascertaining that the change has occurred to the position of the cursor, making, at the computer, a change to the value associated with the first leaf node;
in response to ascertaining that the change has occurred to the selected text portions of the document, making, by the computer, a change to the value associated with the second leaf node;
in response to a change to the value associated with any non-root node, using, at the computer, the Boolean expression associated with a parent node to make a determination whether to change a value associated with the parent node, the non-root node being in the set of child nodes, the parent node being a parent of the non-root node;
in response to making a determination to change the value associated with the parent node, changing, at the computer, the value associated with the parent node;
in response to determining that the value associated with the root node has changed from a first value to a second value, automatically causing, at the computer, the controls area of the user interface to contain the context block, the context block containing the title of the context block and the set of commands of the context block, the context block not obscuring the document, at least one command in the set of commands selectable by the user to perform an action on the selected text portions of the document; and
in response to determining that the value associated with the root node has changed from the second value to the first value, automatically causing, at the computer, the user interface not to contain the context block.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems present commands to a user within a software application program by determining the user'"'"'s context within the application program and automatically presenting in a user interface commands that pertain to the user'"'"'s current context. When the user'"'"'s context changes, the context-sensitive commands are automatically removed from the user interface. In one implementation context blocks and context panes are employed to present the commands.
672 Citations
43 Claims
-
1. A method of exposing commands in a document-centric application program executed by a computer, the method comprising:
-
automatically displaying, by the computer, a window on a display device, the window generated by the document-centric application program, the document-centric application program operating at the computer, the window containing a work area and a controls area, the work area containing a document, the controls area not initially containing a context block; storing, by the computer, Hyper-Text Markup Language (HTML) code that specifies a title of the context block and a set of commands of the context block, the set of commands executable by the document-centric application program, the title identifying a task, the set of commands useful to a user in accomplishing the task; storing a tree data structure, the tree data structure stored at the computer, the tree data structure comprising an overall set of nodes, each node in the overall set of nodes being an independent data structure, the overall set of nodes including a root node and a set of child nodes, each node in the set of child nodes being a child of one other node in the overall set of nodes, the overall set of nodes comprising a set of leaf nodes and a set of non-leaf nodes, no node in the overall set of nodes being a child of any node in the set of leaf nodes, each node in the set of non-leaf nodes having at least one child node in the overall set of nodes, the root node not being a child of any node in the overall set of nodes, each node in the overall set of nodes associated with a value, each node in the overall set of nodes associated with a Boolean expression, the Boolean expressions associated with each of node in the set of non-leaf nodes taking as operands the values associated with each child node of the node, the set of leaf nodes including a first leaf node and a second leaf node; ascertaining, at the computer, whether a change has occurred to a position of a cursor, the cursor being controlled by a user, the cursor being within the document, the document being worked on by the user; ascertaining, at the computer, whether a change has occurred to selected text portions of the document, the selected text portions of the document being portions of the document selected by the user using the cursor; in response to ascertaining that the change has occurred to the position of the cursor, making, at the computer, a change to the value associated with the first leaf node; in response to ascertaining that the change has occurred to the selected text portions of the document, making, by the computer, a change to the value associated with the second leaf node; in response to a change to the value associated with any non-root node, using, at the computer, the Boolean expression associated with a parent node to make a determination whether to change a value associated with the parent node, the non-root node being in the set of child nodes, the parent node being a parent of the non-root node; in response to making a determination to change the value associated with the parent node, changing, at the computer, the value associated with the parent node; in response to determining that the value associated with the root node has changed from a first value to a second value, automatically causing, at the computer, the controls area of the user interface to contain the context block, the context block containing the title of the context block and the set of commands of the context block, the context block not obscuring the document, at least one command in the set of commands selectable by the user to perform an action on the selected text portions of the document; and in response to determining that the value associated with the root node has changed from the second value to the first value, automatically causing, at the computer, the user interface not to contain the context block. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. One or more computer-readable storage media having computer-readable instructions thereon which, when executed by a computer, cause the computer to:
-
automatically displaying, by the computer, a window on a display device, the window generated by the document-centric application program, the document-centric application program operating at the computer, the window containing a work area and a controls area, the work area containing a document, the controls area not initially containing a context block; storing, by the computer at one or more computer-readable storage media, Hyper-Text Markup Language (HTML) code that specifies a title of the context block and a set of commands of the context block, the set of commands executable by the document-centric application program, the title identifying a task, the set of commands useful to a user in accomplishing the task; store a tree data structure at the computer, the tree data structure comprising an overall set of nodes, each node in the overall set of nodes being an independent data structure, the overall set of nodes including a root node and a set of child nodes, each node in the set of child nodes being a child of one other node in the overall set of nodes, the overall set of nodes comprising a set of leaf nodes and a set of non-leaf nodes, no node in the overall set of nodes being a child of any node in the set of leaf nodes, each node in the set of non-leaf nodes having at least one child node in the overall set of nodes, the root node not being a child of any node in the overall set of nodes, each node in the overall set of nodes associated with a value, each node in the overall set of nodes associated with a Boolean expression, the Boolean expressions associated with each of node in the set of non-leaf nodes taking as operands the values associated with each child node of the node, the set of leaf nodes including a first leaf node; ascertain whether a change has occurred to selected text portions of the document, the selected text portions of the document being portions of the document selected using a cursor, the cursor being controlled by a user, the document being a document in which the user is working; in response to ascertaining that the change has occurred to the selected text portions of the document, make a change to the value associated with the first leaf node; in response to a change to the value associated with any non-root node, use the Boolean expression associated with a parent node to make a determination whether to change a value associated with the parent node, the non-root node being in the set of child nodes, the parent node being a parent of the non-root node; in response to making a determination to change the value associated with the parent node, change the value associated with the parent node; in response to determining that the value associated with the root node has changed from a first value to a second value, automatically cause the controls area of the user interface to contain the context block, the context block containing the title of the context block and the set of commands of the context block, the context block not obscuring the document, at least one command in the set of commands of the context block being displayed in a modeless fashion in which the user is able to continue to work within the document while said at least one command is displayed, and wherein said at least one command in the set of commands of the context block is selectable by the user to perform an action on the selected text portions of the document; and in response to determining that the value associated with the root node has changed from the second value to the first value, automatically cause the user interface not to contain the context block. - View Dependent Claims (8)
-
-
9. A method of exposing commands in a document-centric application program executed by a computer, the method comprising:
-
automatically displaying, by the computer, a window on a display device, the window generated by the document-centric application program, the document-centric application program operating at the computer, the window containing a work area and a controls area, the work area containing a document, the controls area not initially containing a context block; storing, by the computer, Hyper-Text Markup Language (HTML) code that specifies a title of the context block and a set of commands of the context block, the set of command executable by the document-centric application program, the title identifying a task, the set of commands useful to a user in accomplishing the task; storing a tree data structure at the computer, the tree data structure comprising an overall set of nodes, each node in the overall set of nodes being an independent data structure, the overall set of nodes including a root node and a set of child nodes, each node in the set of child nodes being a child of one other node in the overall set of nodes, the overall set of nodes comprising a set of leaf nodes and a set of non-leaf nodes, no node in the overall set of nodes being a child of any node in the set of leaf nodes, each node in the set of non-leaf nodes having at least one child node in the overall set of nodes, the root node not being a child of any node in the overall set of nodes, each node in the overall set of nodes associated with a value, each node in the overall set of nodes associated with a Boolean expression, the Boolean expressions associated with each of node in the set of non-leaf nodes taking as operands the values associated with each child node of the node, the set of leaf nodes including a first leaf node; ascertaining, at the computer, whether a change has occurred to selected text portions of the document, the selected text portions of the document being portions of the document selected using a cursor, the cursor controlled by a user, wherein the document is a document in which the user is working; in response to ascertaining that the change has occurred to the selected text portions of the document, making, at the computer, a change to the value associated with the first leaf node; in response to a change to the value associated with any non-root node, using, at the computer, the Boolean expression associated with a parent node to make a determination whether to change a value associated with the parent node, the non-root node being in the set of child nodes, the parent node being a parent of the non-root node; in response to making a determination to change the value associated with the parent node, changing, at the computer, the value associated with the parent node; in response to determining that the value associated with the root node has changed from a first value to a second value, automatically causing, at the computer, the controls area of the user interface to contain the context block, the context block containing the title of the context block and the set of commands of the context block, the computer causing the user interface to contain the context block independent of the user selecting any displayed menu item, the context block not obscuring the document, each command in the set of commands of the context block being selectable by the user, at least one command in the set of commands of the context block being selectable by the user to perform an action on the selected text portions of the document; in response to determining that the value associated with the root node has changed from the second value to the first value, automatically causing, at the computer, the user interface not to contain the context block. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method of exposing commands in a document-centric application program executed by a computer, the method comprising:
-
automatically displaying, by the computer, a window on a display device, the window generated by the document-centric application program, the window containing a work area and a controls area, the work area containing a document, the controls area not initially containing a context block; storing, by the computer, Hyper-Text Markup Language (HTML) code that specifies a title of the context block and a set of commands of the context block, the set of commands executable by the document-centric application program, the title identifying a task, the set of commands useful to a user in accomplishing the task; storing a tree data structure at the computer, the tree data structure comprising an overall set of nodes, each node in the overall set of nodes being an independent data structure, the overall set of nodes including a root node and a set of child nodes, each node in the set of child nodes being a child of one other node in the overall set of nodes, the overall set of nodes comprising a set of leaf nodes and a set of non-leaf nodes, no node in the overall set of nodes being a child of any node in the set of leaf nodes, each node in the set of non-leaf nodes having at least one child node in the overall set of nodes, the root node not being a child of any node in the overall set of nodes, each node in the overall set of nodes associated with a value, each node in the overall set of nodes associated with a Boolean expression, the Boolean expression associated with each node in the set of non-leaf nodes taking as operands the values associated with each child node of the node, the set of leaf nodes including a first leaf node; automatically ascertaining, at the computer, whether a change has occurred to selected text portions of the document, the selected text portions of the document being portions of the document selected by the user using a cursor the cursor being controlled by a user, where the document is a document the user is working in; in response to ascertaining that the change has occurred to the selected text portions of the document, making, at the computer, a change to the value associated with the first leaf node; in response to a change to the value associated with any non-root node, using, at the computer, a Boolean expression associated with a parent node to make a determination whether to change a value associated with the parent node, the Boolean expression associated with the parent node taking as operands the values associated with each child node of the parent node, the non-root node being in the set of child nodes, the parent node being a parent of the non-root node; in response to making a determination to change the value associated with the parent node, changing, at the computer, the value associated with the parent node; in response to determining that the value associated with the root node has changed from a first value to a second value, automatically causing, at the computer, the controls areas to contain the context block, the context block containing the title of the context block and the set of commands of the context block, the context block not obscuring the document; in response to determining that the value associated with the root node has changed from the second value to the first value, automatically causing, at the computer, the controls area not to contain the context block; and while the controls area contains the context block, enabling, with the computer, the user to select and apply various commands in the set of commands of the context block to the document multiple times. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. An electronic computing system comprising:
-
one or more processing units; a display device; and a system memory storing; Hyper-Text Markup Language (HTML) code that specifies a title of a context block and a set of commands of the context block, the set of commands executable by the document-centric application program, the title identifying a task, the set of commands useful to a user in accomplishing the task; a tree data structure, the tree data structure comprising an overall set of nodes, each node in the overall set of nodes being an independent data structure, the overall set of nodes including a root node and a set of child nodes, each node in the set of child nodes being a child of one other node in the overall set of nodes, the overall set of nodes comprising a set of leaf nodes and a set of non-leaf nodes, no node in the overall set of nodes being a child of any node in the set of leaf nodes, each node in the set of non-leaf nodes having at least one child node in the overall set of nodes, the root node not being a child of any node in the overall set of nodes, each node in the overall set of nodes being associated with a Boolean value, each node in the overall set of nodes being associated with a Boolean expression, the Boolean expression associated with each of node in the set of non-leaf nodes taking as operands the Boolean values associated with each child node of the node, the set of leaf nodes including a first leaf node, a second leaf node and a third leaf node; and a single document-centric application program, the single document-centric application program being configured to; cause the display device to display a single navigable window, the single navigable window containing a work area, the work area containing a document that a user is working in; provide a plurality of functionalities, the user being able to navigate the single navigable window to each functionality in the plurality of functionalities; cause the single navigable window to contain at least one context-sensitive command area, the context-sensitive command area not obscuring the document, the context-sensitive command area not initially containing the context block, ascertain whether a change has occurred to a position of a cursor, the cursor being controlled by the user, the cursor being within the document; ascertain whether a change has occurred to selected text portions of the document, the selected text portions of the document being portions of the document selected by the user using the cursor; in response to ascertaining that the change has occurred to the position of the cursor, make a change to the Boolean value associated with the first leaf node; in response to ascertaining that the change has occurred to the selected text portions of the document, make a change to the Boolean value associated with the second leaf node; change the Boolean value associated with the third leaf node when the user changes between functionalities in the plurality of functionalities; in response to a change to the Boolean value associated with any non-root node, use the Boolean expression associated with a parent node to make a determination whether to change a Boolean value associated with the parent node, the non-root node being in the set of child nodes, the parent node being a parent of the non-root node; in response to making a determination to change the Boolean value associated with the parent node, change the Boolean value associated with the parent node; in response to determining that the Boolean value associated with the root node has changed from a first value to a second value, automatically cause the context-sensitive command area to contain the context block, the context block containing the title of the context block and the set of commands of the context block, at least one command in the set of commands being selectable by the user to perform an action on the selected text portions of the document; and in response to determining that the Boolean value associated with the root node has changed from the second value to the first value, automatically cause the context-sensitive command area not to contain the context block. - View Dependent Claims (34, 35, 36, 37)
-
-
38. An electronic computing system comprising:
-
a processing unit; a display device; and a system memory storing; Hyper-Text Markup Language (HTML) code that specifies a title of a context block and a set of commands of the context block, the set of commands executable by the document-centric application program, the title identifying a task, the set of commands useful to a user in accomplishing the task; a tree data structure, the tree data structure comprising an overall set of nodes, each node in the overall set of nodes being an independent data structure, the overall set of nodes including a root node and a set of child nodes, each node in the set of child nodes being a child of one other node in the overall set of nodes, the overall set of nodes comprising a set of leaf nodes and a set of non-leaf nodes, no node in the overall set of nodes being a child of any node in the set of leaf nodes, each node in the set of non-leaf nodes having at least one child node in the overall set of nodes, the root node not being a child of any node in the overall set of nodes, each node in the overall set of nodes being associated with a value, each node in the overall set of nodes being associated with a Boolean expression, the Boolean expressions associated with each of node in the set of non-leaf nodes taking as operands the values associated with each child node of the node, the set of leaf nodes including a first leaf node; a single document-centric application program, the single document-centric application, when executed at the processing unit, cause the processing unit to; display, on the display device, a single navigable window, a user being able to use the single navigable window in navigating between multiple different functionalities provided by the single document-centric application program; display a document in a work area of the single navigable window; display at least one context-sensitive command area in the single navigable window, the context-sensitive command area not obscuring the document, the context-sensitive command area not initially containing the context block; ascertain whether a change has occurred to selected text portions of the document, the selected text portions of the document being portions of the document selected using a cursor, the cursor being controlled by the user, in response to ascertaining that the change has occurred to the selected text portions of the document, make a change to the value associated with the first leaf node; in response to a change to the value associated with any non-root node, use the Boolean expression associated with a parent node to make a determination whether to change a value associated with the parent node, the non-root node being in the set of child nodes, the parent node being a parent of the non-root node; in response to making a determination to change the value associated with the parent node, change the value associated with the parent node; in response to determining that the value associated with the root node has changed from a first value to a second value, automatically cause the context-sensitive command area to contain the context block, the context block containing the title of the context block and the set of commands of the context block, at least one command in the set of commands being selectable by the user to perform an action on the selected text portions of the document; and in response to determining that the value associated with the root node has changed from the second value to the first value, automatically cause the context-sensitive command area not to contain said context block. - View Dependent Claims (39, 40, 41)
-
-
42. A computing method comprising:
-
storing, by the computer, at one or more computer-readable storage media, Hyper-Text Markup Language (HTML) code that a title of a context block and a set of commands of the context block, the set of commands executable by a document-centric application program, the title identifying a task, the set of commands useful to a user in accomplishing the task; storing a tree data structure, the tree data structure being stored at a computer, the tree data structure comprising an overall set of nodes, each node in the overall set of nodes being an independent data structure, the overall set of nodes including a root node and a set of child nodes, each node in the set of child nodes being a child of one other node in the overall set of nodes, the overall set of nodes comprising a set of leaf nodes and a set of non-leaf nodes, no node in the overall set of nodes being a child of any node in the set of leaf nodes, each node in the set of non-leaf nodes having at least one child node in the overall set of nodes, the root node not being a child of any node in the overall set of nodes, each node in the overall set of nodes being associated with a Boolean value, each node in the overall set of nodes being associated with a Boolean expression, the Boolean expressions associated with each of node in the set of non-leaf nodes taking as operands the Boolean values associated with each child node of the node, the set of leaf nodes including a first leaf node and a second leaf node; displaying, on a display device, a user interface, the user interface comprising a single navigable window capable of being navigated between multiple different functionalities provided by the single document-centric application program, the single navigable window containing a word area and a controls area, the work area containing a document, the controls area not initially containing a context block; receiving, at the computer, user input that indicates selection of a particular one of the functionalities; responsive to receiving said user input, navigating, at the computer, the single navigable window to the particular one of the functionalities and displaying in said single navigable window indicia of said particular one of the functionalities, said particular one of the functionalities enabling a user to accomplish a task associated with the particular one of the functionalities; in response to receiving said user input, changing, at the computer, the Boolean value associated with the first leaf node; ascertaining, at the computer, whether a change has occurred to selected text portions of the document, the selected text portions of the document being portions of the document selected by the user using a cursor; in response to ascertaining that the change has occurred to the selected text portions of the document, making, at the computer, a change to the Boolean value associated with the second leaf node; in response to a change to the Boolean value associated with any non-root node, using, at the computer, the Boolean expression associated with a parent node to make a determination whether to change the Boolean value associated with the parent node, the non-root node being in the set of child nodes, the parent node being a parent of the non-root node; in response to making a determination to change the Boolean value associated with the parent node, changing, at the computer, the value associated with the parent node; and in response to determining that the Boolean value associated with the root node has changed from a first value to a second value, automatically displaying, by the computer on the display device, the context block in the controls area, the context block containing the title of the context block and the set of commands of the context block, the context block not obscuring the document, the computer displaying the context block independent of the user selecting any displayed menu item, at least one command in the set of commands selectable by the user to perform an action on the selected text portions of the document; and in response to determining that the value associated with the root node has changed from the second value to the first value, automatically causing, by the computer, the user interface not to contain the context block.
-
-
43. A method of exposing commands in a document-centric application program, the method comprising:
-
storing, at a system memory, a table containing a plurality of entries, each entry in the plurality of entries specifying a context block in a plurality of context blocks and a visibility expression in a plurality of visibility expressions, each visibility expression in the plurality of visibility expressions represented as a tree data structure in a plurality of tree data structures, each tree data structure in the plurality of tree data structures comprising an overall set of nodes, each node in the overall set of nodes being an independent data structure, the overall set of nodes including a root node and a set of child nodes, each node in the set of child nodes being a child of one other node in the overall set of nodes, the overall set of nodes comprising a set of leaf nodes and a set of non-leaf nodes, no node in the overall set of nodes being a child of any node in the set of leaf nodes, each node in the set of non-leaf nodes having at least one child node in the overall set of nodes, the root node not being a child of any node in the overall set of nodes, each node in the overall set of nodes associated with a Boolean value, each node in the overall set of nodes associated with a Boolean expression, the Boolean expression associated with each node in the set of non-leaf nodes taking as operands the Boolean values associated with each child node of the node, storing, at the system memory. Hyper-Text Markup Language (HTML) code that specifies a title of each context block in the plurality of context blocks and a set of commands of each context block in the plurality of context blocks. the sets of commands of the context blocks executable by the document-centric application program, the titles of the context blocks identifying individual tasks in a plurality of tasks, the sets of commands of the context blocks useful to a user in accomplishing the tasks identified by the titles of the context blocks, wherein at least one tree data structure in the plurality of tree data structures includes a leaf node associated with a Boolean expression dependent on a selected text portion of a document, the selected text portion of the document being a portion of the document selected by a user of a computer; display, by the computer, a single navigable window containing a document area and a command area, the command area not initially containing a context block in the plurality of context blocks, the document area containing the document, wherein the user is working on the document; evaluating, at the computer, each tree data structure in the plurality of tree data structures by repeatedly; selecting, at the computer, a current tree data structure in the plurality of tree data structures; and after selecting the current tree data structure, evaluating, at the computer, each leaf node in the set of leaf nodes of the current tree data structure, wherein evaluating one of the leaf nodes of the current tree data structure comprises; selecting, at the computer, an unevaluated leaf node in the set of leaf nodes of the current tree data structure as a current node; after selecting the unevaluated leaf node as the current node, evaluating, at the computer, the Boolean expression associated with the current node; after evaluating the Boolean expression associated with the current node, determining, at the computer, whether the Boolean value associated with the current node has changed; (a) in response to determining that the Boolean value associated with the current node has changed, determining, at the computer, whether the current node is the root node of the current tree data structure; (b) in response to determining that the current node is not the root node of the current tree data structure, setting, at the computer, a parent of the current node as the current node; (c) after setting the parent of the current node as the current node, evaluating, at the computer, the Boolean expression associated with the current node; (d) after evaluating the Boolean expression associated with the current node, determining, at the computer, whether the Boolean value associated with the current node has changed; (e) in response to determining that the Boolean value associated with the current node has not changed, completing, at the computer, evaluation of the unevaluated leaf node; (f) in response to determining that the Boolean value associated with the current node has changed, performing, at the computer, steps (a)-(f) again; in response to determining that the current node is the root node of the current tree data structure, determining, at the computer, whether the Boolean value associated with the current node is changed and is a first Boolean value; in response to determining that the Boolean value associated with the current node is changed and is the first Boolean value, automatically displaying, by the computer on the display device, a given context block in the plurality of context blocks, the given context block displayed in the command area, the given context block containing the title of the given context block and the set of commands of the given context block, the table containing an entry specifying the given context block and the visibility expression represented by the current tree data structure, the given context block containing at least one command selectable by the user to perform an action on the document; and in response to determining that the Boolean value associated with the current node is changed and is not the first Boolean value, hiding, by the computer, the given context block from the command area.
-
Specification