Changes between Version 4 and Version 5 of CORE_CHANGES


Ignore:
Timestamp:
03/17/09 16:58:20 (16 years ago)
Author:
gogov
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CORE_CHANGES

    v4 v5  
    66Based on this information and automatic undo/redo logic can be implemented at this core ProLib layer, thus providing automatic undo/redo logic for the whole Sophie platform. [[BR]] 
    77The way to "log" actions in Sophie are the Changes. [[BR]] 
     8 
    89For further info  on the ProLib see [wiki:PRO_LIB_CORE_TUTORIAL]. 
    910 
     
    1112 * ''Hierarchy'' 
    1213  * ''Change'' [[BR]] 
    13    Change is the base interface for all changes that need to be tracked and respectively undoed, redoed and skipped in Sophie. [[BR]] 
     14   Change is the base interface for all changes that need to be tracked and respectively undone, redone and skipped in Sophie. [[BR]] 
    1415   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.  
    1516 
     
    6263 
    6364== History == 
    64   
    65  
    66 == ChangeManager == 
    67  * ''DefaultChangeManager'' 
    68  *  
    69  
    70 [wiki:PRO_CHANGE_MANAGER_R0] 
    71 == UndoManager == 
    7265 
    7366 * ''Euler traversal'' 
    7467 
    75  * ''operations'' 
    76   * ''undo'' 
    77   * ''redo'' 
    78   * ''skip'' 
     68Further info at [wiki:PRO_CHANGE_MANAGER_R0] (previously Histories were known as ChangeManagers but were later renamed and thus the naming discrepancies occurred). 
    7969 
    80 [wiki:PRO_CHANGE_UNDO_MANAGER_R0] 
     70== ChangeManager == 
     71ChangeManager is an interface which everyone interested in custom handling of fired Changes should implement. For instance, all Resources are ChangeManagers. Since each Resource is associated one-to-one with a History, kept in its ResourceSpace, the Resource is able to apply logging in its History or don't do anything if it doesn't need logging. [[BR]] 
     72When a Change is fired, there is a ChangeManager which is responsible for the Change, and it handles it. [[BR]] A ChangeManager is responsible for grouping incoming Changes into GroupChanges and also provides the possibility of overriding the registering of each fired Change to allow custom handling. 
     73 
     74 * ''DefaultChangeManager'' [[BR]] 
     75  This is a sample implementation of the ChangeManager interface, which simply executes the incoming Change without logging it or doing any other handling. 
     76 
     77== UndoManager == 
     78Sophie should provide an UndoManager to the user and with its help he or she will be able to undo, redo or skip a given top-level change of the current Resource. [[BR]] 
     79The UndoManager is a singleton instance of an entity which performs undo/redo/skip logic on the current Resource. It provides to the end-user of Sophie a view on the History of the current Resource and allows him to undo/redo the last Change there or skip any of the top-level Changes of which this History is consisted. [[BR]] 
     80  
     81Further info at [wiki:PRO_CHANGE_UNDO_MANAGER_R0]. 
    8182 
    8283== ProLib Change primitives == 
    8384 
     85Further info at [wiki:PRO_CHANGE_PRIMITIVES_R0].