Changes between Version 4 and Version 5 of CORE_CHANGES
- Timestamp:
- 03/17/09 16:58:20 (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CORE_CHANGES
v4 v5 6 6 Based 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]] 7 7 The way to "log" actions in Sophie are the Changes. [[BR]] 8 8 9 For further info on the ProLib see [wiki:PRO_LIB_CORE_TUTORIAL]. 9 10 … … 11 12 * ''Hierarchy'' 12 13 * ''Change'' [[BR]] 13 Change is the base interface for all changes that need to be tracked and respectively undo ed, redoedand 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]] 14 15 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. 15 16 … … 62 63 63 64 == History == 64 65 66 == ChangeManager ==67 * ''DefaultChangeManager''68 *69 70 [wiki:PRO_CHANGE_MANAGER_R0]71 == UndoManager ==72 65 73 66 * ''Euler traversal'' 74 67 75 * ''operations'' 76 * ''undo'' 77 * ''redo'' 78 * ''skip'' 68 Further info at [wiki:PRO_CHANGE_MANAGER_R0] (previously Histories were known as ChangeManagers but were later renamed and thus the naming discrepancies occurred). 79 69 80 [wiki:PRO_CHANGE_UNDO_MANAGER_R0] 70 == ChangeManager == 71 ChangeManager 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]] 72 When 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 == 78 Sophie 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]] 79 The 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 81 Further info at [wiki:PRO_CHANGE_UNDO_MANAGER_R0]. 81 82 82 83 == ProLib Change primitives == 83 84 85 Further info at [wiki:PRO_CHANGE_PRIMITIVES_R0].