- Timestamp:
- 04/14/10 05:09:59 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Parameters/3.3/OptionalValueParameter.cs
r3317 r3341 21 21 22 22 using System; 23 using System.Drawing; 23 24 using HeuristicLab.Common; 24 25 using HeuristicLab.Core; … … 32 33 [StorableClass] 33 34 public class OptionalValueParameter<T> : Parameter, IValueParameter<T> where T : class, IItem { 35 public override Image ItemImage { 36 get { 37 if (value != null) return value.ItemImage; 38 else return base.ItemImage; 39 } 40 } 41 34 42 [Storable] 35 43 private T value; … … 38 46 set { 39 47 if (value != this.value) { 40 if (this.value != null) this.value.ToStringChanged -= new EventHandler(Value_ToStringChanged);48 DeregisterValueEvents(); 41 49 this.value = value; 42 if (this.value != null) this.value.ToStringChanged += new EventHandler(Value_ToStringChanged);50 RegisterValueEvents(); 43 51 OnValueChanged(); 44 52 } … … 82 90 [StorableHook(HookType.AfterDeserialization)] 83 91 private void Initialize() { 84 if (value != null) value.ToStringChanged += new EventHandler(Value_ToStringChanged);92 RegisterValueEvents(); 85 93 } 86 94 … … 107 115 if (ValueChanged != null) 108 116 ValueChanged(this, EventArgs.Empty); 117 OnItemImageChanged(); 109 118 OnToStringChanged(); 119 } 120 121 private void RegisterValueEvents() { 122 if (value != null) { 123 value.ItemImageChanged += new EventHandler(Value_ItemImageChanged); 124 value.ToStringChanged += new EventHandler(Value_ToStringChanged); 125 } 126 } 127 private void DeregisterValueEvents() { 128 if (value != null) { 129 value.ItemImageChanged -= new EventHandler(Value_ItemImageChanged); 130 value.ToStringChanged -= new EventHandler(Value_ToStringChanged); 131 } 132 } 133 private void Value_ItemImageChanged(object sender, EventArgs e) { 134 OnItemImageChanged(); 110 135 } 111 136 private void Value_ToStringChanged(object sender, EventArgs e) {
Note: See TracChangeset
for help on using the changeset viewer.