OSDN Git Service

#32713 初コミット。SVNrev567時点での、ファイルはbranch/140707(ReBuild XGVersion)から移行したもの。
[dtxmaniaxg-verk/dtxmaniaxg-verk-git.git] / DTXCreatorプロジェクト / コード / 01.UndoRedo / CUndoRedoセル.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4
5 namespace DTXCreator.UndoRedo
6 {
7         internal class CUndoRedoセル<T> : CUndoRedoセル仮想
8         {
9                 public T 変更後の値;
10                 public T 変更前の値;
11
12                 // Methods
13                 public CUndoRedoセル( object 所有者objectID, DGUndoを実行する<T> undoメソッド, DGRedoを実行する<T> redoメソッド, T 変更前の値, T 変更後の値 )
14                 {
15                         base.所有者ID = 所有者objectID;
16                         this.undoデリゲート = undoメソッド;
17                         this.redoデリゲート = redoメソッド;
18                         this.変更前の値 = 変更前の値;
19                         this.変更後の値 = 変更後の値;
20                 }
21                 public override void tRedoを実行する()
22                 {
23                         if( this.redoデリゲート == null )
24                         {
25                                 throw new Exception( "Redoデリゲートが未設定です。" );
26                         }
27                         base.所有者ID = null;
28                         this.redoデリゲート( this.変更前の値, this.変更後の値 );
29                 }
30                 public override void tUndoを実行する()
31                 {
32                         if( this.undoデリゲート == null )
33                         {
34                                 throw new Exception( "Undoデリゲートが未設定です。" );
35                         }
36                         base.所有者ID = null;
37                         this.undoデリゲート( this.変更前の値, this.変更後の値 );
38                 }
39
40                 #region [ private ]
41                 //-----------------
42                 private DGRedoを実行する<T> redoデリゲート;
43                 private DGUndoを実行する<T> undoデリゲート;
44                 //-----------------
45                 #endregion
46
47         }
48 }