Changeset 4770
- Timestamp:
- 11/11/10 14:03:24 (14 years ago)
- Location:
- branches/ParameterBinding
- Files:
-
- 2 added
- 2 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ParameterBinding/HeuristicLab.Core/3.3/ParameterizedNamedItem.cs
r4757 r4770 34 34 [Storable] 35 35 private List<IParameterBinding> parameterBindingList; 36 // eventuelly this should be made public and exposed in a view so that the algorithm designer can add bindings in the GUI 37 protected List<IParameterBinding> ParameterBindingList { 36 public List<IParameterBinding> ParameterBindingList { 38 37 get { return parameterBindingList; } 39 38 } … … 105 104 } 106 105 } 106 107 [StorableHook(HookType.AfterDeserialization)] 108 private void AfterDeserialization() { 109 //BackwardsCompatibility3.3 110 #region Remove this code when going to 3.4 111 if (parameterBindingList == null) 112 parameterBindingList = new List<IParameterBinding>(); 113 #endregion 114 } 107 115 } 108 116 } -
branches/ParameterBinding/HeuristicLab.Parameters/3.3/HeuristicLab.Parameters-3.3.csproj
r4758 r4770 111 111 <None Include="HeuristicLabParametersPlugin.cs.frame" /> 112 112 <Compile Include="ConstrainedValueParameter.cs" /> 113 <Compile Include="ParameterSecondLevel ValueBinding.cs" />113 <Compile Include="ParameterSecondLevelNameBinding.cs" /> 114 114 <Compile Include="ParameterValueBinding.cs" /> 115 115 <Compile Include="OptionalConstrainedValueParameter.cs" /> 116 <Compile Include="Parameter ActualNameBinding.cs" />116 <Compile Include="ParameterNameBinding.cs" /> 117 117 <Compile Include="ScopeTreeLookupParameter.cs" /> 118 118 <Compile Include="ValueParameter.cs" /> -
branches/ParameterBinding/HeuristicLab.Parameters/3.3/ParameterValueBinding.cs
r4757 r4770 11 11 public class ParameterValueBinding : IParameterBinding { 12 12 [Storable] 13 private IValueParameter recipient;14 public IValueParameter Recipient {15 get { return recipient; }13 private IValueParameter target; 14 public IValueParameter Target { 15 get { return target; } 16 16 } 17 17 [Storable] 18 private IValueParameter donor;19 public IValueParameter Donor{20 get { return donor; }18 private IValueParameter source; 19 public IValueParameter Source { 20 get { return source; } 21 21 } 22 22 … … 24 24 protected ParameterValueBinding(bool deserializing) { } 25 25 protected ParameterValueBinding(ParameterValueBinding original, Cloner cloner) { 26 this. donor = cloner.Clone(donor);27 this. recipient = cloner.Clone(recipient);26 this.source = cloner.Clone(source); 27 this.target = cloner.Clone(target); 28 28 RegisterEventHandlers(); 29 29 } 30 public ParameterValueBinding(IValueParameter recipient, IValueParameter donor) { 31 if (recipient == null) throw new ArgumentNullException("destination"); 32 if (donor == null) throw new ArgumentNullException("source"); 33 this.recipient = recipient; 34 this.donor = donor; 35 RegisterEventHandlers(); 30 public ParameterValueBinding(IValueParameter target, IValueParameter source) { 31 if (target == null) throw new ArgumentNullException("destination"); 32 if (source == null) throw new ArgumentNullException("source"); 33 this.target = target; 34 this.source = source; 36 35 } 37 36 38 public override IDeepCloneable Clone(Cloner cloner) { 37 public object Clone() { 38 return Clone(new Cloner()); 39 } 40 41 public virtual IDeepCloneable Clone(Cloner cloner) { 39 42 return new ParameterValueBinding(this, cloner); 40 43 } … … 42 45 public void Bind() { 43 46 RegisterEventHandlers(); 47 ExecuteBinding(); 44 48 } 45 49 … … 54 58 55 59 private void RegisterEventHandlers() { 56 donor.ValueChanged += new EventHandler(source_ValueChanged);60 source.ValueChanged += new EventHandler(source_ValueChanged); 57 61 } 58 62 59 63 private void DeregisterEventHandlers() { 60 donor.ValueChanged -= new EventHandler(source_ValueChanged);64 source.ValueChanged -= new EventHandler(source_ValueChanged); 61 65 } 62 63 66 64 67 private void source_ValueChanged(object sender, EventArgs e) { 65 recipient.Value = (IItem)donor.Value.Clone(); 68 ExecuteBinding(); 69 } 70 71 private void ExecuteBinding() { 72 target.Value = (IItem)source.Value.Clone(); 66 73 } 67 74 } -
branches/ParameterBinding/HeuristicLab.Problems.TravelingSalesman/3.3/TravelingSalesmanProblem.cs
r4757 r4770 239 239 ParameterizeAnalyzers(); 240 240 } 241 private void MoveGenerator_InversionMoveParameter_ActualNameChanged(object sender, EventArgs e) { 242 string name = ((ILookupParameter<InversionMove>)sender).ActualName; 243 foreach (IPermutationInversionMoveOperator op in Operators.OfType<IPermutationInversionMoveOperator>()) { 244 op.InversionMoveParameter.ActualName = name; 245 } 246 } 241 247 private void MoveGenerator_TranslocationMoveParameter_ActualNameChanged(object sender, EventArgs e) { 242 248 string name = ((ILookupParameter<TranslocationMove>)sender).ActualName; … … 279 285 } 280 286 private void InitializeMoveGenerators() { 281 foreach (IPermutationInversionMoveOperator moveGen in Operators.OfType<IMoveGenerator>().OfType<IPermutationInversionMoveOperator>()) { 282 foreach (IPermutationInversionMoveOperator moveOp in Operators.Where(x => ! (x is IMoveGenerator)).OfType<IPermutationInversionMoveOperator>()) { 283 ParameterActualNameBinding binding = new ParameterActualNameBinding( 284 moveGen.InversionMoveParameter, 285 moveOp.InversionMoveParameter); 286 ParameterBindingList.Add(binding); 287 binding.Bind(); 287 foreach (IPermutationInversionMoveOperator op in Operators.OfType<IPermutationInversionMoveOperator>()) { 288 if (op is IMoveGenerator) { 289 op.InversionMoveParameter.ActualNameChanged += new EventHandler(MoveGenerator_InversionMoveParameter_ActualNameChanged); 288 290 } 289 291 } 290 foreach (IPermutationTranslocationMoveOperator moveGen in Operators.OfType<IMoveGenerator>().OfType<IPermutationTranslocationMoveOperator>()) { 291 foreach (IPermutationTranslocationMoveOperator moveOp in Operators.Where(x => !(x is IMoveGenerator)).OfType<IPermutationTranslocationMoveOperator>()) { 292 ParameterActualNameBinding binding = new ParameterActualNameBinding( 293 moveGen.TranslocationMoveParameter, 294 moveOp.TranslocationMoveParameter); 295 ParameterBindingList.Add(binding); 296 binding.Bind(); 292 foreach (IPermutationTranslocationMoveOperator op in Operators.OfType<IPermutationTranslocationMoveOperator>()) { 293 if (op is IMoveGenerator) { 294 op.TranslocationMoveParameter.ActualNameChanged += new EventHandler(MoveGenerator_TranslocationMoveParameter_ActualNameChanged); 297 295 } 298 296 } … … 312 310 } 313 311 private void ParameterizeEvaluator() { 314 ParameterSecondLevelActualNameBinding binding = new ParameterSecondLevelActualNameBinding(315 SolutionCreatorParameter, EvaluatorParameter,316 "PermutationParameter", "PermutationParameter"317 );318 ParameterBindingList.Add(binding);319 binding.Bind();320 321 312 if (Evaluator is ITSPPathEvaluator) 322 313 ((ITSPPathEvaluator)Evaluator).PermutationParameter.ActualName = SolutionCreator.PermutationParameter.ActualName; … … 330 321 private void ParameterizeAnalyzers() { 331 322 if (BestTSPSolutionAnalyzer != null) { 323 #region Using First Level Bindings 324 BestTSPSolutionAnalyzer.ParameterBindingList.Add(new ParameterNameBinding( 325 BestTSPSolutionAnalyzer.QualityParameter, 326 Evaluator.QualityParameter 327 )); 328 BestTSPSolutionAnalyzer.ParameterBindingList.Add(new ParameterNameBinding( 329 BestTSPSolutionAnalyzer.CoordinatesParameter, 330 CoordinatesParameter 331 )); 332 BestTSPSolutionAnalyzer.ParameterBindingList.Add(new ParameterNameBinding( 333 BestTSPSolutionAnalyzer.PermutationParameter, 334 SolutionCreator.PermutationParameter 335 )); 336 BestTSPSolutionAnalyzer.ParameterBindingList.Add(new ParameterNameBinding( 337 BestTSPSolutionAnalyzer.BestKnownQualityParameter, 338 BestKnownQualityParameter 339 )); 340 BestTSPSolutionAnalyzer.ParameterBindingList.Add(new ParameterNameBinding( 341 BestTSPSolutionAnalyzer.BestKnownSolutionParameter, 342 BestKnownSolutionParameter 343 )); 344 BestTSPSolutionAnalyzer.ParameterBindingList.Add(new ParameterNameBinding( 345 BestTSPSolutionAnalyzer.MaximizationParameter, 346 MaximizationParameter 347 )); 348 #endregion 349 #region Using Second Level Bindings 350 BestTSPSolutionAnalyzer.ParameterBindingList.Add(new ParameterSecondLevelNameBinding( 351 BestTSPSolutionAnalyzer.QualityParameter, 352 EvaluatorParameter, "QualityParameter" 353 )); 354 BestTSPSolutionAnalyzer.ParameterBindingList.Add(new ParameterSecondLevelNameBinding( 355 BestTSPSolutionAnalyzer.PermutationParameter, 356 SolutionCreatorParameter, "PermutationParameter" 357 )); 358 #endregion 359 #region Old 332 360 BestTSPSolutionAnalyzer.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName; 333 361 BestTSPSolutionAnalyzer.CoordinatesParameter.ActualName = CoordinatesParameter.Name; … … 337 365 BestTSPSolutionAnalyzer.BestKnownSolutionParameter.ActualName = BestKnownSolutionParameter.Name; 338 366 BestTSPSolutionAnalyzer.MaximizationParameter.ActualName = MaximizationParameter.Name; 367 #endregion 339 368 } 340 369
Note: See TracChangeset
for help on using the changeset viewer.