Changes between Version 1 and Version 2 of CORE_CHANGES


Ignore:
Timestamp:
03/17/09 14:59:01 (16 years ago)
Author:
gogov
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CORE_CHANGES

    v1 v2  
     1This is the main page which describes what are Changes, why are they needed, how to use them and also concepts related with them. 
     2 
     3== Overview == 
     4 
     5 
     6 
    17== Change == 
    2  * Purpose 
    3  * Hierarchy 
    4   * Change 
    5   * ProChange 
    6   * GroupChange 
    7   * AutoChange 
    8  * Usage 
    9 == Serializing == 
     8 * ''Hierarchy'' 
     9  * ''Change'' [[BR]] 
     10   Change is the base interface for all changes that need to be tracked and respectively undoed, redoed and skipped in Sophie. [[BR]] 
     11   Changes can be composed via GroupChanges and actually in Sophie, each more complex action is represented by a GroupChange and thus form a tree of GroupChanges, having internal nodes form the tree structure and leaves being just GroupChanges with a single ProChange in it.  
     12 
     13   * ''Top-level Changes'' [[BR]] 
     14    Top-level Changes are changes cause by a user actions like creating a frame, changing the background color, etc. [[BR]] 
     15    Each top-level Change is represented as a GroupChange and most likely has side-effect Changes. [[BR]] 
     16    Top-level Changes can be undoed, redoed and skipped by the UndoManager. 
     17   * ''Side-effect Changes'' [[BR]] 
     18    Side-effect Changes are Changes which are caused to happen due to a top-level Change. [[BR]] 
     19    Side-effect Changes are represented as subChanges of the GroupChanges which represents the top-level Change which caused them. 
     20   
     21   * ''Significance of Changes'' [[BR]] 
     22 
     23 
     24  * ''Main Changes'' 
     25   * ''ProChange'' 
     26   * ''GroupChange'' 
     27    [wiki:PRO_CHANGE_COMPOSING_R0] 
     28   * ''AutoChange'' 
     29  * ''Special Changes'' 
     30   * ''UndoChange'' [[BR]] 
     31    UndoChange is a Change which wraps an '''undo''' command issued by the UndoManager. [[BR]] 
     32    It cancels the effect of the last Change in the History it's associated with. 
     33   * ''RedoChange'' [[BR]] 
     34    RedoChange is a Change which wraps a '''redo''' command issued by the UndoManager. [[BR]] 
     35    It is only valid if the last Change the History it's associated with is an UndoChange in which case it cancels its effect. 
     36   * ''SkipChange'' [[BR]] 
     37    SkipChange is a Change which wraps a '''skip''' command issued by the UndoManager. [[BR]] 
     38    It accepts one parameter which is the id of a Change in the History it's associated with and cancels its effect. 
     39   * ''CreateChange'' [[BR]] 
     40    Creating ProObjects is an important special event which couldn't be handled in the standard manner and thus is wrapped in a CreateChange. 
     41   * ''DestroyChange'' [[BR]] 
     42    Same applies to destroying ProObjects. 
     43   * ''UnmanagedChange'' [[BR]] 
     44    UnmanagedChange is a Change which is meant to wrap actions which need special handling of their undo logic. [[BR]] 
     45    Since the Change mechanism in Sophie should handle changes related with ProObjects and Immutables automatically, the UnmanagedChange is designed to handle other actions like writing to the filesystem, for instance. 
     46 * ''Usage'' 
     47 
     48== History == 
     49  
     50 
     51== ChangeManager == 
     52 * ''DefaultChangeManager'' 
     53 *  
     54 
     55[wiki:PRO_CHANGE_MANAGER_R0] 
     56== UndoManager == 
     57 
     58 * ''Euler traversal'' 
     59 
     60 * ''operations'' 
     61  * ''undo'' 
     62  * ''redo'' 
     63  * ''skip'' 
     64 
     65[wiki:PRO_CHANGE_UNDO_MANAGER_R0]