Changeset 5809 for trunk/sources/HeuristicLab.Optimization/3.3/Problem.cs
- Timestamp:
- 03/23/11 01:09:38 (13 years ago)
- Location:
- trunk/sources
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources
- Property svn:mergeinfo changed
-
trunk/sources/HeuristicLab.Optimization/3.3
- Property svn:ignore
-
old new 3 3 obj 4 4 *.user 5 *.vs10x
-
- Property svn:ignore
-
trunk/sources/HeuristicLab.Optimization/3.3/Problem.cs
r5445 r5809 26 26 using HeuristicLab.Common; 27 27 using HeuristicLab.Core; 28 using HeuristicLab.Parameters;29 28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 30 29 … … 32 31 [Item("Problem", "Represents the base class for a problem.")] 33 32 [StorableClass] 34 public abstract class Problem<T, U> : ParameterizedNamedItem, IProblem 35 where T : class,IEvaluator 36 where U : class,ISolutionCreator { 37 private const string EvaluatorParameterName = "Evaluator"; 38 private const string SolutionCreateParameterName = "SolutionCreator"; 39 33 public abstract class Problem : ParameterizedNamedItem, IProblem { 40 34 public override Image ItemImage { 41 35 get { return HeuristicLab.Common.Resources.VSImageLibrary.Type; } … … 44 38 [StorableConstructor] 45 39 protected Problem(bool deserializing) : base(deserializing) { } 46 protected Problem(Problem <T, U>original, Cloner cloner)40 protected Problem(Problem original, Cloner cloner) 47 41 : base(original, cloner) { 48 42 operators = cloner.Clone(original.operators); … … 53 47 : base() { 54 48 operators = new OperatorCollection(); 55 Parameters.Add(new ValueParameter<T>(EvaluatorParameterName, "The operator used to evaluate a solution."));56 Parameters.Add(new ValueParameter<U>(SolutionCreateParameterName, "The operator to create a solution."));57 49 RegisterEventHandlers(); 58 50 } … … 67 59 Operators.ItemsRemoved += new CollectionItemsChangedEventHandler<IOperator>(Operators_Changed); 68 60 Operators.CollectionReset += new CollectionItemsChangedEventHandler<IOperator>(Operators_Changed); 69 70 EvaluatorParameter.ValueChanged += new EventHandler(EvaluatorParameter_ValueChanged);71 SolutionCreatorParameter.ValueChanged += new EventHandler(SolutionCreatorParameter_ValueChanged);72 61 } 73 62 … … 83 72 } 84 73 IEnumerable<IOperator> IProblem.Operators { get { return operators; } } 85 86 public T Evaluator {87 get { return EvaluatorParameter.Value; }88 protected set { EvaluatorParameter.Value = value; }89 }90 public ValueParameter<T> EvaluatorParameter {91 get { return (ValueParameter<T>)Parameters[EvaluatorParameterName]; }92 }93 IEvaluator IProblem.Evaluator { get { return Evaluator; } }94 IParameter IProblem.EvaluatorParameter { get { return EvaluatorParameter; } }95 96 public U SolutionCreator {97 get { return SolutionCreatorParameter.Value; }98 protected set { SolutionCreatorParameter.Value = value; }99 }100 public ValueParameter<U> SolutionCreatorParameter {101 get { return (ValueParameter<U>)Parameters[SolutionCreateParameterName]; }102 }103 ISolutionCreator IProblem.SolutionCreator { get { return SolutionCreator; } }104 IParameter IProblem.SolutionCreatorParameter { get { return SolutionCreatorParameter; } }105 74 #endregion 106 75 107 76 #region events 108 private void EvaluatorParameter_ValueChanged(object sender, EventArgs e) {109 OnEvaluatorChanged();110 }111 public event EventHandler EvaluatorChanged;112 protected virtual void OnEvaluatorChanged() {113 EventHandler handler = EvaluatorChanged;114 if (handler != null)115 handler(this, EventArgs.Empty);116 }117 118 private void SolutionCreatorParameter_ValueChanged(object sender, EventArgs e) {119 OnSolutionCreatorChanged();120 }121 public event EventHandler SolutionCreatorChanged;122 protected virtual void OnSolutionCreatorChanged() {123 EventHandler handler = SolutionCreatorChanged;124 if (handler != null)125 handler(this, EventArgs.Empty);126 }127 128 77 private void Operators_Changed(object sender, EventArgs e) { 129 78 OnOperatorsChanged();
Note: See TracChangeset
for help on using the changeset viewer.