US2011035727A1PendingUtilityA1

Undo/redo architecture across multiple files

Assignee: MICROSOFT CORPPriority: Jun 7, 2002Filed: Oct 25, 2010Published: Feb 10, 2011
Est. expiryJun 7, 2022(expired)· nominal 20-yr term from priority
Inventors:Ibrahim Mohamed
G06F 40/166
45
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Editing operations are monitored for operations for which information must be stored in order to properly apply an undo or undo/redo sequence to plurality of files. A snapshot is taken and persisted before such an operation is performed. Upon the execution of an undo or redo command, the persisted snapshot is retrieved and applied to the newly generated editing element.

Claims

exact text as granted — not AI-modified
1 . A computer-implemented method for performing a plurality of editing operations on a plurality of files simultaneously, the method comprising:
 a computer opening the plurality of files, the plurality of files comprising at least a first file comprising a user interface file and a first element, and a second file comprising a Code-Behind file that is separate from but related to the first file and comprising a second element that is different than but related to the first element of the first file such that an editing operation performed on the first element of the first file requires an editing operation to be performed on the corresponding second element of the second file;   the computer receiving a notification that a first editing operation is to be performed on the first element of the first file, wherein performance of the first editing operation on the first element of the first file will result in a second editing operation being automatically performed on the corresponding second element of the second file;   upon receiving the notification, the computer determining whether the first editing operation is one that is capable of being reversed, and when the first editing operation is capable of being reversed, automatically capturing the pre-operation state of at least the second element in the second file within persistent storage and storing within an operation store an operation unit representative of the operation and state of the operation performed for the first element and the second element;   after the first editing operation has been performed on the first element of the first file and the second editing operation has been automatically performed on the corresponding second element of the second file, the computer receiving a command to reverse the first editing operation on the first element of the first file; and   in response to the command, the computer automatically retrieving the pre-operation state of the second element of the second file and the operation performed on the second element from the operation store and applying the retrieved state and operation of the second element to the second file to automatically reverse the second operation performed on the second element, wherein the reverse operation comprises reapplying the state and operation on the second element and storing the operation unit and operation state for the reverse operation in persistent storage.   
     
     
         2 . The method of  claim 1 , wherein the command is one of an undo operation or a redo operation and the command produces changes that are not the same for a user interface file as they are for a Code-Behind file. 
     
     
         3 . The method of  claim 1 , wherein performing the first editing operation on the first element in the first file further comprises:
 in response to determining that the first element is not the same as the second element, persisting the second element in a first store.   
     
     
         4 . The method of  claim 1 , wherein in response to determining that the first element is not the same as the second element, the computer persisting a third element and an identifier of the first element in a first store within the persistent storage. 
     
     
         5 . The method of  claim 4 , wherein the second element is the same as the third element. 
     
     
         6 . The method of  claim 4 , wherein the second element is generated by applying the third element to the first element. 
     
     
         7 . The method of  claim 4 , wherein the first store is a hash table, keyed on a first element identifier. 
     
     
         8 . The method of  claim 4 , further comprising adding an operation unit identifying the first editing operation and an identifier of the first element to an operation store within the persistent storage. 
     
     
         9 . The method of  claim 1 , wherein in response to receiving the command, the method further comprises:
 the computer retrieving an operation unit state associated with the first editing operation from an operation store, wherein the operation unit state comprises an element identifier and associated state for the element;   the computer retrieving an identifier of the first element from the operation unit state;   the computer retrieving the pre-operation state of the second element associated with the identifier of the first element from the persistent storage; and   the computer applying the second element to the second file.   
     
     
         10 . The method of  claim 4 , wherein in response to receiving the command, the method further comprises:
 the computer retrieving an operation unit state associated with the first editing operation from an operation store, wherein the operation unit state comprises an element identifier and associated state for the element;   the computer retrieving an identifier of the first element from the operation unit state;   the computer retrieving the third element associated with the identifier of the first element from the first store;   the computer applying the third element to the first element to generate the second element; and   the computer applying the second element to the second file.   
     
     
         11 . The method of  claim 10 , further comprising the computer adding a second operation unit to the operation store, the second operation unit identifying the command and the identifier of the first element to an operation stack. 
     
     
         12 . The method of  claim 1 , wherein the plurality of files are documents. 
     
     
         13 . The method of  claim 1 , wherein the first file is a WebForm and the second file is a Code-Behind file. 
     
     
         14 . The method of  claim 1 , wherein the first editing operation is one of a delete or a cut. 
     
     
         15 . The method of  claim 1 , wherein the first element is a control. 
     
     
         16 . The method of  claim 1 , wherein the second element is a state of the control. 
     
     
         17 . The method of  claim 16 , wherein a serializer persists the state of the control as one of a code object, XML, string or BLOB. 
     
     
         18 . A computer-readable storage medium including computer-readable instructions for performing a plurality of editing operations on a plurality of files simultaneously, the instructions, when executed on a computer, causing the computer to:
 open the plurality of files, the plurality of files comprising at least a first file comprising a user interface file and a first element, and a second file comprising a Code-Behind file that is separate from but related to the first file and comprising a second element that is different than but related to the first element of the first file such that an editing operation performed on the first element of the first file requires an editing operation to be performed on the corresponding second element of the second file;   receive a notification that a first editing operation is to be performed on the first element of the first file, wherein performance of the first editing operation on the first element of the first file will result in a second editing operation being automatically performed on the corresponding second element of the second file;   upon receiving the notification, determine whether the first editing operation is one that is capable of being reversed, and when the first editing operation is capable of being reversed, automatically capture the pre-operation state of at least the second element in the second file within persistent storage and storing within an operation store an operation unit representative of the operation and state of the operation performed for the first element and the second element;   after the first editing operation has been performed on the first element of the first file and the second editing operation has been automatically performed on the corresponding second element of the second file, receive a command to reverse the first editing operation on the first element of the first file; and   in response to the command, automatically retrieve the pre-operation state of the second element of the second file and the operation performed on the second element from the operation store and apply the retrieved state and operation of the second element to the second file to automatically reverse the second editing operation performed on the second element, wherein the reverse editing operation comprises reapplying the state and operation on the second element and storing the state and the operation unit for the reverse editing operation in persistent storage where an editing command produces changes that are not the same for the first file as they are for the second file.   
     
     
         19 . The computer-readable medium of  claim 18  further comprising computer-readable instructions for:
 receiving a request to perform a second operation on the first element in the first file; 
 in response to determining that the second operation is one of an undo and a delete operation, retrieving the object identifying the operation and the first element from the second store; 
 retrieving the second element from the first store; and 
 applying the second element to the second file. 
 
     
     
         20 . A computing system comprising a processor and a computing memory having stored therein instructions that when executed by the processor cause the computing system to:
 open the plurality of files, the plurality of files comprising at least a first file comprising a user interface file and a first element, and a second file comprising a Code Behind file that is separate from but related to the first file and comprising a second element that is different than but related to the first element of the first file such that an editing operation performed on the first element of the first file requires an editing operation to be performed on the corresponding second element of the second file;   receive a notification that a first editing operation is to be performed on the first element of the first file, wherein performance of the first editing operation on the first element of the first file will result in a second editing operation being automatically performed on the corresponding second element of the second file;   upon receiving the notification, determine whether the first editing operation is one that is capable of being reversed, and when the first editing operation is capable of being reversed, automatically capture the pre-operation state of at least the second element in the second file within persistent storage and storing within an operation store an operation unit representative of the operation and state of the operation performed for the first element and the second element;   after the first editing operation has been performed on the first element of the first file and the second editing operation has been automatically performed on the corresponding second element of the second file, receive a command to reverse the first editing operation on the first element of the first file; and   in response to the command, automatically retrieve the pre-operation state of the second element of the second file and the operation performed on the second element from the operation store and apply the retrieved state and operation of the second element to the second file to automatically reverse the second editing operation performed on the second element, wherein the reverse editing operation comprises reapplying the state and operation on the second element and storing the state and the operation unit for the reverse editing operation in persistent storage where an editing command produces changes that are not the same for the first file as they are for the second file.   
     
     
         21 . The computing system of  claim 20  further having stored therein instructions that when executed by the processor cause the computing system to:
 receive a request to perform a second operation on the first element in the first file; 
 in response to determine that the second operation is one of an undo and a delete operation, retrieve the object identifying the operation and the first element from the second store; 
 retrieve the second element from the first store; and 
 apply the second element to the second file.

Join the waitlist — get patent alerts

Track US2011035727A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.