Index: /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Views-3.4.csproj
===================================================================
--- /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Views-3.4.csproj	(revision 17892)
+++ /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Views-3.4.csproj	(revision 17893)
@@ -336,4 +336,9 @@
       <DependentUpon>ProblemDataView.cs</DependentUpon>
     </Compile>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
     <Compile Include="Regression\ConfidenceRegressionSolutionEstimatedValuesView.cs">
       <SubType>UserControl</SubType>
@@ -598,4 +603,17 @@
       <DependentUpon>AbstractFeatureCorrelationView.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="IntervalConstraintView.resx">
+      <DependentUpon>IntervalConstraintView.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+    <EmbeddedResource Include="ShapeConstraintsView.resx">
+      <DependentUpon>ShapeConstraintsView.cs</DependentUpon>
+    </EmbeddedResource>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\VS2008ImageLibrary_Annotations_Information.png" />
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Index: /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/IntervalConstraintView.Designer.cs
===================================================================
--- /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/IntervalConstraintView.Designer.cs	(revision 17892)
+++ /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/IntervalConstraintView.Designer.cs	(revision 17893)
@@ -24,153 +24,189 @@
     /// </summary>
     private void InitializeComponent() {
-      this.components = new System.ComponentModel.Container();
-      this.lowerboundLabel = new System.Windows.Forms.Label();
-      this.upperboundLabel = new System.Windows.Forms.Label();
-      this.variableLabel = new System.Windows.Forms.Label();
-      this.numberderivationLabel = new System.Windows.Forms.Label();
-      this.upperboundInput = new System.Windows.Forms.TextBox();
-      this.lowerboundInput = new System.Windows.Forms.TextBox();
-      this.variableInput = new System.Windows.Forms.TextBox();
-      this.groupBox1 = new System.Windows.Forms.GroupBox();
-      this.enabledLabel = new System.Windows.Forms.Label();
-      this.label1 = new System.Windows.Forms.Label();
-      this.numberderivationInput = new System.Windows.Forms.ComboBox();
-      this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
-      this.groupBox1.SuspendLayout();
-      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
-      this.SuspendLayout();
-      // 
-      // lowerboundLabel
-      // 
-      this.lowerboundLabel.AutoSize = true;
-      this.lowerboundLabel.Location = new System.Drawing.Point(8, 101);
-      this.lowerboundLabel.Name = "lowerboundLabel";
-      this.lowerboundLabel.Size = new System.Drawing.Size(90, 17);
-      this.lowerboundLabel.TabIndex = 2;
-      this.lowerboundLabel.Text = "Lowerbound:";
-      // 
-      // upperboundLabel
-      // 
-      this.upperboundLabel.AutoSize = true;
-      this.upperboundLabel.Location = new System.Drawing.Point(8, 126);
-      this.upperboundLabel.Name = "upperboundLabel";
-      this.upperboundLabel.Size = new System.Drawing.Size(91, 17);
-      this.upperboundLabel.TabIndex = 3;
-      this.upperboundLabel.Text = "Upperbound:";
-      // 
-      // variableLabel
-      // 
-      this.variableLabel.AutoSize = true;
-      this.variableLabel.Location = new System.Drawing.Point(8, 47);
-      this.variableLabel.Name = "variableLabel";
-      this.variableLabel.Size = new System.Drawing.Size(64, 17);
-      this.variableLabel.TabIndex = 7;
-      this.variableLabel.Text = "Variable:";
-      // 
-      // numberderivationLabel
-      // 
-      this.numberderivationLabel.AutoSize = true;
-      this.numberderivationLabel.Location = new System.Drawing.Point(8, 74);
-      this.numberderivationLabel.Name = "numberderivationLabel";
-      this.numberderivationLabel.Size = new System.Drawing.Size(84, 17);
-      this.numberderivationLabel.TabIndex = 8;
-      this.numberderivationLabel.Text = "#Derivation:";
-      // 
-      // upperboundInput
-      // 
-      this.upperboundInput.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.upperboundInput.Location = new System.Drawing.Point(108, 123);
-      this.upperboundInput.Name = "upperboundInput";
-      this.upperboundInput.Size = new System.Drawing.Size(473, 22);
-      this.upperboundInput.TabIndex = 11;
-      this.upperboundInput.Validating += new System.ComponentModel.CancelEventHandler(this.upperboundInput_Validating);
-      this.upperboundInput.Validated += new System.EventHandler(this.upperboundInput_Validated);
-      // 
-      // lowerboundInput
-      // 
-      this.lowerboundInput.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.lowerboundInput.Location = new System.Drawing.Point(108, 98);
-      this.lowerboundInput.Name = "lowerboundInput";
-      this.lowerboundInput.Size = new System.Drawing.Size(473, 22);
-      this.lowerboundInput.TabIndex = 12;
-      this.lowerboundInput.Validating += new System.ComponentModel.CancelEventHandler(this.lowerboundInput_Validating);
-      this.lowerboundInput.Validated += new System.EventHandler(this.lowerboundInput_Validated);
-      // 
-      // variableInput
-      // 
-      this.variableInput.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.variableInput.Location = new System.Drawing.Point(108, 44);
-      this.variableInput.Name = "variableInput";
-      this.variableInput.Size = new System.Drawing.Size(473, 22);
-      this.variableInput.TabIndex = 15;
-      // 
-      // groupBox1
-      // 
-      this.groupBox1.Controls.Add(this.enabledLabel);
-      this.groupBox1.Controls.Add(this.label1);
-      this.groupBox1.Controls.Add(this.numberderivationInput);
-      this.groupBox1.Controls.Add(this.variableInput);
-      this.groupBox1.Controls.Add(this.lowerboundInput);
-      this.groupBox1.Controls.Add(this.upperboundInput);
-      this.groupBox1.Controls.Add(this.numberderivationLabel);
-      this.groupBox1.Controls.Add(this.variableLabel);
-      this.groupBox1.Controls.Add(this.upperboundLabel);
-      this.groupBox1.Controls.Add(this.lowerboundLabel);
-      this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.groupBox1.Location = new System.Drawing.Point(0, 0);
-      this.groupBox1.Name = "groupBox1";
-      this.groupBox1.Size = new System.Drawing.Size(587, 380);
-      this.groupBox1.TabIndex = 0;
-      this.groupBox1.TabStop = false;
-      this.groupBox1.Text = "Interval Constraints Detail";
-      // 
-      // enabledLabel
-      // 
-      this.enabledLabel.AutoSize = true;
-      this.enabledLabel.Location = new System.Drawing.Point(8, 153);
-      this.enabledLabel.Name = "enabledLabel";
-      this.enabledLabel.Size = new System.Drawing.Size(64, 17);
-      this.enabledLabel.TabIndex = 29;
-      this.enabledLabel.Text = "Enabled:";
-      // 
-      // label1
-      // 
-      this.label1.AutoSize = true;
-      this.label1.Location = new System.Drawing.Point(11, -105);
-      this.label1.Name = "label1";
-      this.label1.Size = new System.Drawing.Size(64, 17);
-      this.label1.TabIndex = 28;
-      this.label1.Text = "Enabled:";
-      // 
-      // numberderivationInput
-      // 
-      this.numberderivationInput.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.numberderivationInput.FormattingEnabled = true;
-      this.numberderivationInput.Location = new System.Drawing.Point(108, 71);
-      this.numberderivationInput.Name = "numberderivationInput";
-      this.numberderivationInput.Size = new System.Drawing.Size(473, 24);
-      this.numberderivationInput.TabIndex = 27;
-      this.numberderivationInput.SelectedIndexChanged += new System.EventHandler(this.numberderivationInput_SelectedIndexChanged);
-     
-      // 
-      // errorProvider
-      // 
-      this.errorProvider.ContainerControl = this;
-      this.errorProvider.RightToLeft = true;
-      // 
-      // IntervalConstraintView
-      // 
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
-      this.Controls.Add(this.groupBox1);
-      this.Name = "IntervalConstraintView";
-      this.Size = new System.Drawing.Size(587, 380);
-      this.groupBox1.ResumeLayout(false);
-      this.groupBox1.PerformLayout();
-      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
-      this.ResumeLayout(false);
+            this.components = new System.ComponentModel.Container();
+            this.lowerboundLabel = new System.Windows.Forms.Label();
+            this.upperboundLabel = new System.Windows.Forms.Label();
+            this.variableLabel = new System.Windows.Forms.Label();
+            this.numberderivationLabel = new System.Windows.Forms.Label();
+            this.upperboundInput = new System.Windows.Forms.TextBox();
+            this.lowerboundInput = new System.Windows.Forms.TextBox();
+            this.variableInput = new System.Windows.Forms.TextBox();
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.weightInput = new System.Windows.Forms.TextBox();
+            this.WeightLab = new System.Windows.Forms.Label();
+            this.regionLab = new System.Windows.Forms.Label();
+            this.regionView = new HeuristicLab.Problems.DataAnalysis.Views.IntervalCollectionView();
+            this.label1 = new System.Windows.Forms.Label();
+            this.numberderivationInput = new System.Windows.Forms.ComboBox();
+            this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
+            this.groupBox1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // lowerboundLabel
+            // 
+            this.lowerboundLabel.AutoSize = true;
+            this.lowerboundLabel.Location = new System.Drawing.Point(8, 101);
+            this.lowerboundLabel.Name = "lowerboundLabel";
+            this.lowerboundLabel.Size = new System.Drawing.Size(69, 13);
+            this.lowerboundLabel.TabIndex = 2;
+            this.lowerboundLabel.Text = "Lowerbound:";
+            // 
+            // upperboundLabel
+            // 
+            this.upperboundLabel.AutoSize = true;
+            this.upperboundLabel.Location = new System.Drawing.Point(8, 126);
+            this.upperboundLabel.Name = "upperboundLabel";
+            this.upperboundLabel.Size = new System.Drawing.Size(69, 13);
+            this.upperboundLabel.TabIndex = 3;
+            this.upperboundLabel.Text = "Upperbound:";
+            // 
+            // variableLabel
+            // 
+            this.variableLabel.AutoSize = true;
+            this.variableLabel.Location = new System.Drawing.Point(8, 47);
+            this.variableLabel.Name = "variableLabel";
+            this.variableLabel.Size = new System.Drawing.Size(48, 13);
+            this.variableLabel.TabIndex = 7;
+            this.variableLabel.Text = "Variable:";
+            // 
+            // numberderivationLabel
+            // 
+            this.numberderivationLabel.AutoSize = true;
+            this.numberderivationLabel.Location = new System.Drawing.Point(8, 74);
+            this.numberderivationLabel.Name = "numberderivationLabel";
+            this.numberderivationLabel.Size = new System.Drawing.Size(65, 13);
+            this.numberderivationLabel.TabIndex = 8;
+            this.numberderivationLabel.Text = "#Derivation:";
+            // 
+            // upperboundInput
+            // 
+            this.upperboundInput.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.upperboundInput.Location = new System.Drawing.Point(108, 123);
+            this.upperboundInput.Name = "upperboundInput";
+            this.upperboundInput.Size = new System.Drawing.Size(473, 20);
+            this.upperboundInput.TabIndex = 11;
+            this.upperboundInput.Validating += new System.ComponentModel.CancelEventHandler(this.upperboundInput_Validating);
+            this.upperboundInput.Validated += new System.EventHandler(this.upperboundInput_Validated);
+            // 
+            // lowerboundInput
+            // 
+            this.lowerboundInput.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.lowerboundInput.Location = new System.Drawing.Point(108, 98);
+            this.lowerboundInput.Name = "lowerboundInput";
+            this.lowerboundInput.Size = new System.Drawing.Size(473, 20);
+            this.lowerboundInput.TabIndex = 12;
+            this.lowerboundInput.Validating += new System.ComponentModel.CancelEventHandler(this.lowerboundInput_Validating);
+            this.lowerboundInput.Validated += new System.EventHandler(this.lowerboundInput_Validated);
+            // 
+            // variableInput
+            // 
+            this.variableInput.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.variableInput.Location = new System.Drawing.Point(108, 44);
+            this.variableInput.Name = "variableInput";
+            this.variableInput.Size = new System.Drawing.Size(473, 20);
+            this.variableInput.TabIndex = 15;
+            // 
+            // groupBox1
+            // 
+            this.groupBox1.Controls.Add(this.weightInput);
+            this.groupBox1.Controls.Add(this.WeightLab);
+            this.groupBox1.Controls.Add(this.regionLab);
+            this.groupBox1.Controls.Add(this.regionView);
+            this.groupBox1.Controls.Add(this.label1);
+            this.groupBox1.Controls.Add(this.numberderivationInput);
+            this.groupBox1.Controls.Add(this.variableInput);
+            this.groupBox1.Controls.Add(this.lowerboundInput);
+            this.groupBox1.Controls.Add(this.upperboundInput);
+            this.groupBox1.Controls.Add(this.numberderivationLabel);
+            this.groupBox1.Controls.Add(this.variableLabel);
+            this.groupBox1.Controls.Add(this.upperboundLabel);
+            this.groupBox1.Controls.Add(this.lowerboundLabel);
+            this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.groupBox1.Location = new System.Drawing.Point(0, 0);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.Size = new System.Drawing.Size(587, 380);
+            this.groupBox1.TabIndex = 0;
+            this.groupBox1.TabStop = false;
+            this.groupBox1.Text = "Interval Constraints Detail";
+            // 
+            // weightInput
+            // 
+            this.weightInput.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.weightInput.Location = new System.Drawing.Point(108, 150);
+            this.weightInput.Name = "weightInput";
+            this.weightInput.Size = new System.Drawing.Size(473, 20);
+            this.weightInput.TabIndex = 33;
+            this.weightInput.TextChanged += new System.EventHandler(this.weightInput_TextChanged);
+            // 
+            // WeightLab
+            // 
+            this.WeightLab.AutoSize = true;
+            this.WeightLab.Location = new System.Drawing.Point(8, 153);
+            this.WeightLab.Name = "WeightLab";
+            this.WeightLab.Size = new System.Drawing.Size(44, 13);
+            this.WeightLab.TabIndex = 32;
+            this.WeightLab.Text = "Weight:";
+            // 
+            // regionLab
+            // 
+            this.regionLab.AutoSize = true;
+            this.regionLab.Location = new System.Drawing.Point(8, 188);
+            this.regionLab.Name = "regionLab";
+            this.regionLab.Size = new System.Drawing.Size(49, 13);
+            this.regionLab.TabIndex = 31;
+            this.regionLab.Text = "Regions:";
+            // 
+            // regionView
+            // 
+            this.regionView.Caption = "IntervalCollection View";
+            this.regionView.Content = null;
+            this.regionView.Location = new System.Drawing.Point(108, 188);
+            this.regionView.Name = "regionView";
+            this.regionView.ReadOnly = false;
+            this.regionView.Size = new System.Drawing.Size(473, 186);
+            this.regionView.TabIndex = 30;
+            this.regionView.TabStop = false;
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(11, -105);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(49, 13);
+            this.label1.TabIndex = 28;
+            this.label1.Text = "Enabled:";
+            // 
+            // numberderivationInput
+            // 
+            this.numberderivationInput.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.numberderivationInput.FormattingEnabled = true;
+            this.numberderivationInput.Location = new System.Drawing.Point(108, 71);
+            this.numberderivationInput.Name = "numberderivationInput";
+            this.numberderivationInput.Size = new System.Drawing.Size(473, 21);
+            this.numberderivationInput.TabIndex = 27;
+            this.numberderivationInput.SelectedIndexChanged += new System.EventHandler(this.numberderivationInput_SelectedIndexChanged);
+            // 
+            // errorProvider
+            // 
+            this.errorProvider.ContainerControl = this;
+            this.errorProvider.RightToLeft = true;
+            // 
+            // IntervalConstraintView
+            // 
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
+            this.Controls.Add(this.groupBox1);
+            this.Name = "IntervalConstraintView";
+            this.Size = new System.Drawing.Size(587, 380);
+            this.groupBox1.ResumeLayout(false);
+            this.groupBox1.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+            this.ResumeLayout(false);
+
     }
 
