Free cookie consent management tool by TermsFeed Policy Generator

source: branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis.Views/3.4/ParsedConstraintView.cs @ 16756

Last change on this file since 16756 was 16756, checked in by chaider, 5 years ago

#2971 Changed Interval Constraints View
-Added View for successfully parsed Constraints
-Save Constraints as IntervalConstraints

File size: 2.1 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.ComponentModel;
4using System.Drawing;
5using System.Data;
6using System.Linq;
7using System.Text;
8using System.Threading.Tasks;
9using System.Windows.Forms;
10using HeuristicLab.MainForm;
11using HeuristicLab.MainForm.WindowsForms;
12
13namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
14  [View("ParsedConstraint View")]
15  [Content(typeof(ParsedConstraint), true)]
16  public partial class ParsedConstraintView : AsynchronousContentView {
17
18    public new ParsedConstraint Content {
19      get => (ParsedConstraint)base.Content;
20      set => base.Content = value;
21    }
22    public ParsedConstraintView() {
23      InitializeComponent();
24      constraintsOutput.ReadOnly = true;
25    }
26
27    protected override void OnContentChanged() {
28      base.OnContentChanged();
29      if (Content == null) {
30        constraintsInput.Text = string.Empty;
31        constraintsOutput.Text = string.Empty;
32      } else {
33        constraintsInput.Text = Content.Input;
34        constraintsOutput.Text = ConstraintsOutput(Content.Constraints ?? new List<IntervalConstraint>());
35      }
36    }
37
38    private IEnumerable<IntervalConstraint> ParseConstraints(string input) {
39      var parsedIntervals = IntervalConstraintsParser.Parse(input);
40      return parsedIntervals;
41    }
42
43    private string ConstraintsOutput(IEnumerable<IntervalConstraint> constraints) {
44      var result = "";
45      var count = 1;
46      foreach (var constraint in constraints) {
47        result += "Constraint #" + count + ": " + Environment.NewLine;
48        result += constraint.Expression + Environment.NewLine + Environment.NewLine;
49        count++;
50      }
51
52      return result;
53    }
54
55    private void parseBtn_Click(object sender, EventArgs e) {
56      if (constraintsInput.Text != null) {
57        var constraints = ParseConstraints(constraintsInput.Text);
58        constraintsOutput.Text = ConstraintsOutput(constraints);
59        Content.Constraints = constraints;
60        Content.Input = constraintsInput.Text;
61      } else {
62        constraintsOutput.Text = "No Constraints found!";
63      }
64    }
65  }
66}
Note: See TracBrowser for help on using the repository browser.