IP Library Granted Patent US 7,207,034
Granted Patent B2
US 7,207,034 · App. 10/602,435 · Granted Apr 17, 2007

Undo infrastructure

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,207,034
App. No.
10/602,435
Granted
Apr 17, 2007
Kind
B2
Abstract

Methods, systems, and computer program products that automatically generate and track undo information so that the developer of a user interface object need not be responsible for generating and tracking undo information. Change notifications for changes to an object within a visual user interface designer are processed. Data representing an initial state of the object prior to the changes and data representing a subsequent state of the object after the changes is persisted. From the persisted data, an undo unit is prepared for undoing the changes to the object. The undo unit may comprise a transaction of multiple changes made to the object. Each undo unit may identify corresponding routines for undoing and redoing the actions included within the undo unit. An undo unit may be stored until an undo/redo notification is received, and then used to undo/redo the changes represented by the undo unit.

Claims (82)

1. In a computer system that supports a visual user interface designer and a serialization engine capable of saving state for user interface objects created within the visual user interface designer, a method of automatically generating and tracking undo information for changes made to a user interface object within the visual user interface designer so that a developer of the user interface object need not be responsible for generating and tracking the undo information, the method comprising acts of:

receiving one or more change notifications generated in response to one or more changes to the user interface object within the visual user interface designer;

calling the serialization engine to serialize at least a portion of the user interface object into a serialized format that is suitable for representing the one or more changes;

using a transaction to fabricate an undo unit from the serialized format of the one or more changes to the user interface object, the transaction spanning the one or more changes and the one or more change notifications; and

adding the undo unit to an undo stack such that the undo unit can subsequently be accessed to perform at least one of undoing and redoing any of the one or more changes.

2. A method as recited in claim 1 , wherein the user interface object comprises a third-party user interface object for use within the visual user interface designer.

3. A method as recited in claim 1 , wherein the one or more change notifications comprise at least one of an adding notification and an added notification.

4. A method as recited in claim 1 , wherein the undo unit identifies one or more routines for undoing the one or more changes made to the user interface object.

5. A method as recited in claim 4 , further comprising acts of:

receiving a notification to undo the one or more changes in the undo unit;

removing the undo unit from the undo stack; and

calling the one or more routines for undoing the one or more changes made to the user interface object.

6. A method as recited in claim 5 , further comprising an act of adding the undo unit to a redo stack as a redo unit.

7. A method as recited in claim 6 , wherein the undo unit identifies one or more routines for redoing the one or more changes made to the user interface object, the method further comprising acts of:

receiving a notification to redo the one or more changes in the redo unit;

removing the redo unit from the redo stack; and

calling the one or more routines for redoing the one or more changes made to the user interface object.

8. A method as recited in claim 1 , wherein the undo unit comprises a name of the user interface object, a type of the user interface object, and one or more previous states of the user interface object prior to the one or more changes.

9. A computer program product for use at computer system that supports a visual user interface designer and a serialization engine capable of saving state for user interface objects created within the visual user interface designer, the computer program product comprising one or more computer readable media having stored thereon computer-executable instructions that, when executed at the computer system, cause the computer system to implement a method of automatically generating and tracking undo information for changes made to a user interface object within the visual user interface designer so that a developer of the user interface object need not be responsible for generating and tracking the undo information, including performing the following:

receiving one or more change notifications generated in response to one or more changes to the user interface object within the visual user interface designer;

calling the serialization engine to serialize at least a portion of the user interface object into a serialized format that is suitable for representing the one or more changes; and

using a transaction to fabricate an undo unit from the serialized format of the one or more changes to the user interface object, the transaction spanning the one or more changes and the one or more change notifications; and

adding the undo unit to an undo stack such that the undo unit can subsequently be accessed to perform at least one of undoing and redoing any of the one or more changes.

10. A computer program product as recited in claim 9 , wherein at least one of the one or more change notifications initiates a transaction for multiple changes to be made to the user interface object.

11. A computer program product as recited in claim 9 , wherein the one or more change notifications comprise at least one of a changing notification and a changed notification.

12. A computer program product as recited in claim 9 , wherein the user interface object comprises a dialog with an OK button to accept any changes made within the dialog and a CANCEL button to reject any changes made within the dialog.

13. A computer program product as recited in 12 , wherein at least one of the one or more change notifications initiates a transaction for changes to be made to the dialog.

14. A computer program product as recited in claim 13 , the method further comprising acts of:

receiving a notification that the CANCEL button was selected; and

canceling the transaction.

15. A computer program product as recited in claim 13 , the method further comprising acts of:

receiving a notification that the OK button was selected; and

adding the undo unit to an undue stack, wherein the undo unit comprises the transaction.

16. A computer program product as recited in claim 9 , wherein the undo unit comprises a name of the user interface object, a type of the user interface object, and one or more subsequent states of the user interface object after the one or more changes.

17. A computer program product as recited in claim 9 , wherein the user interface object does not implement undo for one or more properties of the user interface object.

18. In a computer system that supports a visual user interface designer and a serialization engine capable of saving state for user interface objects created within the visual user interface designer, a method of automatically generating and tracking undo information for changes made to a user interface object within the visual user interface designer so that a developer of the user interface object need not be responsible for generating and tracking the undo information, the method comprising steps for:

