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.Optimization/3.3/Result.cs

    r3317 r3341  
    2121
    2222using System;
     23using System.Drawing;
    2324using HeuristicLab.Common;
    2425using HeuristicLab.Core;
     
    3233  [StorableClass]
    3334  public sealed class Result : NamedItem, IResult {
     35    public override Image ItemImage {
     36      get {
     37        if (value != null) return value.ItemImage;
     38        else return base.ItemImage;
     39      }
     40    }
     41
    3442    public override bool CanChangeName {
    3543      get { return false; }
     
    5765            );
    5866
    59           if (this.value != null) this.value.ToStringChanged -= new EventHandler(Value_ToStringChanged);
     67          DeregisterValueEvents();
    6068          this.value = value;
    61           if (this.value != null) this.value.ToStringChanged += new EventHandler(Value_ToStringChanged);
     69          RegisterValueEvents();
    6270          OnValueChanged();
    6371        }
     
    97105    [StorableHook(HookType.AfterDeserialization)]
    98106    private void Initialize() {
    99       if (value != null) value.ToStringChanged += new EventHandler(Value_ToStringChanged);
     107      RegisterValueEvents();
    100108    }
    101109
     
    117125      if (ValueChanged != null)
    118126        ValueChanged(this, EventArgs.Empty);
     127      OnItemImageChanged();
    119128      OnToStringChanged();
    120129    }
    121130
     131    private void RegisterValueEvents() {
     132      if (value != null) {
     133        value.ItemImageChanged += new EventHandler(Value_ItemImageChanged);
     134        value.ToStringChanged += new EventHandler(Value_ToStringChanged);
     135      }
     136    }
     137    private void DeregisterValueEvents() {
     138      if (value != null) {
     139        value.ItemImageChanged -= new EventHandler(Value_ItemImageChanged);
     140        value.ToStringChanged -= new EventHandler(Value_ToStringChanged);
     141      }
     142    }
     143    private void Value_ItemImageChanged(object sender, EventArgs e) {
     144      OnItemImageChanged();
     145    }
    122146    private void Value_ToStringChanged(object sender, EventArgs e) {
    123147      OnToStringChanged();
Note: See TracChangeset for help on using the changeset viewer.