@@ -188,5 +224,8 @@
     private System.Windows.Forms.ComboBox      numberderivationInput;
     private System.Windows.Forms.Label         label1;
-    private System.Windows.Forms.Label         enabledLabel;
+    private IntervalCollectionView regionView;
+    private System.Windows.Forms.Label regionLab;
+        private System.Windows.Forms.TextBox weightInput;
+        private System.Windows.Forms.Label WeightLab;
     }
 }
Index: /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/IntervalConstraintView.cs
===================================================================
--- /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/IntervalConstraintView.cs	(revision 17892)
+++ /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/IntervalConstraintView.cs	(revision 17893)
@@ -45,4 +45,5 @@
     protected override void OnContentChanged() {
       base.OnContentChanged();
+      this.regionView.Content = Content.Regions;
       UpdateControls();
     }
@@ -64,4 +65,5 @@
       lowerboundInput.Enabled = Content != null && !Locked && !ReadOnly;
       upperboundInput.Enabled = Content != null && !Locked && !ReadOnly;
+      weightInput.Enabled = Content != null && !Locked && !ReadOnly;
     }
 
@@ -94,4 +96,5 @@
         lowerboundInput.Text = string.Empty;
         upperboundInput.Text = string.Empty;
+        weightInput.Text = string.Empty;
         return;
       }
