Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/12/19 07:48:00 (5 years ago)
Author:
chaider
Message:

#2971

  • Added Expression change event
  • Added errorProvider Validation
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis.Views/3.4/ParsedConstraintView.cs

    r16774 r16776  
    99  [Content(typeof(ParsedConstraint), true)]
    1010  public partial class ParsedConstraintView : AsynchronousContentView {
    11 
     11    private CheckedItemList<IntervalConstraint> intervalConstraints;
    1212    public new ParsedConstraint Content {
    1313      get => (ParsedConstraint)base.Content;
     
    1818      InitializeComponent();
    1919      errorOutput.Text = "";
     20      intervalConstraints = new CheckedItemList<IntervalConstraint>();
     21    }
     22
     23    private void Content_Changed(object sender, EventArgs e) {
     24      constraintsOutput.Content = intervalConstraints;
    2025    }
    2126
    2227    protected override void OnContentChanged() {
    2328      base.OnContentChanged();
    24       if (Content == null) {
    25         constraintsInput.Text = string.Empty;
    26         errorOutput.Text = "";
    27       } else {
    28         constraintsInput.Text = Content.Input;
    29         constraintsOutput.Content = new ItemList<IntervalConstraint>(Content.Constraints) ?? new ItemList<IntervalConstraint>();
    30       }
     29      UpdateControl();
    3130    }
    3231
    33     private ItemList<IntervalConstraint> ParseConstraints(string input) {
    34       ItemList<IntervalConstraint> constraints = new ItemList<IntervalConstraint>(IntervalConstraintsParser.ParseInput(input, Content.ProblemData.TargetVariable, Content.ProblemData.AllowedInputVariables));
     32    private CheckedItemList<IntervalConstraint> ParseConstraints(string input) {
     33      CheckedItemList<IntervalConstraint> constraints = new CheckedItemList<IntervalConstraint>(IntervalConstraintsParser.ParseInput(input, Content.ProblemData.TargetVariable, Content.ProblemData.AllowedInputVariables));
    3534      return constraints;
    3635    }
     
    4847    }
    4948
     49    private void UpdateControl() {
     50      if (Content == null) {
     51        ClearConstraints();
     52        constraintsInput.Text = string.Empty;
     53        errorOutput.Text = string.Empty;
     54        constraintsOutput.Content = intervalConstraints;
     55      } else {
     56        constraintsInput.Text = Content.Input;
     57        foreach (var constraint in Content.Constraints) {
     58          constraint.Changed += new EventHandler(Content_Changed);
     59          intervalConstraints.Add(constraint, true);
     60        }
     61      }
     62    }
     63
    5064    private void constraintsInput_TextChanged(object sender, EventArgs e) {
    5165      errorOutput.Text = "Unparsed changes! Press parse button to save changes.";
    5266    }
     67
     68    private void ClearConstraints() {
     69      foreach (var constraint in intervalConstraints) {
     70        constraint.Changed -= new EventHandler(Content_Changed);
     71      }
     72      intervalConstraints.Clear();
     73    }
     74
    5375  }
    5476}
Note: See TracChangeset for help on using the changeset viewer.