Index: /branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis.Views/3.4/IntervalConstraintView.Designer.cs
===================================================================
--- /branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis.Views/3.4/IntervalConstraintView.Designer.cs	(revision 16776)
+++ /branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis.Views/3.4/IntervalConstraintView.Designer.cs	(revision 16777)
@@ -39,9 +39,10 @@
       this.numberderivationInput = new System.Windows.Forms.TextBox();
       this.groupBox1 = new System.Windows.Forms.GroupBox();
+      this.ischeckedCheckBox = new System.Windows.Forms.CheckBox();
+      this.expressionInput = new System.Windows.Forms.TextBox();
+      this.expressionLabel = new System.Windows.Forms.Label();
       this.inclupperboundInput = new System.Windows.Forms.CheckBox();
       this.incllowerboundInput = new System.Windows.Forms.CheckBox();
       this.derivationInput = new System.Windows.Forms.CheckBox();
-      this.expressionLabel = new System.Windows.Forms.Label();
-      this.expressionInput = new System.Windows.Forms.TextBox();
       this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
       this.groupBox1.SuspendLayout();
@@ -174,4 +175,5 @@
       // groupBox1
       // 
+      this.groupBox1.Controls.Add(this.ischeckedCheckBox);
       this.groupBox1.Controls.Add(this.expressionInput);
       this.groupBox1.Controls.Add(this.expressionLabel);
@@ -200,4 +202,33 @@
       this.groupBox1.Text = "Interval Constraints Detail";
       // 
+      // ischeckedCheckBox
+      // 
+      this.ischeckedCheckBox.AutoSize = true;
+      this.ischeckedCheckBox.Location = new System.Drawing.Point(14, 257);
+      this.ischeckedCheckBox.Name = "ischeckedCheckBox";
+      this.ischeckedCheckBox.Size = new System.Drawing.Size(65, 17);
+      this.ischeckedCheckBox.TabIndex = 26;
+      this.ischeckedCheckBox.Text = "Enabled";
+      this.ischeckedCheckBox.UseVisualStyleBackColor = true;
+      this.ischeckedCheckBox.CheckStateChanged += new System.EventHandler(this.ischeckedCheckBox_CheckStateChanged);
+      // 
+      // expressionInput
+      // 
+      this.expressionInput.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.expressionInput.Location = new System.Drawing.Point(108, 17);
+      this.expressionInput.Name = "expressionInput";
+      this.expressionInput.Size = new System.Drawing.Size(473, 20);
+      this.expressionInput.TabIndex = 25;
+      // 
+      // expressionLabel
+      // 
+      this.expressionLabel.AutoSize = true;
+      this.expressionLabel.Location = new System.Drawing.Point(11, 20);
+      this.expressionLabel.Name = "expressionLabel";
+      this.expressionLabel.Size = new System.Drawing.Size(61, 13);
+      this.expressionLabel.TabIndex = 24;
+      this.expressionLabel.Text = "Expression:";
+      // 
       // inclupperboundInput
       // 
@@ -228,22 +259,4 @@
       this.derivationInput.TabIndex = 21;
       this.derivationInput.UseVisualStyleBackColor = true;
-      // 
-      // expressionLabel
-      // 
-      this.expressionLabel.AutoSize = true;
-      this.expressionLabel.Location = new System.Drawing.Point(11, 20);
-      this.expressionLabel.Name = "expressionLabel";
-      this.expressionLabel.Size = new System.Drawing.Size(61, 13);
-      this.expressionLabel.TabIndex = 24;
-      this.expressionLabel.Text = "Expression:";
-      // 
-      // expressionInput
-      // 
-      this.expressionInput.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.expressionInput.Location = new System.Drawing.Point(108, 17);
-      this.expressionInput.Name = "expressionInput";
-      this.expressionInput.Size = new System.Drawing.Size(473, 20);
-      this.expressionInput.TabIndex = 25;
       // 
       // errorProvider
@@ -286,4 +299,5 @@
     private System.Windows.Forms.Label expressionLabel;
     private System.Windows.Forms.ErrorProvider errorProvider;
+    private System.Windows.Forms.CheckBox ischeckedCheckBox;
   }
 }
Index: /branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis.Views/3.4/IntervalConstraintView.cs
===================================================================
--- /branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis.Views/3.4/IntervalConstraintView.cs	(revision 16776)
+++ /branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis.Views/3.4/IntervalConstraintView.cs	(revision 16777)
@@ -86,4 +86,7 @@
         variableInput.Text = Content.Variable;
         numberderivationInput.Text = Content.NumberOfDerivation.ToString();
+        ischeckedCheckBox.Checked = Content.IsChecked;
+        //Content.Changed += Content_Changed;
+
       }
       SetEnabledStateOfControls();
@@ -116,5 +119,5 @@
     #endregion
 
-    #region content event handlers
+    #region control event handlers
 
     private void numberderivationInput_Validating(object sender, CancelEventArgs e) {
@@ -196,12 +199,26 @@
 
     private void inclupperboundInput_CheckedChanged(object sender, EventArgs e) {
-      if (Content.InclusiveUpperBound != incllowerboundInput.Checked) { 
-        Content.InclusiveUpperBound = incllowerboundInput.Checked;
-        UpdateExpression();
-      }
-    }
+      if (Content.InclusiveUpperBound != inclupperboundInput.Checked) { 
+        Content.InclusiveUpperBound = inclupperboundInput.Checked;
+        UpdateExpression();
+      }
+    }
+
+    private void ischeckedCheckBox_CheckStateChanged(object sender, EventArgs e) {
+      if (Content.IsChecked != ischeckedCheckBox.Checked) {
+        Content.IsChecked = ischeckedCheckBox.Checked;
+        UpdateControls();
+      }
+    }
+
     #endregion
 