@@ -99,4 +102,5 @@
       lowerboundInput.Text = Content.Interval.LowerBound.ToString();
       upperboundInput.Text = Content.Interval.UpperBound.ToString();
+      weightInput.Text = Content.Weight.ToString();
 
       variableInput.Text = Content.Variable;
@@ -111,4 +115,6 @@
         numberderivationInput.SelectedItem = Content.NumberOfDerivations;
       }
+
+      regionView.Content = Content.Regions;
     }
 
@@ -180,4 +186,10 @@
     }
 
+    private void weightInput_TextChanged(object sender, EventArgs e) {
+      var value = ParseDoubleValue(weightInput.Text, weightInput, errorProvider);
+      if (!double.IsNaN(value)) Content.Weight = value;
+    }
+
+
     #endregion
 
@@ -188,5 +200,5 @@
     }
 
-    #endregion
+   #endregion
   }
 }
Index: /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/IntervalConstraintView.resx
===================================================================
--- /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/IntervalConstraintView.resx	(revision 17893)
+++ /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/IntervalConstraintView.resx	(revision 17893)
@@ -0,0 +1,123 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="errorProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+</root>
Index: /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/Properties/Resources.Designer.cs
===================================================================
--- /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/Properties/Resources.Designer.cs	(revision 17893)
+++ /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/Properties/Resources.Designer.cs	(revision 17893)
@@ -0,0 +1,73 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     Dieser Code wurde von einem Tool generiert.
+//     Laufzeitversion:4.0.30319.42000
+//
+//     Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
+//     der Code erneut generiert wird.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HeuristicLab.Problems.DataAnalysis.Views.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
+    /// </summary>
+    // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
+    // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
+    // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
+    // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HeuristicLab.Problems.DataAnalysis.Views.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
+        ///   Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap VS2008ImageLibrary_Annotations_Information {
+            get {
+                object obj = ResourceManager.GetObject("VS2008ImageLibrary_Annotations_Information", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+    }
+}
Index: /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/Properties/Resources.resx
===================================================================
--- /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/Properties/Resources.resx	(revision 17893)
+++ /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/Properties/Resources.resx	(revision 17893)
@@ -0,0 +1,124 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="VS2008ImageLibrary_Annotations_Information" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\VS2008ImageLibrary_Annotations_Information.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+</root>
Index: /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/ShapeConstraintsView.Designer.cs
===================================================================
--- /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/ShapeConstraintsView.Designer.cs	(revision 17892)
+++ /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/ShapeConstraintsView.Designer.cs	(revision 17893)
@@ -51,128 +51,122 @@
     /// </summary>
     private void InitializeComponent() {
-      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ShapeConstraintsView));
-      this.splitContainer1 = new System.Windows.Forms.SplitContainer();
-      this.groupBox1 = new System.Windows.Forms.GroupBox();
-      this.constraintsInput = new System.Windows.Forms.TextBox();
-      this.parseBtn = new System.Windows.Forms.Button();
-      this.errorOutput = new System.Windows.Forms.Label();
-      this.label1 = new System.Windows.Forms.Label();
-      this.intervalConstraintsView = new CheckedItemListView<ShapeConstraint>();
-      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
-      this.splitContainer1.Panel1.SuspendLayout();
-      this.splitContainer1.Panel2.SuspendLayout();
-      this.splitContainer1.SuspendLayout();
-      this.groupBox1.SuspendLayout();
-      this.SuspendLayout();
-      // 
-      // splitContainer1
-      // 
-      this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.splitContainer1.Location = new System.Drawing.Point(0, 0);
-      this.splitContainer1.Name = "splitContainer1";
-      // 
-      // splitContainer1.Panel1
-      // 
-      this.splitContainer1.Panel1.Controls.Add(this.groupBox1);
-      // 
-      // splitContainer1.Panel2
-      // 
-      this.splitContainer1.Panel2.Controls.Add(this.intervalConstraintsView);
-      this.splitContainer1.Size = new System.Drawing.Size(888, 629);
-      this.splitContainer1.SplitterDistance = 296;
-      this.splitContainer1.TabIndex = 0;
-      // 
-      // groupBox1
-      // 
-      this.groupBox1.Controls.Add(this.constraintsInput);
-      this.groupBox1.Controls.Add(this.parseBtn);
-      this.groupBox1.Controls.Add(this.errorOutput);
-      this.groupBox1.Controls.Add(this.label1);
-      this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.groupBox1.Location = new System.Drawing.Point(0, 0);
-      this.groupBox1.Name = "groupBox1";
-      this.groupBox1.Size = new System.Drawing.Size(296, 629);
-      this.groupBox1.TabIndex = 3;
-      this.groupBox1.TabStop = false;
-      this.groupBox1.Text = "Constraints Input";
-      // 
-      // constraintsInput
-      // 
-      this.constraintsInput.AcceptsTab = true;
-      this.constraintsInput.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.constraintsInput.Location = new System.Drawing.Point(3, 185);
-      this.constraintsInput.Multiline = true;
-      this.constraintsInput.Name = "constraintsInput";
-      this.constraintsInput.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
-      this.constraintsInput.Size = new System.Drawing.Size(290, 405);
-      this.constraintsInput.TabIndex = 2;
-      this.constraintsInput.TextChanged += new System.EventHandler(this.constraintsInput_TextChanged);
-      // 
-      // parseBtn
-      // 
-      this.parseBtn.Dock = System.Windows.Forms.DockStyle.Bottom;
-      this.parseBtn.Location = new System.Drawing.Point(3, 590);
-      this.parseBtn.Name = "parseBtn";
-      this.parseBtn.Size = new System.Drawing.Size(290, 23);
-      this.parseBtn.TabIndex = 1;
-      this.parseBtn.Text = "Parse Constraints";
-      this.parseBtn.UseVisualStyleBackColor = true;
-      this.parseBtn.Click += new System.EventHandler(this.parseBtn_Click);
-      // 
-      // errorOutput
-      // 
-      this.errorOutput.MaximumSize = new Size(350, 0);
-      this.errorOutput.AutoSize = true;
-      this.errorOutput.ForeColor = Color.DarkRed;
-      this.errorOutput.Dock = System.Windows.Forms.DockStyle.Bottom;
-      this.errorOutput.Location = new System.Drawing.Point(3, 613);
-      this.errorOutput.Name = "errorOutput";
-      this.errorOutput.Size = new System.Drawing.Size(35, 13);
-      this.errorOutput.TabIndex = 3;
-      this.errorOutput.Text = "label2";
-      // 
-      // label1
-      // 
-      this.label1.AutoSize = true;
-      this.label1.Dock = System.Windows.Forms.DockStyle.Top;
-      this.label1.Location = new System.Drawing.Point(3, 16);
-      this.label1.Name = "label1";
-      this.label1.Size = new System.Drawing.Size(354, 169);
-      this.label1.TabIndex = 0;
-      this.label1.Text = "To define target variable constraints:" + Environment.NewLine +
-                         "1. Start the definition with target:" + Environment.NewLine +
-                         "2. Specify the target variable between '-characters" + Environment.NewLine +
-                         "3. Add the keyword in" + Environment.NewLine +
-                         "4. Specify the interval with [lowerbound .. upperbound]" + Environment.NewLine +
-                         "To define a derivation constraint: " + Environment.NewLine +
-                         "1. Start with d or \u2202" + Environment.NewLine +
-                         "2. Specify the target between '-characters" + Environment.NewLine +
-                         "3. Separate target and derivation variable with /" + Environment.NewLine +
-                         "4. Add derivation variable between '-characters'" + Environment.NewLine +
-                         "5. Follow the steps 3-4 from above";
-      // 
-      // intervalConstraintsView
-      // 
-      this.intervalConstraintsView.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.intervalConstraintsView.Location = new System.Drawing.Point(0, 0);
-      this.intervalConstraintsView.Name = "intervalConstraintsView";
-      this.intervalConstraintsView.Size = new System.Drawing.Size(588, 20);
-      this.intervalConstraintsView.TabIndex = 2;
-      // 
-      // ProblemDataConstraintView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.splitContainer1);
-      this.Name = "ProblemDataConstraintView";
-      this.Size = new System.Drawing.Size(888, 629);
-      this.splitContainer1.Panel1.ResumeLayout(false);
-      this.splitContainer1.Panel2.ResumeLayout(false);
-      this.splitContainer1.Panel2.PerformLayout();
-      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
-      this.splitContainer1.ResumeLayout(false);
-      this.groupBox1.ResumeLayout(false);
-      this.groupBox1.PerformLayout();
-      this.ResumeLayout(false);
+            this.components = new System.ComponentModel.Container();
+            this.splitContainer1 = new System.Windows.Forms.SplitContainer();
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.constraintsInput = new System.Windows.Forms.TextBox();
+            this.parseBtn = new System.Windows.Forms.Button();
+            this.label1 = new System.Windows.Forms.Label();
+            this.errorOutput = new System.Windows.Forms.Label();
+            this.intervalConstraintsView = new HeuristicLab.Core.Views.CheckedItemListView<ShapeConstraint>();
+            this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
+            ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
+            this.splitContainer1.Panel1.SuspendLayout();
+            this.splitContainer1.Panel2.SuspendLayout();
+            this.splitContainer1.SuspendLayout();
+            this.groupBox1.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // splitContainer1
+            // 
+            this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.splitContainer1.Location = new System.Drawing.Point(0, 0);
+            this.splitContainer1.Name = "splitContainer1";
+            // 
+            // splitContainer1.Panel1
+            // 
+            this.splitContainer1.Panel1.Controls.Add(this.groupBox1);
+            // 
+            // splitContainer1.Panel2
+            // 
+            this.splitContainer1.Panel2.Controls.Add(this.intervalConstraintsView);
+            this.splitContainer1.Size = new System.Drawing.Size(888, 629);
+            this.splitContainer1.SplitterDistance = 296;
+            this.splitContainer1.TabIndex = 0;
+            // 
+            // groupBox1
+            // 
+            this.groupBox1.Controls.Add(this.constraintsInput);
+            this.groupBox1.Controls.Add(this.parseBtn);
+            this.groupBox1.Controls.Add(this.label1);
+            this.groupBox1.Controls.Add(this.errorOutput);
+            this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.groupBox1.Location = new System.Drawing.Point(0, 0);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.Size = new System.Drawing.Size(296, 629);
+            this.groupBox1.TabIndex = 3;
+            this.groupBox1.TabStop = false;
+            this.groupBox1.Text = "Constraints Input";
+            // 
+            // constraintsInput
+            // 
+            this.constraintsInput.AcceptsTab = true;
+            this.constraintsInput.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.constraintsInput.Location = new System.Drawing.Point(3, 29);
+            this.constraintsInput.Multiline = true;
+            this.constraintsInput.Name = "constraintsInput";
+            this.constraintsInput.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
+            this.constraintsInput.Size = new System.Drawing.Size(290, 561);
+            this.constraintsInput.TabIndex = 2;
+            this.constraintsInput.TextChanged += new System.EventHandler(this.constraintsInput_TextChanged);
+            // 
+            // parseBtn
+            // 
+            this.parseBtn.Dock = System.Windows.Forms.DockStyle.Bottom;
+            this.parseBtn.Location = new System.Drawing.Point(3, 590);
+            this.parseBtn.Name = "parseBtn";
+            this.parseBtn.Size = new System.Drawing.Size(290, 23);
+            this.parseBtn.TabIndex = 1;
+            this.parseBtn.Text = "Parse Constraints";
+            this.parseBtn.UseVisualStyleBackColor = true;
+            this.parseBtn.Click += new System.EventHandler(this.parseBtn_Click);
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Dock = System.Windows.Forms.DockStyle.Top;
+            this.label1.Image = global::HeuristicLab.Problems.DataAnalysis.Views.Properties.Resources.VS2008ImageLibrary_Annotations_Information;
+            this.label1.Location = new System.Drawing.Point(3, 16);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(19, 13);
+            this.label1.TabIndex = 4;
+            this.label1.Text = "    ";
+            this.toolTip1.SetToolTip(this.label1, "Double-click to open description.");
+            this.label1.DoubleClick += new System.EventHandler(this.label1_DoubleClick);
+            // 
+            // errorOutput
+            // 
+            this.errorOutput.AutoSize = true;
+            this.errorOutput.Dock = System.Windows.Forms.DockStyle.Bottom;
+            this.errorOutput.ForeColor = System.Drawing.Color.DarkRed;
+            this.errorOutput.Location = new System.Drawing.Point(3, 613);
+            this.errorOutput.MaximumSize = new System.Drawing.Size(350, 0);
+            this.errorOutput.Name = "errorOutput";
+            this.errorOutput.Size = new System.Drawing.Size(35, 13);
+            this.errorOutput.TabIndex = 3;
+            this.errorOutput.Text = "label2";
+            // 
+            // intervalConstraintsView
+            // 
+            this.intervalConstraintsView.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.intervalConstraintsView.Location = new System.Drawing.Point(0, 0);
+            this.intervalConstraintsView.Name = "intervalConstraintsView";
+            this.intervalConstraintsView.Size = new System.Drawing.Size(588, 629);
+            this.intervalConstraintsView.TabIndex = 2;
+            this.intervalConstraintsView.TabStop = false;
+            // 
+            // ShapeConstraintsView
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.splitContainer1);
+            this.Name = "ShapeConstraintsView";
+            this.Size = new System.Drawing.Size(888, 629);
+            this.splitContainer1.Panel1.ResumeLayout(false);
+            this.splitContainer1.Panel2.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+            this.splitContainer1.ResumeLayout(false);
+            this.groupBox1.ResumeLayout(false);
+            this.groupBox1.PerformLayout();
+            this.ResumeLayout(false);
 
     }
