- Timestamp:
- 06/04/20 18:16:58 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2521_ProblemRefactoring/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/BinaryVectorEncoding.cs
r17567 r17587 22 22 using System; 23 23 using System.Collections.Generic; 24 using System.ComponentModel;25 24 using System.Linq; 26 25 using HEAL.Attic; 27 26 using HeuristicLab.Common; 28 27 using HeuristicLab.Core; 29 using HeuristicLab.Data;30 28 using HeuristicLab.Optimization; 31 using HeuristicLab.Parameters;32 29 using HeuristicLab.PluginInfrastructure; 33 30 … … 35 32 [Item("BinaryVectorEncoding", "Describes a binary vector encoding.")] 36 33 [StorableType("889C5E1A-3FBF-4AB3-AB2E-199A781503B5")] 37 public sealed class BinaryVectorEncoding : Encoding<BinaryVector>, INotifyPropertyChanged { 38 #region Encoding Parameters 39 [Storable] public IValueParameter<IntValue> LengthParameter { get; private set; } 40 #endregion 41 42 public int Length { 43 get { return LengthParameter.Value.Value; } 44 set { 45 if (Length == value) return; 46 LengthParameter.Value = new IntValue(value, @readonly: LengthParameter.Value.ReadOnly); 47 } 48 } 34 public sealed class BinaryVectorEncoding : VectorEncoding<BinaryVector> { 49 35 50 36 [StorableConstructor] … … 53 39 private void AfterDeserialization() { 54 40 DiscoverOperators(); 55 RegisterEventHandlers();56 41 } 57 42 public override IDeepCloneable Clone(Cloner cloner) { return new BinaryVectorEncoding(this, cloner); } 58 private BinaryVectorEncoding(BinaryVectorEncoding original, Cloner cloner) 59 : base(original, cloner) { 60 LengthParameter = cloner.Clone(original.LengthParameter); 61 RegisterEventHandlers(); 62 } 63 43 private BinaryVectorEncoding(BinaryVectorEncoding original, Cloner cloner) : base(original, cloner) { } 64 44 public BinaryVectorEncoding() : this("BinaryVector", 10) { } 65 45 public BinaryVectorEncoding(string name) : this(name, 10) { } 66 46 public BinaryVectorEncoding(int length) : this("BinaryVector", length) { } 67 47 public BinaryVectorEncoding(string name, int length) 68 : base(name) { 69 Parameters.Add(LengthParameter = new ValueParameter<IntValue>(Name + ".Length", new IntValue(length)) { ReadOnly = true }); 70 48 : base(name, length) { 71 49 SolutionCreator = new RandomBinaryVectorCreator(); 50 72 51 DiscoverOperators(); 73 74 RegisterEventHandlers();75 }76 77 private void RegisterEventHandlers() {78 IntValueParameterChangeHandler.Create(LengthParameter, () => OnPropertyChanged(nameof(Length)));79 52 } 80 53 … … 153 126 } 154 127 #endregion 155 156 public event PropertyChangedEventHandler PropertyChanged;157 private void OnPropertyChanged(string property) {158 PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(property));159 }160 128 } 161 129 }
Note: See TracChangeset
for help on using the changeset viewer.