-
+    #region content event handlers
+
+    private void Content_Changed(object sender, EventArgs e) {
+      UpdateControls();
+    }
+
+    #endregion
   }
 }
Index: /branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis.Views/3.4/ParsedConstraintView.cs
===================================================================
--- /branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis.Views/3.4/ParsedConstraintView.cs	(revision 16776)
+++ /branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis.Views/3.4/ParsedConstraintView.cs	(revision 16777)
@@ -1,4 +1,4 @@
 ﻿using System;
-
+using HeuristicLab.Collections;
 using HeuristicLab.Core;
 using HeuristicLab.MainForm;
@@ -19,8 +19,5 @@
       errorOutput.Text = "";
       intervalConstraints = new CheckedItemList<IntervalConstraint>();
-    }
-
-    private void Content_Changed(object sender, EventArgs e) {
-      constraintsOutput.Content = intervalConstraints;
+      intervalConstraints.CheckedItemsChanged += constraints_CheckedItemsChanged;
     }
 
@@ -37,7 +34,8 @@
     private void parseBtn_Click(object sender, EventArgs e) {
       if (constraintsInput.Text != null) {
-        var constaints = ParseConstraints(constraintsInput.Text);
-        constraintsOutput.Content = constaints;
-        Content.Constraints = constaints;
+        intervalConstraints = ParseConstraints(constraintsInput.Text);
+        intervalConstraints.CheckedItemsChanged += constraints_CheckedItemsChanged;
+        constraintsOutput.Content = intervalConstraints;
+        Content.Constraints = intervalConstraints;
         Content.Input = constraintsInput.Text;
         errorOutput.Text = "";
@@ -57,11 +55,26 @@
         foreach (var constraint in Content.Constraints) {
           constraint.Changed += new EventHandler(Content_Changed);
-          intervalConstraints.Add(constraint, true);
+          intervalConstraints.Add(constraint, constraint.IsChecked);
         }
       }
+      constraintsOutput.Content = intervalConstraints;
     }
 
     private void constraintsInput_TextChanged(object sender, EventArgs e) {
       errorOutput.Text = "Unparsed changes! Press parse button to save changes.";
+    }
+
+    private void Content_Changed(object sender, EventArgs e) {
+      var constraint = (IntervalConstraint) sender;
+      intervalConstraints.SetItemCheckedState(constraint, constraint.IsChecked);
+      constraintsOutput.Content = intervalConstraints;
+    }
+
+    private void constraints_CheckedItemsChanged(object sender,
+      CollectionItemsChangedEventArgs<IndexedItem<IntervalConstraint>> e) {
+      var checkedItemList = (ICheckedItemList<IntervalConstraint>) sender;
+      foreach (var indexedItem in e.Items) {
+        indexedItem.Value.IsChecked = checkedItemList.ItemChecked(indexedItem.Value);
+      }
     }
 
Index: /branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Parser/IntervalConstraint.cs
===================================================================
--- /branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Parser/IntervalConstraint.cs	(revision 16776)
+++ /branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Parser/IntervalConstraint.cs	(revision 16777)
@@ -49,12 +49,32 @@
     public int NumberOfDerivation { get; set; }
 
-    public IntervalConstraint() {}
+    private bool isChecked;
+    public bool IsChecked {
+      get => isChecked;
+      set {
+        if (value != isChecked) {
+          isChecked = value;
+          OnChanged(EventArgs.Empty);
+        }
+      }
+    }
+
+    public IntervalConstraint() {
+      name = "Empty";
+      expression = "Empty";
+      Interval = new Interval(0, 0);
+      inclusiveLowerBound = true;
+      inclusiveLowerBound = true;
+      IsDerivation = false;
+      isChecked = false;
+    }
 
     public IntervalConstraint(string name) {
       base.name = name;
+      IsChecked = true;
     }
 
     public IntervalConstraint(string expression, string definition, Interval interval, bool inclusiveLowerBound,
-      bool inclusiveUpperBound, bool isDerivation, string variable, int numberOfDerivation) {
+      bool inclusiveUpperBound, bool isDerivation, string variable, int numberOfDerivation, bool isChecked) {
       base.name = expression;
       Expression = expression;
@@ -66,4 +86,5 @@
       Variable = variable;
       NumberOfDerivation = numberOfDerivation;
+      IsChecked = isChecked;
     }
 
@@ -82,4 +103,5 @@
       this.Variable = original.Variable;
       this.NumberOfDerivation = original.NumberOfDerivation;
+      this.isChecked = original.isChecked;
     }
 
Index: /branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis/3.4/ParsedConstraint.cs
===================================================================
--- /branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis/3.4/ParsedConstraint.cs	(revision 16776)
+++ /branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis/3.4/ParsedConstraint.cs	(revision 16777)
@@ -42,5 +42,5 @@
       this.input = original.Input ?? string.Empty;
       this.constraints = original.Constraints ?? new CheckedItemList<IntervalConstraint>();
-      
+      this.problemData = original.problemData;
     }
 