@@ -182,8 +176,10 @@
     private System.Windows.Forms.GroupBox groupBox1;
     private System.Windows.Forms.Button parseBtn;
-    private System.Windows.Forms.Label label1;
     private HeuristicLab.Core.Views.CheckedItemListView<ShapeConstraint> intervalConstraintsView;
+    //private System.Windows.Forms.GroupBox intervalConstraintsView;
     private System.Windows.Forms.TextBox constraintsInput;
     private Label errorOutput;
-  }
+    private Label label1;
+    protected ToolTip toolTip1;
+    }
 }
Index: /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/ShapeConstraintsView.cs
===================================================================
--- /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/ShapeConstraintsView.cs	(revision 17892)
+++ /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/ShapeConstraintsView.cs	(revision 17893)
@@ -25,4 +25,5 @@
 using System.Drawing;
 using System.Text;
+using System.Windows.Forms;
 using HeuristicLab.Collections;
 using HeuristicLab.MainForm;
@@ -106,4 +107,5 @@
         constraintsInput.Text = string.Empty;
       } else {
+        this.intervalConstraintsView.Content = Content;
         constraintsInput.Text = ToString(Content);
       }
@@ -165,4 +167,25 @@
       UpdateControl();
     }
+
+    private void label1_DoubleClick(object sender, EventArgs e) {
+      var infoText =
+        "Within the text field you can define different types of shape constraints e.g. range constraints, monotonicity constraints, ..." +
+        System.Environment.NewLine +
+        "To define a model constraint: f in [0 .. 100], f is used for the selected target, the 'in' key word specifies the target in which the constraint should be, the interval is defined between square bracket." +
+        System.Environment.NewLine +
+        "The interval contains two bounds (lower and upper) this bounds are given as double values, to seperate both bounds from each other you can use (.., ;, ' ')" +
+        System.Environment.NewLine +
+        "To define monotonic or concave constraints you need to define the partial derivatives:" +
+        System.Environment.NewLine +
+        "∂f/∂x in [0 .. 1], therefore you have to define the partial fraction first, which can be done by using the \\partial symbol or 'd' followed by the target and the variable in the numerator and denominator respectively, after defining the fraction the interval is defined like in the model constraint." +
+        System.Environment.NewLine +
+        "To define constraints only on a specific range of the function you can define interval ranges" +
+        System.Environment.NewLine +
+        "f in [0 .. 100], x in [0 .. 1] the ranges are separated by commas and follow the same rules as before (giving the variable with the interval definition)" +
+        System.Environment.NewLine + "To specify different weights on the constraints:" +
+        System.Environment.NewLine + "f in [0 .. 100], x in [0 .. 1] weight: 2.0, you can add the keyword 'weight:' followed by a double value.";
+
+      MessageBox.Show(infoText,"How to define shape constraints", MessageBoxButtons.OKCancel);
+    }
   }
 }
