Changeset 2852 for trunk/sources/HeuristicLab.Optimization/3.3/Algorithm.cs
- Timestamp:
- 02/23/10 06:50:50 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Optimization/3.3/Algorithm.cs
r2851 r2852 36 36 } 37 37 38 public virtual Type ProblemType { 39 get { return typeof(IProblem); } 40 } 41 38 42 private IProblem problem; 39 43 [Storable] … … 42 46 set { 43 47 if (problem != value) { 44 if (problem != null) problem.Changed -= new ChangedEventHandler(Problem_Changed); 48 if ((value != null) && !ProblemType.IsInstanceOfType(value)) throw new ArgumentException("Invalid problem type."); 49 if (problem != null) DeregisterProblemEvents(); 45 50 problem = value; 46 if (problem != null) problem.Changed += new ChangedEventHandler(Problem_Changed);51 if (problem != null) RegisterProblemEvents(); 47 52 OnProblemChanged(); 48 53 } … … 135 140 ExceptionOccurred(this, new EventArgs<Exception>(exception)); 136 141 } 142 protected virtual void DeregisterProblemEvents() { 143 problem.SolutionCreatorChanged -= new EventHandler(Problem_SolutionCreatorChanged); 144 problem.EvaluatorChanged -= new EventHandler(Problem_EvaluatorChanged); 145 problem.Changed -= new ChangedEventHandler(Problem_Changed); 146 } 147 protected virtual void RegisterProblemEvents() { 148 problem.SolutionCreatorChanged += new EventHandler(Problem_SolutionCreatorChanged); 149 problem.EvaluatorChanged += new EventHandler(Problem_EvaluatorChanged); 150 problem.Changed += new ChangedEventHandler(Problem_Changed); 151 } 152 153 protected virtual void Problem_SolutionCreatorChanged(object sender, EventArgs e) { } 154 protected virtual void Problem_EvaluatorChanged(object sender, EventArgs e) { } 137 155 private void Problem_Changed(object sender, ChangedEventArgs e) { 138 156 OnChanged(e);
Note: See TracChangeset
for help on using the changeset viewer.