Task-sensitive methods and systems for displaying command sets
First Claim
Patent Images
1. A computer-implemented method of exposing commands in a document-centric software application program, the computer-implemented method comprising:
- automatically displaying, by a computer, a window on a display device, the window generated by the document-centric software application program, the document-centric software 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 first context block;
storing, by the computer, the first context block at one or more computer-readable storage media, the first context block comprising Hyper-Text Markup Language (HTML) code that specifies a title and a set of selectable commands executable by the document-centric software application program, the title identifying a task, the set of selectable commands useful to a user in accomplishing the task;
storing a tree data structure, the tree data structure being stored at the computer, the tree data structure associated with the first context block, 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 consisting of 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 consisting of 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, 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 associated with a Boolean expression, the Boolean expression associated with each leaf node in the set of leaf nodes being dependent on different aspects of a current context of the user within the window, the Boolean expression associated with each non-leaf node in the set of non-leaf nodes taking as operands the values associated with each of the child nodes of the non-leaf node, the set of leaf nodes including a first leaf node, a second leaf node and a third leaf node;
automatically ascertaining, at the computer, that the user has changed a position of a cursor, the cursor being within the document;
in response to ascertaining that the user has changed the position of the cursor, automatically changing, at the computer, the value associated with the first leaf node;
automatically ascertaining, at the computer, that the user has selected text within the document;
in response to ascertaining that the user has selected the text, automatically changing, at the computer, the value associated with the second leaf node;
automatically ascertaining, at the computer, a type of the document;
in response to ascertaining the type of the document, automatically changing, at the computer, the value associated with the third leaf node;
each time a value associated with any child node changes, generating, at the computer, a notification to a parent node, the computer generating the notification in response to the change in the value associated with the child node, the parent node and the child node being nodes in the overall set of nodes, the child node being a child of the parent node;
each time a recipient node receives a notification, evaluating, at the computer, the Boolean expression associated with the recipient node to ascertain whether the value associated with the recipient node changes, the computer evaluating the Boolean expression associated with the recipient node in response to the notification, the recipient node being a non-leaf node in the set of non-leaf nodes;
displaying, by the computer, in the controls area of the window, for the user, the title specified by the first context block and the set of selectable commands specified by the first context block when the value associated with the root node changes from a first value to a second value; and
removing, by the computer, the title specified by the first context block and the set of selectable commands specified by the first context block from the window when the value associated with the root node changes from the second value to the first value.
1 Assignment
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.
671 Citations
14 Claims
-
1. A computer-implemented method of exposing commands in a document-centric software application program, the computer-implemented method comprising:
-
automatically displaying, by a computer, a window on a display device, the window generated by the document-centric software application program, the document-centric software 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 first context block; storing, by the computer, the first context block at one or more computer-readable storage media, the first context block comprising Hyper-Text Markup Language (HTML) code that specifies a title and a set of selectable commands executable by the document-centric software application program, the title identifying a task, the set of selectable commands useful to a user in accomplishing the task; storing a tree data structure, the tree data structure being stored at the computer, the tree data structure associated with the first context block, 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 consisting of 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 consisting of 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, 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 associated with a Boolean expression, the Boolean expression associated with each leaf node in the set of leaf nodes being dependent on different aspects of a current context of the user within the window, the Boolean expression associated with each non-leaf node in the set of non-leaf nodes taking as operands the values associated with each of the child nodes of the non-leaf node, the set of leaf nodes including a first leaf node, a second leaf node and a third leaf node; automatically ascertaining, at the computer, that the user has changed a position of a cursor, the cursor being within the document; in response to ascertaining that the user has changed the position of the cursor, automatically changing, at the computer, the value associated with the first leaf node; automatically ascertaining, at the computer, that the user has selected text within the document; in response to ascertaining that the user has selected the text, automatically changing, at the computer, the value associated with the second leaf node; automatically ascertaining, at the computer, a type of the document; in response to ascertaining the type of the document, automatically changing, at the computer, the value associated with the third leaf node; each time a value associated with any child node changes, generating, at the computer, a notification to a parent node, the computer generating the notification in response to the change in the value associated with the child node, the parent node and the child node being nodes in the overall set of nodes, the child node being a child of the parent node; each time a recipient node receives a notification, evaluating, at the computer, the Boolean expression associated with the recipient node to ascertain whether the value associated with the recipient node changes, the computer evaluating the Boolean expression associated with the recipient node in response to the notification, the recipient node being a non-leaf node in the set of non-leaf nodes; displaying, by the computer, in the controls area of the window, for the user, the title specified by the first context block and the set of selectable commands specified by the first context block when the value associated with the root node changes from a first value to a second value; and removing, by the computer, the title specified by the first context block and the set of selectable commands specified by the first context block from the window when the value associated with the root node changes from the second value to the first value. - View Dependent Claims (2, 3)
-
-
4. One or more computer-readable storage media having computer-readable instructions thereon which, when executed by a computer, cause the computer to:
-
automatically display an application window on a display device, the application window containing a work area and a controls area, the work area containing a document, the controls area not initially containing a context block, the application window generated by a document-centric software application program operating at the computer; store the context block at one or more computer-readable storage media, the context block comprising Hyper-Text Markup Language (HTML) code that specifies a title and a set of selectable commands executable by the document-centric software application program, the title identifying a task, the set of commands useful to a user in accomplishing the task; store a tree data structure, the tree data structure being stored at the computer, the tree data structure associated with the context block, 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 consisting of 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 consisting of 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, 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 associated with a Boolean expression, the Boolean expression associated with each leaf node in the set of leaf nodes being dependent on different aspects of current context of the user within the application window, the Boolean expression associated with each non-leaf node in the set of non-leaf nodes taking as operands the values associated with each of the child nodes of the non-leaf node, the set of leaf nodes including a first leaf node, a second leaf node and a third leaf node; automatically ascertain that the user has changed a position of a cursor, the cursor being within the document; in response to ascertaining that the user has changed the position of the cursor, automatically change the value associated with the first leaf node; automatically ascertain that the user has selected text within the document; in response to ascertaining that the user has selected the text, automatically change the value associated with the second leaf node; automatically ascertain a type of the document; in response to ascertaining the type of the document, automatically change the value associated with the third leaf node; each time a value associated with any child node changes, generate a notification to a parent node, the computer generating the notification in response to the change in the value associated with the child node, the parent node and the child node being nodes in the overall set of nodes, the child node being a child of the parent node; each time a recipient node receives a notification, evaluate the Boolean expression associated with the recipient node to ascertain whether the value associated with the recipient node changes, the computer evaluating the Boolean expression associated with the recipient node in response to the notification, changing the value associated with the recipient node, the recipient node being a non-leaf node in the set of non-leaf nodes; and display in the controls area of the application window, for the user, the title specified by the context block and the set of selectable commands specified by the context block only if the value associated with the root node of the tree data structure changes.
-
-
5. A computer-implemented method of exposing commands in a software application program, the computer-implemented method comprising:
-
automatically displaying, by a computer, a window on a display device, the window generated by the software application program, the software 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 first context block; storing, by the computer, a plurality of context blocks at one or more computer-readable storage media, the plurality of context blocks including the first context block, each context block in the plurality of context blocks comprising Hyper-Text Markup Language (HTML) code that specifies a title and a set of selectable commands executed by the software application program, the title of identifying a task, the set of commands useful to a user in accomplishing the task; storing, by the computer, a table containing a plurality of entries, each entry in the table associating a context block in the plurality of context blocks with an individual visibility expression in a plurality of visibility expressions, each individual visibility expression in the plurality of visibility expressions defining conditions that describe one or more aspects of an interaction of the user with the document; storing, by the computer, each visibility expression in the plurality of visibility expressions as an individual tree data structure in a plurality of tree data structures, each individual 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 consisting of 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 consisting of 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, 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 associated with a Boolean expression, the Boolean expression associated with each leaf node in the set of leaf nodes being dependent on different aspects of a current context of the user within the software application program, the Boolean expression associated with each non-leaf node in the set of non-leaf nodes taking as operands the values associated with each of the child nodes of the non-leaf node; automatically ascertaining, at the computer, that the user has changed a position of a cursor, the cursor being within the document; in response to ascertaining that the user has changed the position of the cursor, automatically changing, at the computer, the value associated with a first leaf node in a first tree data structure in the plurality of tree data structures, a first visibility expression in the plurality of visibility expressions stored as the first tree data structure, the plurality of entries containing a first entry, the first entry associating the first context block with the first visibility expression; automatically ascertaining, at the computer, that the user has selected text within the document; in response to ascertaining that the user has selected the text, automatically changing, at the computer, the value associated with a second leaf node in the first tree data structure; automatically ascertaining, at the computer, a type of the document; in response to ascertaining the type of the document, automatically changing, at the computer, the value associated with a third leaf node in the first tree data structure; each time a value associated with any child node changes, generating, at the computer, a notification to a parent node, the computer generating the notification in response to the change in the value associated with the child node, the parent node and the child node being nodes in the plurality of tree data structures, the child node being a child of the parent node; each time a recipient node receives a notification, evaluating, at the computer, the Boolean expression associated with the recipient node to ascertain whether the value associated with the recipient node changes, the computer evaluating the Boolean expression associated with the recipient node in response to the notification, the recipient node being a non-leaf node in the set of non-leaf nodes in the plurality of tree data structures; and displaying, by the computer, for the user, in the controls area of the window, the title specified by the first context block and the set of selectable commands specified by the first context block when the root node of the first tree data structure changes from a first value to a second value. - View Dependent Claims (6, 7, 8)
-
-
9. A computer-implemented method of exposing commands in a document-centric software application program, the computer-implemented method comprising:
-
automatically displaying, by a computer, a window on a display device, the window containing a work area and a controls area, the work area containing a document, the window generated by the document-centric software application program, the document-centric software application program operating at the computer, the controls area not initially containing a context block; storing, by the computer, the context block at one or more computer-readable storage media, the context block comprising Hyper-Text Markup Language (HTML) code that specifies a title and a set of selectable commands executable by the document-centric software 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 the computer, the tree data structure associated with the context block, 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 consisting of 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 consisting of 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, 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 associated with a Boolean expression, the Boolean expression associated with each leaf node in the set of leaf nodes being dependent on different aspects of a current context of the user within the document, the Boolean expression associated with each non-leaf node in the set of non-leaf nodes taking as operands the values associated with each of child nodes of the non-leaf node, the set of leaf nodes including a first leaf node, a second leaf node and a third leaf node; automatically ascertaining, at the computer, that the user has changed a position of a cursor, the cursor being within the document; in response to ascertaining that the user has changed the position of the cursor, automatically changing, at the computer, the value associated with the first leaf node; automatically ascertaining, at the computer, that the user has selected text within the document; in response to ascertaining that the user has selected the text, automatically changing at the computer, the value associated with the second leaf node; automatically ascertaining, at the computer, a type of the document; in response to ascertaining the type of the document, automatically changing, at the computer, the value associated with the third leaf node; each time a value associated with any child node changes, generating, at the computer, a notification to a parent node, the computer generating the notification in response to the change in the value associated with the child node, the parent node and the child node being nodes in the overall set of nodes, the child node being a child of the parent node; each time a recipient node receives a notification, evaluating, at the computer, the Boolean expression associated with the recipient node to ascertain whether the value associated with the recipient node changes, the computer evaluating the Boolean expression associated with the recipient node in response to the notification, the recipient node being a non-leaf node in the set of non-leaf nodes; displaying, by the computer, for the user, in the controls area of the window, the title specified by the context block and the set of selectable commands specified by the context block when the value associated with the root node changes from a first value to a second value; and removing, by the computer, the title specified by the context block and the set of selectable commands specified by the context block from the window when the value associated with the root node changes from the second value to the first value. - View Dependent Claims (10, 11)
-
-
12. A computer-implemented method of exposing commands in a software application program, the computer-implemented method comprising:
-
storing, by a computer, at one or more computer-readable storage media, a context block comprising Hyper-Text Markup Language (HTML) code that specifies a title and a set of commands executable by the software application program, the title identifying a task, the set of commands useful to a user in accomplishing the task; storing, by the computer, a tree data structure, the tree data structure associated with the context block, 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 consisting of 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 consisting of 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, 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 associated with a Boolean expression, the Boolean expression associated with each leaf node in the set of leaf nodes being dependent on different aspects of a user'"'"'s current context within a document, the Boolean expression associated with each non-leaf node in the set of non-leaf nodes taking as operands the values associated with each of the child nodes of the non-leaf node, the user'"'"'s current context being a context of the user, the set of leaf nodes including a first leaf node, a second leaf node and a third leaf node; automatically causing, at the computer, a display device connected to the computer to display a window, the window containing a work area and a controls area, the work area containing the document, the controls area not initially including the context block; automatically ascertaining, at the computer, that the user has changed a position of a cursor, the cursor being within the document; in response to ascertaining that the user has changed the position of the cursor, automatically changing, at the computer, the value associated with the first leaf node; automatically ascertaining, at the computer, that the user has selected text within the document; in response to ascertaining that the user has selected the text, automatically changing, at the computer, the value associated with the second leaf node; automatically ascertaining, at the computer, a type of the document; in response to ascertaining the type of the document, automatically changing, at the computer, the value associated with the third leaf node; each time a value associated with any child node changes, generating, at the computer, a notification to a parent node, the computer generating the notification in response to the change in the value associated with the child node, the parent node and the child node being nodes in the overall set of nodes, the child node being a child of the parent node; each time a recipient node receives a notification, evaluating, at the computer, the Boolean expression associated with the recipient node to ascertain whether the value associated with the recipient node changes, the computer evaluating the Boolean expression associated with the recipient node in response to the notification, the recipient node being a non-leaf node in the set of non-leaf nodes; displaying, by the computer, in the controls area of the window, for the user, the title specified by the context block and the set of selectable commands specified by the context block when the value associated with the root node changes from false to true; and removing, by the computer, the title specified by the context block and the set of selectable commands specified by the context block from the controls area of the window when the value associated with the root node changes from true to false. - View Dependent Claims (13, 14)
-
Specification