Index: /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/ShapeConstraintsView.resx
===================================================================
--- /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/ShapeConstraintsView.resx	(revision 17893)
+++ /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis.Views/3.4/ShapeConstraintsView.resx	(revision 17893)
@@ -0,0 +1,126 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="label1.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+</root>
Index: /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Interval/IntervalCollection.cs
===================================================================
--- /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Interval/IntervalCollection.cs	(revision 17892)
+++ /branches/3073_IA_constraint_splitting_reintegration/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Interval/IntervalCollection.cs	(revision 17893)
@@ -122,5 +122,4 @@
     public event EventHandler Changed;
     private void RaiseChanged() {
-      OnChanged();
       var handler = Changed;
       if (handler != null)
@@ -128,5 +127,4 @@
     }
 
-    protected virtual void OnChanged() {  }
   }
 }
Index: /branches/3073_IA_constraint_splitting_reintegration/Tests/ShapeConstraintsParserTest.cs
===================================================================
--- /branches/3073_IA_constraint_splitting_reintegration/Tests/ShapeConstraintsParserTest.cs	(revision 17892)
+++ /branches/3073_IA_constraint_splitting_reintegration/Tests/ShapeConstraintsParserTest.cs	(revision 17893)
@@ -84,5 +84,5 @@
       var variables = new string[] { "x", "var x" };
       {
-        var constraint = ShapeConstraintsParser.ParseDerivationConstraint("df/dx in [1 .. 2]", variables);
+        var constraint = ShapeConstraintsParser.ParseDerivationConstraint("df/dx in [1 .. 2]");
         Assert.AreEqual("x", constraint.Variable);
         Assert.AreEqual(1, constraint.NumberOfDerivations);
@@ -94,5 +94,5 @@
       }
       {
-        var constraint = ShapeConstraintsParser.ParseDerivationConstraint("d²f/dx² in [1 .. 2]", variables);
+        var constraint = ShapeConstraintsParser.ParseDerivationConstraint("d²f/dx² in [1 .. 2]");
         Assert.AreEqual("x", constraint.Variable);
         Assert.AreEqual(2, constraint.NumberOfDerivations);
@@ -104,5 +104,5 @@
       }
       {
-        var constraint = ShapeConstraintsParser.ParseDerivationConstraint("d² f / d x² in [1 .. 2]", variables);
+        var constraint = ShapeConstraintsParser.ParseDerivationConstraint("d² f / d x² in [1 .. 2]");
         Assert.AreEqual("x", constraint.Variable);
         Assert.AreEqual(2, constraint.NumberOfDerivations);
@@ -114,5 +114,5 @@
       }
       {
-        var constraint = ShapeConstraintsParser.ParseDerivationConstraint("d³ f / d 'var x'³ in [1 .. 2]", variables);
+        var constraint = ShapeConstraintsParser.ParseDerivationConstraint("d³ f / d 'var x'³ in [1 .. 2]");
         Assert.AreEqual("var x", constraint.Variable);
         Assert.AreEqual(3, constraint.NumberOfDerivations);
