Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/13/15 15:00:15 (9 years ago)
Author:
abeham
Message:

#2174, #2282: merged revisions r11961,r11963,r11967,r11970,r11971,r11982,r11984,r11998,r12001,r12002,r12003,r12004,r11939,r11945,r11956,r11958,r11959,r11960,r11983,r11987,r11988,r11990,r11993,r11994,r11996,r11999,r12000 to stable

Location:
stable
Files:
3 edited
1 copied

Legend:

Unmodified
Added
Removed
  • stable

  • stable/HeuristicLab.Optimization

  • stable/HeuristicLab.Optimization/3.3/BasicProblems/BasicProblem.cs

    r11949 r12005  
    6767      Parameters.Add(new ValueParameter<TEncoding>("Encoding", "Describes the configuration of the encoding, what the variables are called, what type they are and their bounds if any."));
    6868      oldEncoding = Encoding;
     69      if(Encoding != null) Parameterize();
    6970      RegisterEvents();
    7071    }
     
    8687    private void RegisterEvents() {
    8788      EncodingParameter.ValueChanged += (o, e) => OnEncodingChanged();
     89      var multiEncoding = Encoding as MultiEncoding;
     90      if (multiEncoding != null) multiEncoding.EncodingsChanged += MultiEncodingOnEncodingsChanged;
    8891    }
    8992
    9093    protected virtual void OnEncodingChanged() {
    91       if (oldEncoding != null) AdaptEncodingOperators(oldEncoding, Encoding);
     94      Parameterize();
     95
     96      OnOperatorsChanged();
     97      OnReset();
     98    }
     99
     100    private void Parameterize() {
     101      if (oldEncoding != null) {
     102        AdaptEncodingOperators(oldEncoding, Encoding);
     103        var oldMultiEncoding = oldEncoding as MultiEncoding;
     104        if (oldMultiEncoding != null)
     105          oldMultiEncoding.EncodingsChanged -= MultiEncodingOnEncodingsChanged;
     106      }
    92107      oldEncoding = Encoding;
    93108
     
    101116      Parameters.Remove(SolutionCreatorParameter);
    102117      Parameters.Add(solutionCreatorParam);
     118      ((IValueParameter)solutionCreatorParam).ValueChanged += SolutionCreatorParameter_ValueChanged;
    103119
    104       //TODO register solution creator changed event, change access modifier to private
    105       //((IValueParameter)solutionCreatorParam).ValueChanged += SolutionCreatorParameter_ValueChanged;     
    106 
    107       OnOperatorsChanged();
    108       OnReset();
     120      var multiEncoding = Encoding as MultiEncoding;
     121      if (multiEncoding != null) multiEncoding.EncodingsChanged += MultiEncodingOnEncodingsChanged;
    109122    }
    110123
     
    141154    }
    142155
     156    protected virtual void MultiEncodingOnEncodingsChanged(object sender, EventArgs e) {
     157      OnOperatorsChanged();
     158    }
    143159  }
    144160}
Note: See TracChangeset for help on using the changeset viewer.