Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/HeuristicLab.Optimization.Views-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/HeuristicLab.Optimization.Views-3.3.csproj	(revision 3717)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/HeuristicLab.Optimization.Views-3.3.csproj	(revision 3718)
@@ -100,9 +100,9 @@
       <DependentUpon>BatchRunView.cs</DependentUpon>
     </Compile>
-    <Compile Include="RunCollectioComparisonConstraintView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="RunCollectioComparisonConstraintView.Designer.cs">
-      <DependentUpon>RunCollectioComparisonConstraintView.cs</DependentUpon>
+    <Compile Include="RunCollectionComparisonConstraintView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="RunCollectionComparisonConstraintView.Designer.cs">
+      <DependentUpon>RunCollectionComparisonConstraintView.cs</DependentUpon>
     </Compile>
     <Compile Include="RunCollectionTypeCompatibilityConstraintView.cs">
Index: unk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectioComparisonConstraintView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectioComparisonConstraintView.Designer.cs	(revision 3717)
+++ 	(revision )
@@ -1,70 +1,0 @@
-﻿namespace HeuristicLab.Optimization.Views {
-  partial class RunCollectionComparisonConstraintView {
-    /// <summary> 
-    /// Required designer variable.
-    /// </summary>
-    private System.ComponentModel.IContainer components = null;
-
-    /// <summary> 
-    /// Clean up any resources being used.
-    /// </summary>
-    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-    protected override void Dispose(bool disposing) {
-      if (disposing && (components != null)) {
-        components.Dispose();
-      }
-      base.Dispose(disposing);
-    }
-
-    #region Component Designer generated code
-
-    /// <summary> 
-    /// Required method for Designer support - do not modify 
-    /// the contents of this method with the code editor.
-    /// </summary>
-    private void InitializeComponent() {
-      this.components = new System.ComponentModel.Container();
-      this.txtConstraintData = new System.Windows.Forms.TextBox();
-      this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
-      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
-      this.SuspendLayout();
-      // 
-      // txtConstraintData
-      // 
-      this.txtConstraintData.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.errorProvider.SetIconAlignment(this.txtConstraintData, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
-      this.errorProvider.SetIconPadding(this.txtConstraintData, 2);
-      this.txtConstraintData.Location = new System.Drawing.Point(127, 56);
-      this.txtConstraintData.Name = "txtConstraintData";
-      this.txtConstraintData.Size = new System.Drawing.Size(246, 20);
-      this.txtConstraintData.TabIndex = 9;
-      this.txtConstraintData.Validated += new System.EventHandler(this.txtConstraintData_Validated);
-      this.txtConstraintData.Validating += new System.ComponentModel.CancelEventHandler(this.txtConstraintData_Validating);
-      // 
-      // errorProvider
-      // 
-      this.errorProvider.ContainerControl = this;
-      // 
-      // RunCollectionComparisonConstraintView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.txtConstraintData);
-      this.errorProvider.SetIconAlignment(this, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
-      this.Name = "RunCollectionComparisonConstraintView";
-      this.Controls.SetChildIndex(this.txtConstraintData, 0);
-      this.Controls.SetChildIndex(this.cmbConstraintOperation, 0);
-      this.Controls.SetChildIndex(this.cmbConstraintColumn, 0);
-      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
-      this.ResumeLayout(false);
-      this.PerformLayout();
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.TextBox txtConstraintData;
-    private System.Windows.Forms.ErrorProvider errorProvider;
-  }
-}
Index: unk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectioComparisonConstraintView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectioComparisonConstraintView.cs	(revision 3717)
+++ 	(revision )
@@ -1,96 +1,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-using HeuristicLab.MainForm;
-using HeuristicLab.Data;
-
-namespace HeuristicLab.Optimization.Views {
-  [Content(typeof(RunCollectionComparisonConstraint), true)]
-  public partial class RunCollectionComparisonConstraintView : RunCollectionConstraintView {
-    public RunCollectionComparisonConstraintView() {
-      InitializeComponent();
-    }
-
-    public new RunCollectionComparisonConstraint Content {
-      get { return (RunCollectionComparisonConstraint)base.Content; }
-      set { base.Content = value; }
-    }
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      if (Content == null || Content.ConstraintData == null)
-        this.txtConstraintData.Text = string.Empty;
-      else
-        this.txtConstraintData.Text = Content.ConstraintData.GetValue();
-    }
-
-    protected override void RegisterContentEvents() {
-      base.RegisterContentEvents();
-      Content.ConstraintDataChanged += new EventHandler(Content_ConstraintDataChanged);
-    }
-
-    protected override void DeregisterContentEvents() {
-      base.DeregisterContentEvents();
-      Content.ConstraintDataChanged -= new EventHandler(Content_ConstraintDataChanged);
-    }
-
-    protected override void UpdateColumnComboBox() {
-      this.cmbConstraintColumn.Items.Clear();
-      if (Content.ConstrainedValue != null) {
-        IStringConvertibleMatrix matrix = (IStringConvertibleMatrix)Content.ConstrainedValue;
-        foreach (string columnName in matrix.ColumnNames) {
-          IEnumerable<Type> dataTypes = Content.ConstrainedValue.GetDataType(columnName);
-          if (dataTypes.Count() == 1) {
-            Type dataType = dataTypes.First();
-            if (typeof(IStringConvertibleValue).IsAssignableFrom(dataType) && typeof(IComparable).IsAssignableFrom(dataType))
-              this.cmbConstraintColumn.Items.Add(columnName);
-          }
-        }
-        if (Content.ConstraintColumn >= 0) {
-          this.cmbConstraintColumn.SelectedItem = (matrix.ColumnNames.ElementAt(Content.ConstraintColumn));
-          if (Content.ConstraintData != null)
-            txtConstraintData.Text = Content.ConstraintData.GetValue();
-          else
-            this.Content_ConstraintColumnChanged(cmbConstraintColumn, EventArgs.Empty);
-        }
-      }
-    }
-
-    protected override void Content_ConstraintColumnChanged(object sender, EventArgs e) {
-      base.Content_ConstraintColumnChanged(sender, e);
-      this.Content.ConstraintData = (IStringConvertibleValue)Activator.CreateInstance(Content.ConstrainedValue.GetDataType(cmbConstraintColumn.SelectedItem.ToString()).First());
-    }
-
-    protected override void SetEnabledStateOfControls() {
-      base.SetEnabledStateOfControls();
-      txtConstraintData.ReadOnly = Content == null || this.ReadOnly;
-    }
-
-    protected virtual void Content_ConstraintDataChanged(object sender, EventArgs e) {
-      if (Content.ConstraintData != null)
-        txtConstraintData.Text = Content.ConstraintData.GetValue();
-      else
-        txtConstraintData.Text = string.Empty;
-    }
-
-    private void txtConstraintData_Validated(object sender, EventArgs e) {
-      IStringConvertibleValue value = (IStringConvertibleValue)Activator.CreateInstance(Content.ConstrainedValue.GetDataType(cmbConstraintColumn.SelectedItem.ToString()).First());
-      value.SetValue(txtConstraintData.Text);
-      Content.ConstraintData = value;
-    }
-
-    private void txtConstraintData_Validating(object sender, CancelEventArgs e) {
-      string errorMessage = string.Empty;
-      if (!Content.ConstraintData.Validate(txtConstraintData.Text, out errorMessage)) {
-        errorProvider.SetError(txtConstraintData, errorMessage);
-        e.Cancel = true;
-      } else
-        errorProvider.Clear();
-    }
-  }
-}
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionComparisonConstraintView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionComparisonConstraintView.Designer.cs	(revision 3718)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionComparisonConstraintView.Designer.cs	(revision 3718)
@@ -0,0 +1,70 @@
+﻿namespace HeuristicLab.Optimization.Views {
+  partial class RunCollectionComparisonConstraintView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.components = new System.ComponentModel.Container();
+      this.txtConstraintData = new System.Windows.Forms.TextBox();
+      this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+      this.SuspendLayout();
+      // 
+      // txtConstraintData
+      // 
+      this.txtConstraintData.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.errorProvider.SetIconAlignment(this.txtConstraintData, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.errorProvider.SetIconPadding(this.txtConstraintData, 2);
+      this.txtConstraintData.Location = new System.Drawing.Point(127, 56);
+      this.txtConstraintData.Name = "txtConstraintData";
+      this.txtConstraintData.Size = new System.Drawing.Size(246, 20);
+      this.txtConstraintData.TabIndex = 9;
+      this.txtConstraintData.Validated += new System.EventHandler(this.txtConstraintData_Validated);
+      this.txtConstraintData.Validating += new System.ComponentModel.CancelEventHandler(this.txtConstraintData_Validating);
+      // 
+      // errorProvider
+      // 
+      this.errorProvider.ContainerControl = this;
+      // 
+      // RunCollectionComparisonConstraintView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.txtConstraintData);
+      this.errorProvider.SetIconAlignment(this, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.Name = "RunCollectionComparisonConstraintView";
+      this.Controls.SetChildIndex(this.txtConstraintData, 0);
+      this.Controls.SetChildIndex(this.cmbConstraintOperation, 0);
+      this.Controls.SetChildIndex(this.cmbConstraintColumn, 0);
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.TextBox txtConstraintData;
+    private System.Windows.Forms.ErrorProvider errorProvider;
+  }
+}
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionComparisonConstraintView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionComparisonConstraintView.cs	(revision 3718)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionComparisonConstraintView.cs	(revision 3718)
@@ -0,0 +1,96 @@
+﻿using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.MainForm;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.Optimization.Views {
+  [Content(typeof(RunCollectionComparisonConstraint), true)]
+  public partial class RunCollectionComparisonConstraintView : RunCollectionConstraintView {
+    public RunCollectionComparisonConstraintView() {
+      InitializeComponent();
+    }
+
+    public new RunCollectionComparisonConstraint Content {
+      get { return (RunCollectionComparisonConstraint)base.Content; }
+      set { base.Content = value; }
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content == null || Content.ConstraintData == null)
+        this.txtConstraintData.Text = string.Empty;
+      else
+        this.txtConstraintData.Text = Content.ConstraintData.GetValue();
+    }
+
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.ConstraintDataChanged += new EventHandler(Content_ConstraintDataChanged);
+    }
+
+    protected override void DeregisterContentEvents() {
+      base.DeregisterContentEvents();
+      Content.ConstraintDataChanged -= new EventHandler(Content_ConstraintDataChanged);
+    }
+
+    protected override void UpdateColumnComboBox() {
+      this.cmbConstraintColumn.Items.Clear();
+      if (Content.ConstrainedValue != null) {
+        IStringConvertibleMatrix matrix = (IStringConvertibleMatrix)Content.ConstrainedValue;
+        foreach (string columnName in matrix.ColumnNames) {
+          IEnumerable<Type> dataTypes = Content.ConstrainedValue.GetDataType(columnName);
+          if (dataTypes.Count() == 1) {
+            Type dataType = dataTypes.First();
+            if (typeof(IStringConvertibleValue).IsAssignableFrom(dataType) && typeof(IComparable).IsAssignableFrom(dataType))
+              this.cmbConstraintColumn.Items.Add(columnName);
+          }
+        }
+         if (!string.IsNullOrEmpty(Content.ConstraintColumn)) {
+          this.cmbConstraintColumn.SelectedItem = Content.ConstraintColumn;
+          if (Content.ConstraintData != null)
+            txtConstraintData.Text = Content.ConstraintData.GetValue();
+          else
+            this.Content_ConstraintColumnChanged(cmbConstraintColumn, EventArgs.Empty);
+        }
+      }
+    }
+
+    protected override void Content_ConstraintColumnChanged(object sender, EventArgs e) {
+      base.Content_ConstraintColumnChanged(sender, e);
+      this.Content.ConstraintData = (IStringConvertibleValue)Activator.CreateInstance(Content.ConstrainedValue.GetDataType(cmbConstraintColumn.SelectedItem.ToString()).First());
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      txtConstraintData.ReadOnly = Content == null || this.ReadOnly;
+    }
+
+    protected virtual void Content_ConstraintDataChanged(object sender, EventArgs e) {
+      if (Content.ConstraintData != null)
+        txtConstraintData.Text = Content.ConstraintData.GetValue();
+      else
+        txtConstraintData.Text = string.Empty;
+    }
+
+    private void txtConstraintData_Validated(object sender, EventArgs e) {
+      IStringConvertibleValue value = (IStringConvertibleValue)Activator.CreateInstance(Content.ConstrainedValue.GetDataType(cmbConstraintColumn.SelectedItem.ToString()).First());
+      value.SetValue(txtConstraintData.Text);
+      Content.ConstraintData = value;
+    }
+
+    private void txtConstraintData_Validating(object sender, CancelEventArgs e) {
+      string errorMessage = string.Empty;
+      if (!Content.ConstraintData.Validate(txtConstraintData.Text, out errorMessage)) {
+        errorProvider.SetError(txtConstraintData, errorMessage);
+        e.Cancel = true;
+      } else
+        errorProvider.Clear();
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintView.cs	(revision 3717)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintView.cs	(revision 3718)
@@ -46,6 +46,6 @@
       if (Content.ConstrainedValue != null) {
         this.cmbConstraintColumn.Items.AddRange(((IStringConvertibleMatrix)Content.ConstrainedValue).ColumnNames.ToArray());
-        if (Content.ConstraintColumn >= 0)
-          this.cmbConstraintColumn.SelectedItem = ((IStringConvertibleMatrix)Content.ConstrainedValue).ColumnNames.ElementAt(Content.ConstraintColumn);
+        if (!string.IsNullOrEmpty(Content.ConstraintColumn))
+          this.cmbConstraintColumn.SelectedItem = Content.ConstraintColumn;
       }
     }
@@ -87,12 +87,11 @@
     protected virtual void Content_ConstraintColumnChanged(object sender, EventArgs e) {
       if (Content.ConstrainedValue != null) {
-        string columnName = ((IStringConvertibleMatrix)Content.ConstrainedValue).ColumnNames.ElementAt(Content.ConstraintColumn);
-        if (cmbConstraintColumn.SelectedItem.ToString() != columnName)
-          cmbConstraintColumn.SelectedItem = columnName;
+        if (cmbConstraintColumn.SelectedItem.ToString() != Content.ConstraintColumn)
+          cmbConstraintColumn.SelectedItem = Content.ConstraintColumn;
       }
     }
     private void cmbConstraintColumn_SelectedIndexChanged(object sender, EventArgs e) {
       if (Content.ConstrainedValue != null) {
-        Content.ConstraintColumn = ((IStringConvertibleMatrix)Content.ConstrainedValue).ColumnNames.ToList().IndexOf(cmbConstraintColumn.SelectedItem.ToString());
+        Content.ConstraintColumn = (string) cmbConstraintColumn.SelectedItem;
       }
     }
