Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/30/14 14:59:20 (10 years ago)
Author:
pfleck
Message:

#2208 improved visualization of orienteering solution

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Orienteering/3.3/OrienteeringSolution.cs

    r11190 r11240  
    4242    }
    4343    [Storable]
     44    private DoubleArray scores;
     45    public DoubleArray Scores {
     46      get { return scores; }
     47      set {
     48        if (scores != value) {
     49          if (scores != null) DeregisterScoresEvents();
     50          scores = value;
     51          if (scores != null) RegisterScoresEvents();
     52          OnScoresChanged();
     53        }
     54      }
     55    }
     56    [Storable]
    4457    private DoubleValue quality;
    4558    public DoubleValue Quality {
     
    6477      Initialize();
    6578    }
    66     public OrienteeringSolution(IntegerVector integerVector, DoubleMatrix coordinates, DoubleValue quality)
     79    public OrienteeringSolution(IntegerVector integerVector, DoubleMatrix coordinates, DoubleArray scores, DoubleValue quality)
    6780      : base() {
    6881      this.integerVector = integerVector;
    6982      this.coordinates = coordinates;
     83      this.scores = scores;
    7084      this.quality = quality;
    7185      Initialize();
     
    8498      if (integerVector != null) RegisterIntegerVectorEvents();
    8599      if (coordinates != null) RegisterCoordinatesEvents();
     100      if (scores != null) RegisterScoresEvents();
    86101      if (quality != null) RegisterQualityEvents();
    87102    }
     
    102117    }
    103118
     119    public event EventHandler ScoresChanged;
     120    private void OnScoresChanged() {
     121      var changed = ScoresChanged;
     122      if (changed != null)
     123        changed(this, EventArgs.Empty);
     124    }
    104125
    105126    public event EventHandler QualityChanged;
     
    126147      Coordinates.Reset -= new EventHandler(Coordinates_Reset);
    127148    }
     149    private void RegisterScoresEvents() {
     150      Scores.ItemChanged += new EventHandler<EventArgs<int>>(Scores_ItemChanged);
     151      Scores.Reset += new EventHandler(Scores_Reset);
     152    }
     153    private void DeregisterScoresEvents() {
     154      Scores.ItemChanged -= new EventHandler<EventArgs<int>>(Scores_ItemChanged);
     155      Scores.Reset -= new EventHandler(Scores_Reset);
     156    }
    128157    private void RegisterQualityEvents() {
    129158      Quality.ValueChanged += new EventHandler(Quality_ValueChanged);
     
    145174      OnCoordinatesChanged();
    146175    }
     176    private void Scores_ItemChanged(object sender, EventArgs<int> e) {
     177      OnCoordinatesChanged();
     178    }
     179    private void Scores_Reset(object sender, EventArgs e) {
     180      OnCoordinatesChanged();
     181    }
    147182    private void Quality_ValueChanged(object sender, EventArgs e) {
    148183      OnQualityChanged();
Note: See TracChangeset for help on using the changeset viewer.