Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/31/10 14:26:45 (14 years ago)
Author:
gkronber
Message:

Extracted view for artificial ant problem into a separate plugin/project. #952 (Artificial Ant Problem for 3.3)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.ArtificialAnt/3.3/AntTrail.cs

    r3238 r3239  
    4848    }
    4949
     50    private BoolMatrix world;
     51    [Storable]
     52    public BoolMatrix World {
     53      get { return world; }
     54      set {
     55        if (world != value) {
     56          if (world != null) DeregisterWorldEvents();
     57          world = value;
     58          if (world != null) RegisterWorldEvents();
     59          OnWorldChanged();
     60        }
     61      }
     62    }
     63    private IntValue maxTimeSteps;
     64    [Storable]
     65    public IntValue MaxTimeSteps {
     66      get { return maxTimeSteps; }
     67      set {
     68        if (maxTimeSteps != value) {
     69          if (maxTimeSteps != value) {
     70            if (maxTimeSteps != null) DeregisterMaxTimeStepsEvents();
     71            maxTimeSteps = value;
     72            if (maxTimeSteps != null) RegisterMaxTimeStepsEvents();
     73            OnWorldChanged();
     74          }
     75        }
     76      }
     77    }
     78
    5079    public AntTrail() : base() { }
    51     public AntTrail(SymbolicExpressionTree expression)
     80    public AntTrail(BoolMatrix world, SymbolicExpressionTree expression, IntValue maxTimeSteps)
    5281      : this() {
     82      World = world;
    5383      SymbolicExpressionTree = expression;
     84      MaxTimeSteps = maxTimeSteps;
    5485    }
    5586
     
    5889      cloner.RegisterClonedObject(this, clone);
    5990      clone.expression = (SymbolicExpressionTree)cloner.Clone(expression);
     91      clone.world = (BoolMatrix)cloner.Clone(world);
     92      clone.maxTimeSteps = (IntValue)cloner.Clone(maxTimeSteps);
    6093      return clone;
    6194    }
    6295
    63     //#region Events
     96    #region Events
    6497    public event EventHandler SymbolicExpressionTreeChanged;
    6598    private void OnSymbolicExpressionTreeChanged() {
    66       if (SymbolicExpressionTreeChanged != null)
    67         SymbolicExpressionTreeChanged(this, EventArgs.Empty);
     99      var changed = SymbolicExpressionTreeChanged;
     100      if (changed != null)
     101        changed(this, EventArgs.Empty);
     102    }
     103    public event EventHandler WorldChanged;
     104    private void OnWorldChanged() {
     105      var changed = WorldChanged;
     106      if (changed != null)
     107        changed(this, EventArgs.Empty);
     108    }
     109    public event EventHandler MaxTimeStepsChanged;
     110    private void OnMaxTimeStepsChanged() {
     111      var changed = MaxTimeStepsChanged;
     112      if (changed != null)
     113        changed(this, EventArgs.Empty);
    68114    }
    69115
     
    77123    //}
    78124
    79     //private void SymbolicExpressionTree_ItemChanged(object sender, EventArgs<int> e) {
    80     //  OnSymbolicExpressionTreeChanged();
    81     //}
    82     //private void SymbolicExpressionTree_Reset(object sender, EventArgs e) {
    83     //  OnSymbolicExpressionTreeChanged();
    84     //}
    85     //#endregion
     125    private void RegisterWorldEvents() {
     126      World.ItemChanged += new EventHandler<EventArgs<int, int>>(World_ItemChanged);
     127      World.Reset += new EventHandler(World_Reset);
     128    }
     129    private void DeregisterWorldEvents() {
     130      World.ItemChanged -= new EventHandler<EventArgs<int, int>>(World_ItemChanged);
     131      World.Reset -= new EventHandler(World_Reset);
     132    }
     133    private void RegisterMaxTimeStepsEvents() {
     134      MaxTimeSteps.ValueChanged += new EventHandler(MaxTimeSteps_ValueChanged);
     135    }
     136    private void DeregisterMaxTimeStepsEvents() {
     137      MaxTimeSteps.ValueChanged -= new EventHandler(MaxTimeSteps_ValueChanged);
     138    }
     139
     140    void MaxTimeSteps_ValueChanged(object sender, EventArgs e) {
     141      OnMaxTimeStepsChanged();
     142    }
     143    private void World_ItemChanged(object sender, EventArgs<int, int> e) {
     144      OnWorldChanged();
     145    }
     146    private void World_Reset(object sender, EventArgs e) {
     147      OnWorldChanged();
     148    }
     149    #endregion
    86150  }
    87151}
Note: See TracChangeset for help on using the changeset viewer.