Claims
- 1. A computer-implemented method of exposing commands in a software application program comprising:
associating multiple context blocks with individual expressions, individual context blocks containing one or more commands, individual expressions defining conditions that describe one or more aspects of a user's interaction with the application program; evaluating at least portions of at least some of the expressions responsive to a change in the user's context; and displaying, for the user, at least one context block responsive to said evaluating.
- 2. The method of claim 1, wherein the expressions define conditions that describe one or more aspects of a user's interaction with a document.
- 3. The method of claim 1, wherein said associating comprises maintaining a table with entries for the context blocks and their associated expressions.
- 4. The method of claim 1, wherein the expressions are Boolean expressions.
- 5. The method of claim 1, wherein said evaluating comprises:
representing each expression as a tree structure having multiple nodes, each node comprising either an expression operand or an operation; associating a value with each of the nodes, the node values being capable of changing when a user's context changes; for some of the tree structures, evaluating values associated with less than all of the nodes to ascertain whether to display a context block associated with the tree structure.
- 6. The method of claim 1, wherein said evaluating comprises:
representing each expression as a tree structure having multiple nodes, each node comprising either an expression operand or an operation; associating a value with each of the nodes, the node values being capable of changing when a user's context changes; if a value for a particular node changes, and if the particular node has a parent node, notifying the parent node with the changed value and re-evaluating the parent node's value.
- 7. The method of claim 6, wherein each tree structure has a root node, and further comprising displaying the context block associated with a tree structure only if the root node changes in value.
- 8. One or more computer-readable media having computer-readable instructions thereon which, when executed by a computer, cause the computer to:
associate multiple context blocks with individual expressions, individual context blocks containing one or more commands, individual expressions defining conditions that describe one or more aspects of a user's interaction with the application program; evaluate at least portions of at least some of the expressions responsive to a change in the user's context by:
representing each expression as a tree structure having multiple nodes, each node comprising either an expression operand or an operation, each tree structure having a root node; associating a value with each of the nodes, the node values being capable of changing when a user's context changes; and if a value for a particular node changes, and if the particular node has a parent node, notifying the parent node with the changed value and re-evaluating the parent node's value; and display, for the user, at least one context block responsive to said evaluating only if the root node of the tree structure that is associated with the context block changes in value.
- 9. A computer-implemented method of exposing commands in a software application program comprising:
associating, using a table, multiple context blocks with individual expressions, individual context blocks containing one or more commands, individual expressions defining conditions that describe one or more aspects of a user's interaction with a document provided by the application program; evaluating at least portions of at least some of the expressions responsive to a change in the user's context; and displaying, for the user, at least one context block responsive to said evaluating.
- 10. The method of claim 9, wherein the expressions are Boolean expressions.
- 11. The method of claim 9, wherein said evaluating comprises:
representing each expression as a tree structure having multiple nodes, each node comprising either an expression operand or an operation; associating a value with each of the nodes, the node values being capable of changing when a user's context changes; for some of the tree structures, evaluating values associated with less than all of the nodes to ascertain whether to display a context block associated with the tree structure.
- 12. The method of claim 9, wherein said evaluating comprises:
representing each expression as a tree structure having multiple nodes, each node comprising either an expression operand or an operation; associating a value with each of the nodes, the node values being capable of changing when a user's context changes; if a value for a particular node changes, and if the particular node has a parent node, notifying the parent node with the changed value and re-evaluating the parent node's value.
- 13. The method of claim 12, wherein each tree structure has a root node, and further comprising displaying the context block associated with a tree structure only if the root node changes in value.
- 14. One or more computer-readable media having computer-readable instructions thereon which, when executed by a computer, implement the method of claim 9.
- 15. A computer system embodying the one or more computer-readable media of claim 14.
- 16. A computer-implemented method of exposing commands in a software application program comprising:
associating multiple context blocks with individual expressions, individual context blocks containing one or more commands, individual expressions defining conditions that describe one or more aspects of a user's interaction with a document provided by the application program; evaluating at least portions of at least some of the expressions responsive to a change in the user's context, wherein said evaluating comprises:
representing each expression as a tree structure having multiple nodes, each node comprising either an expression operand or an operation; associating a value with each of the nodes, the node values being capable of changing when a user's context changes; for some of the tree structures, evaluating values associated with less than all of the nodes to ascertain whether to display a context block associated with the tree structure; and displaying, for the user, at least one context block responsive to said evaluating.
- 17. The method of claim 16, wherein each tree structure has a root node, and further comprising displaying the context block associated with a tree structure only if the root node changes in value.
- 18. One or more computer-readable media having computer-readable instructions thereon which, when executed by a computer, implement the method of claim 16.
- 19. A computer system embodying the one or more computer-readable media of claim 18.
- 20. A computer-implemented method of exposing commands in a software application program comprising:
associating multiple context blocks with individual expressions, individual context blocks containing one or more commands, individual expressions defining conditions that describe one or more aspects of a user's interaction with a document provided by the application program, wherein individual expressions comprise Boolean expressions; evaluating at least portions of at least some of the expressions responsive to a change in the user's context; and displaying, for the user, at least one context block responsive to said evaluating.
- 21. The method of claim 20, wherein said evaluating comprises:
representing each expression as a tree structure having multiple nodes, each node comprising either an expression operand or an operation; associating a value with each of the nodes, the node values being capable of changing when a user's context changes; for some of the tree structures, evaluating values associated with less than all of the nodes to ascertain whether to display a context block associated with the tree structure.
- 22. The method of claim 20, wherein said evaluating comprises:
representing each expression as a tree structure having multiple nodes, each node comprising either an expression operand or an operation; associating a value with each of the nodes, the node values being capable of changing when a user's context changes; if a value for a particular node changes, and if the particular node has a parent node, notifying the parent node with the changed value and re-evaluating the parent node's value.
- 23. The method of claim 22, wherein each tree structure has a root node, and further comprising displaying the context block associated with a tree structure only if the root node changes in value.
- 24. One or more computer-readable media having computer-readable instructions thereon which, when executed by a computer, implement the method of claim 22.
- 25. A computer system embodying the one or more computer-readable media of claim 24.
RELATED APPLICATIONS
[0001] This application is a divisional application of and claims priority to U.S. patent application Ser. No. 09/599,086, filed on Jun. 21, 2000, the disclosure of which is incorporated by reference herein.
[0002] In addition, the following patent applications are related to the present application, are assigned to the assignee of this patent application, and are expressly incorporated by reference herein:
[0003] U.S. patent application Ser. No. 09/599,298, entitled “Single Window Navigation Methods and Systems”, bearing attorney docket number MS1-560us, and filed on the same date as this patent application;
[0004] U.S. patent application Ser. No. 09/599,806, entitled “Methods and Systems of Providing Information to Computer Users”, bearing attorney docket number MS1-557us, and filed on the same date as this patent application;
[0005] U.S. patent application Ser. No. 09/599,299, entitled “Methods, Systems, Architectures and Data Structures For Delivering Software via a Network”, bearing attorney docket number MS1-559us, and filed on the same date as this patent application;
[0006] U.S. patent application Ser. No. 09/599,048, entitled “Network-based Software Extensions”, bearing attorney docket number MS1-563us, and filed on the same date as this patent application;
[0007] U.S. patent application Ser. No. 09/599,813, entitled “Authoring Arbitrary XML Documents Using DHTML and XSLT”, bearing attorney docket number MS1-583us, and filed on the same date as this patent application;
[0008] U.S. patent application Ser. No. 09/599,812, entitled “Architectures For And Methods Of Providing Network-based Software Extensions”, bearing attorney docket number MS1-586us, and filed on the same date as this patent application.
Divisions (1)
|
Number |
Date |
Country |
Parent |
09599086 |
Jun 2000 |
US |
Child |
10898657 |
Jul 2004 |
US |