Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/14/10 05:09:59 (14 years ago)
Author:
swagner
Message:

Implemented reviewers' comments (#893).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Parameters/3.3/OptionalValueParameter.cs

    r3317 r3341  
    2121
    2222using System;
     23using System.Drawing;
    2324using HeuristicLab.Common;
    2425using HeuristicLab.Core;
     
    3233  [StorableClass]
    3334  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
    3442    [Storable]
    3543    private T value;
     
    3846      set {
    3947        if (value != this.value) {
    40           if (this.value != null) this.value.ToStringChanged -= new EventHandler(Value_ToStringChanged);
     48          DeregisterValueEvents();
    4149          this.value = value;
    42           if (this.value != null) this.value.ToStringChanged += new EventHandler(Value_ToStringChanged);
     50          RegisterValueEvents();
    4351          OnValueChanged();
    4452        }
     
    8290    [StorableHook(HookType.AfterDeserialization)]
    8391    private void Initialize() {
    84       if (value != null) value.ToStringChanged += new EventHandler(Value_ToStringChanged);
     92      RegisterValueEvents();
    8593    }
    8694
     
    107115      if (ValueChanged != null)
    108116        ValueChanged(this, EventArgs.Empty);
     117      OnItemImageChanged();
    109118      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();
    110135    }
    111136    private void Value_ToStringChanged(object sender, EventArgs e) {
Note: See TracChangeset for help on using the changeset viewer.