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/ValueLookupParameter.cs

    r3317 r3341  
    2121
    2222using System;
     23using System.Drawing;
    2324using HeuristicLab.Common;
    2425using HeuristicLab.Core;
     
    3233  [StorableClass]
    3334  public class ValueLookupParameter<T> : LookupParameter<T>, IValueLookupParameter<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        }
     
    8593    [StorableHook(HookType.AfterDeserialization)]
    8694    private void Initialize() {
    87       if (value != null) value.ToStringChanged += new EventHandler(Value_ToStringChanged);
     95      RegisterValueEvents();
    8896    }
    8997
     
    103111      if (ValueChanged != null)
    104112        ValueChanged(this, EventArgs.Empty);
     113      OnItemImageChanged();
    105114      OnToStringChanged();
     115    }
     116
     117    private void RegisterValueEvents() {
     118      if (value != null) {
     119        value.ItemImageChanged += new EventHandler(Value_ItemImageChanged);
     120        value.ToStringChanged += new EventHandler(Value_ToStringChanged);
     121      }
     122    }
     123    private void DeregisterValueEvents() {
     124      if (value != null) {
     125        value.ItemImageChanged -= new EventHandler(Value_ItemImageChanged);
     126        value.ToStringChanged -= new EventHandler(Value_ToStringChanged);
     127      }
     128    }
     129    private void Value_ItemImageChanged(object sender, EventArgs e) {
     130      OnItemImageChanged();
    106131    }
    107132    private void Value_ToStringChanged(object sender, EventArgs e) {
Note: See TracChangeset for help on using the changeset viewer.