Changeset 2986 for trunk/sources/HeuristicLab.Problems.TSP/3.3
- Timestamp:
- 03/10/10 03:37:36 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.TSP/3.3/TSP.cs
r2975 r2986 36 36 [Item("TSP", "Represents a symmetric Traveling Salesman Problem.")] 37 37 [Creatable("Problems")] 38 [EmptyStorableClass] 38 39 public sealed class TSP : ParameterizedNamedItem, ISingleObjectiveProblem { 39 40 public override Image ItemImage { … … 94 95 set { BestKnownQualityParameter.Value = value; } 95 96 } 96 private OperatorSetoperators;97 private List<IPermutationOperator> operators; 97 98 public IEnumerable<IOperator> Operators { 98 get { 99 if (operators == null) InitializeOperators(); 100 return operators; 101 } 102 } 103 #endregion 104 105 #region Persistence Properties 106 [Storable] 107 private object RestoreEvents { 108 get { return null; } 109 set { RegisterEvents(); } 99 get { return operators.Cast<IOperator>(); } 110 100 } 111 101 #endregion … … 127 117 ParameterizeEvaluator(); 128 118 129 RegisterEvents(); 130 } 119 Initialize(); 120 } 121 [StorableConstructor] 122 private TSP(bool deserializing) : base() { } 131 123 132 124 public override IDeepCloneable Clone(Cloner cloner) { 133 125 TSP clone = (TSP)base.Clone(cloner); 134 clone. RegisterEvents();126 clone.Initialize(); 135 127 return clone; 136 128 } … … 187 179 188 180 #region Helpers 189 private void RegisterEvents() { 181 [StorableHook(HookType.AfterDeserialization)] 182 private void Initialize() { 183 InitializeOperators(); 190 184 CoordinatesParameter.ValueChanged += new EventHandler(CoordinatesParameter_ValueChanged); 191 185 Coordinates.ItemChanged += new EventHandler<EventArgs<int, int>>(Coordinates_ItemChanged); … … 205 199 } 206 200 private void InitializeOperators() { 207 operators = new OperatorSet();201 operators = new List<IPermutationOperator>(); 208 202 if (ApplicationManager.Manager != null) { 209 foreach (IPermutationOperator op in ApplicationManager.Manager.GetInstances<IPermutationOperator>()) 210 operators.Add(op); 203 operators.AddRange(ApplicationManager.Manager.GetInstances<IPermutationOperator>()); 211 204 ParameterizeOperators(); 212 205 }
Note: See TracChangeset
for help on using the changeset viewer.