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.Core/3.3/Variable.cs

    r3317 r3341  
    2121
    2222using System;
     23using System.Drawing;
    2324using HeuristicLab.Common;
    2425using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     
    3132  [StorableClass]
    3233  public sealed class Variable : NamedItem, IVariable {
     34    public override Image ItemImage {
     35      get {
     36        if (value != null) return value.ItemImage;
     37        else return base.ItemImage;
     38      }
     39    }
     40
    3341    [Storable]
    3442    private IItem value;
     
    3947      set {
    4048        if (this.value != value) {
    41           if (this.value != null) this.value.ToStringChanged -= new EventHandler(Value_ToStringChanged);
     49          DeregisterValueEvents();
    4250          this.value = value;
    43           if (this.value != null) this.value.ToStringChanged += new EventHandler(Value_ToStringChanged);
     51          RegisterValueEvents();
    4452          OnValueChanged();
    4553        }
     
    8492    [StorableHook(HookType.AfterDeserialization)]
    8593    private void Initialize() {
    86       if (value != null) value.ToStringChanged += new EventHandler(Value_ToStringChanged);
     94      RegisterValueEvents();
    8795    }
    8896
     
    120128      if (ValueChanged != null)
    121129        ValueChanged(this, EventArgs.Empty);
     130      OnItemImageChanged();
    122131      OnToStringChanged();
    123132    }
    124133
     134    private void RegisterValueEvents() {
     135      if (value != null) {
     136        value.ItemImageChanged += new EventHandler(Value_ItemImageChanged);
     137        value.ToStringChanged += new EventHandler(Value_ToStringChanged);
     138      }
     139    }
     140    private void DeregisterValueEvents() {
     141      if (value != null) {
     142        value.ItemImageChanged -= new EventHandler(Value_ItemImageChanged);
     143        value.ToStringChanged -= new EventHandler(Value_ToStringChanged);
     144      }
     145    }
     146    private void Value_ItemImageChanged(object sender, EventArgs e) {
     147      OnItemImageChanged();
     148    }
    125149    private void Value_ToStringChanged(object sender, EventArgs e) {
    126150      OnToStringChanged();
Note: See TracChangeset for help on using the changeset viewer.