[16756] | 1 | using System;
|
---|
| 2 | using System.Collections.Generic;
|
---|
| 3 | using System.ComponentModel;
|
---|
| 4 | using System.Drawing;
|
---|
| 5 | using System.Data;
|
---|
| 6 | using System.Linq;
|
---|
| 7 | using System.Text;
|
---|
| 8 | using System.Threading.Tasks;
|
---|
| 9 | using System.Windows.Forms;
|
---|
| 10 | using HeuristicLab.MainForm;
|
---|
| 11 | using HeuristicLab.MainForm.WindowsForms;
|
---|
| 12 |
|
---|
| 13 | namespace 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 | }
|
---|