- Timestamp:
- 03/31/10 14:26:45 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.ArtificialAnt/3.3/AntTrail.cs
r3238 r3239 48 48 } 49 49 50 private BoolMatrix world; 51 [Storable] 52 public BoolMatrix World { 53 get { return world; } 54 set { 55 if (world != value) { 56 if (world != null) DeregisterWorldEvents(); 57 world = value; 58 if (world != null) RegisterWorldEvents(); 59 OnWorldChanged(); 60 } 61 } 62 } 63 private IntValue maxTimeSteps; 64 [Storable] 65 public IntValue MaxTimeSteps { 66 get { return maxTimeSteps; } 67 set { 68 if (maxTimeSteps != value) { 69 if (maxTimeSteps != value) { 70 if (maxTimeSteps != null) DeregisterMaxTimeStepsEvents(); 71 maxTimeSteps = value; 72 if (maxTimeSteps != null) RegisterMaxTimeStepsEvents(); 73 OnWorldChanged(); 74 } 75 } 76 } 77 } 78 50 79 public AntTrail() : base() { } 51 public AntTrail( SymbolicExpressionTree expression)80 public AntTrail(BoolMatrix world, SymbolicExpressionTree expression, IntValue maxTimeSteps) 52 81 : this() { 82 World = world; 53 83 SymbolicExpressionTree = expression; 84 MaxTimeSteps = maxTimeSteps; 54 85 } 55 86 … … 58 89 cloner.RegisterClonedObject(this, clone); 59 90 clone.expression = (SymbolicExpressionTree)cloner.Clone(expression); 91 clone.world = (BoolMatrix)cloner.Clone(world); 92 clone.maxTimeSteps = (IntValue)cloner.Clone(maxTimeSteps); 60 93 return clone; 61 94 } 62 95 63 //#region Events96 #region Events 64 97 public event EventHandler SymbolicExpressionTreeChanged; 65 98 private void OnSymbolicExpressionTreeChanged() { 66 if (SymbolicExpressionTreeChanged != null) 67 SymbolicExpressionTreeChanged(this, EventArgs.Empty); 99 var changed = SymbolicExpressionTreeChanged; 100 if (changed != null) 101 changed(this, EventArgs.Empty); 102 } 103 public event EventHandler WorldChanged; 104 private void OnWorldChanged() { 105 var changed = WorldChanged; 106 if (changed != null) 107 changed(this, EventArgs.Empty); 108 } 109 public event EventHandler MaxTimeStepsChanged; 110 private void OnMaxTimeStepsChanged() { 111 var changed = MaxTimeStepsChanged; 112 if (changed != null) 113 changed(this, EventArgs.Empty); 68 114 } 69 115 … … 77 123 //} 78 124 79 //private void SymbolicExpressionTree_ItemChanged(object sender, EventArgs<int> e) { 80 // OnSymbolicExpressionTreeChanged(); 81 //} 82 //private void SymbolicExpressionTree_Reset(object sender, EventArgs e) { 83 // OnSymbolicExpressionTreeChanged(); 84 //} 85 //#endregion 125 private void RegisterWorldEvents() { 126 World.ItemChanged += new EventHandler<EventArgs<int, int>>(World_ItemChanged); 127 World.Reset += new EventHandler(World_Reset); 128 } 129 private void DeregisterWorldEvents() { 130 World.ItemChanged -= new EventHandler<EventArgs<int, int>>(World_ItemChanged); 131 World.Reset -= new EventHandler(World_Reset); 132 } 133 private void RegisterMaxTimeStepsEvents() { 134 MaxTimeSteps.ValueChanged += new EventHandler(MaxTimeSteps_ValueChanged); 135 } 136 private void DeregisterMaxTimeStepsEvents() { 137 MaxTimeSteps.ValueChanged -= new EventHandler(MaxTimeSteps_ValueChanged); 138 } 139 140 void MaxTimeSteps_ValueChanged(object sender, EventArgs e) { 141 OnMaxTimeStepsChanged(); 142 } 143 private void World_ItemChanged(object sender, EventArgs<int, int> e) { 144 OnWorldChanged(); 145 } 146 private void World_Reset(object sender, EventArgs e) { 147 OnWorldChanged(); 148 } 149 #endregion 86 150 } 87 151 }
Note: See TracChangeset
for help on using the changeset viewer.