an undo engine processing one or more change notifications for one or more changes to the user interface object within the visual user interface designer;

the undo engine persisting initial data that represents an initial state of the user interface object prior to the one or more changes;

the undo engine persisting subsequent data that represents a subsequent state of the user interface object after the one or more changes; and

the undo engine using a transaction to fabricate an undo unit from the initial data and subsequent data for undoing the one or more changes to the user interface object, the transaction spanning the initial data and subsequent data.

19. A method as recited in claim 18 , wherein the one or more change notifications comprise at least one of a removing notification and a removed notification.

20. A method as recited in claim 18 , wherein the undo unit identifies one or more routines for undoing the one or more changes made to the user interface object.

21. A method as recited in claim 20 , further comprising steps for:

storing the undo unit;

listening for a notification to undo the one or more changes in the undo unit;

using the undo unit and the one or more undo routines to undo the one or more changes made to the user interface object; and

deleting the undo unit.

22. A method as recited in claim 21 , further comprising a step for storing the undo unit as a redo unit.

23. A method as recited in claim 22 , wherein the redo unit comprises one or more routines for redoing the one or more changes made to the user interface object, the method further comprising steps for:

listening for a notification to redo the one or more changes in the redo unit;

using the redo unit and the one or more redo routines to redo the one or more changes made to the user interface object; and

deleting the redo unit.

24. A method as recited in claim 23 , wherein the user interface object does not implement redo.

25. A method as recited in claim 23 , wherein the step for the undo engine persisting initial data and persisting subsequent data comprises an act of calling the serialization engine to serialize at least a portion of the user interface object into a serialized format that is suitable for representing the one or more changes.

26. A computer program product for use at computer system that supports a visual user interface designer and a serialization engine capable of saving state for user interface objects created within the visual user interface designer, the computer program product comprising one or more computer readable media having stored thereon computer executable instructions that, when executed by a processor, cause an undo engine at the computer system implement a method of automatically generating and tracking undo information for changes made to a user interface object within the visual user interface designer so that a developer of the user interface object need not be responsible for generating and tracking the undo information, including performing the following:

processing one or more change notifications for one or more changes to the user interface object within the visual user interface designer;

persisting an initial data that represents an initial state of the user interface object prior to the one or more changes;

persisting a subsequent data that represents a subsequent state of the user interface object after the one or more changes; and

using a transaction to fabricate an undo unit from the initial data and subsequent data for undoing the one or more changes to the user interface object, the transaction spanning the initial data and the subsequent data.

27. A computer program product as recited in claim 26 , wherein the undo unit comprises a transaction for a plurality of changes made to the user interface object.

28. A computer program product as recited in claim 26 , wherein the one or more change notifications comprise a rename notification.

29. A computer program product as recited in claim 26 , wherein the user interface object comprises a dialog with an OK button to accept any changes made within the dialog and a CANCEL button to reject any changes made within the dialog.

30. A computer program product as recited in claim 29 , wherein at least one of the one or more change notifications initiates a transaction for changes to be made to the dialog.

31. A computer program product as recited in claim 30 , the method further comprising acts of:

receiving a notification that the CANCEL button was selected; and

canceling the transaction.

32. A computer program product as recited in claim 30 , the method further comprising acts of:

receiving a notification that the OK button was selected; and

adding the undo unit to an undue stack, wherein the undo unit comprises the transaction.

33. A computer program product as recited in claim 26 , wherein the user interface object is a third-party user interface object for use within the visual user interface designer.

34. A computer program product as recited in claim 26 , wherein the undo unit comprises a name of the user interface object, a type of the user interface object, one or more previous states of the user interface object prior to the one or more changes, and one or more subsequent states of the user interface object after the one or more changes.

35. A computer program product for use at a computer system, the computer program product comprising one or more computer readable media having stored thereon computer executable instructions comprising an undo engine that automatically generates and tracks undo information for changes made to a user interface object within a visual user interface designer so that a developer of the user interface object need not generate and track the undo information, the undo engine comprising:

one or more routines that capture change notifications that are generated automatically in response to changes made to the user interface object within the visual user interface designer;

one or more routines that request state data for the user interface object to use in representing one or more changes to the user interface object;

one or more routines that use a transaction to fabricate an undo unit from the state data that corresponds to the user interface object, the transactions spanning the changes made to the user interface object and the captured change notifications; and

one or more routines that request storage of the undo unit such that the undo unit can subsequently be accessed to perform at least one of undoing and redoing any of the changes made to the user interface object.

36. A computer program product as recited in claim 35 , further comprising one or more routines for undoing the one or more changes made to the user interface object.

37. A computer program product as recited in claim 35 , further comprising one or more routines for redoing the one or more changes made to the user interface object.

38. A computer program product as recited in claim 35 , further comprising one or more routines for storing the undo unit.

39. A computer program product as recited in claim 35 , further comprising one or more routines that generate the state data for the user interface object.

40. A computer program product as recited in claim 35 , wherein the one or more routines that request state data for the user interface object are capable of interacting with a plurality of distinct state data implementations.

41. A computer program product as recited in claim 35 , wherein the one or more routines that request storage of the undo unit are capable of interacting with a plurality of distinct storage implementations.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2003
From: BURKE, SHAWN PATRICK; PEPIN, BRIAN KEITH
To: MICROSOFT CORPORATION
Reel/Frame 014223/0001 →