Index: unk/sources/HeuristicLab.Core.Views/3.3/ConstraintCollectionView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/ConstraintCollectionView.Designer.cs	(revision 3612)
+++ 	(revision )
@@ -1,33 +1,0 @@
-﻿namespace HeuristicLab.Core.Views {
-  partial class ConstraintCollectionView {
-    /// <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) {
-        if (createParameterDialog != null) createParameterDialog.Dispose();
-        if (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() {
-      components = new System.ComponentModel.Container();
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-    }
-
-    #endregion
-  }
-}
Index: unk/sources/HeuristicLab.Core.Views/3.3/ConstraintCollectionView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/ConstraintCollectionView.cs	(revision 3612)
+++ 	(revision )
@@ -1,61 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Windows.Forms;
-using HeuristicLab.Collections;
-using HeuristicLab.MainForm;
-
-namespace HeuristicLab.Core.Views {
-  [View("ConstraintCollection View")]
-  [Content(typeof(ConstraintCollection), true)]
-  [Content(typeof(IItemCollection<IConstraint>), false)]
-  public partial class ConstraintCollectionView : ItemCollectionView<IConstraint> {
-    protected CreateParameterDialog createParameterDialog;
-    /// <summary>
-    /// Initializes a new instance of <see cref="VariablesScopeView"/> with caption "Variables Scope View".
-    /// </summary>
-    public ConstraintCollectionView() {
-      InitializeComponent();
-      Caption = "ConstraintCollection";
-      itemsGroupBox.Text = "Constraints";
-    }
-
-    protected override IConstraint CreateItem() {
-      if (typeSelectorDialog == null) {
-        typeSelectorDialog = new TypeSelectorDialog();
-        typeSelectorDialog.Caption = "Select Constraint";
-        typeSelectorDialog.TypeSelector.Caption = "Available Constraints";
-        typeSelectorDialog.TypeSelector.Configure(typeof(IConstraint), false, true);
-      }
-
-      if (typeSelectorDialog.ShowDialog(this) == DialogResult.OK) {
-        try {
-          return (IConstraint)typeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType();
-        }
-        catch (Exception ex) {
-          Auxiliary.ShowErrorMessageBox(ex);
-        }
-      }
-      return null;
-    }
-  }
-}
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj	(revision 3612)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj	(revision 3613)
@@ -105,10 +105,4 @@
       <DependentUpon>CheckedItemListView.cs</DependentUpon>
     </Compile>
-    <Compile Include="ConstraintCollectionView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="ConstraintCollectionView.Designer.cs">
-      <DependentUpon>ConstraintCollectionView.cs</DependentUpon>
-    </Compile>
     <Compile Include="LogView.cs">
       <SubType>UserControl</SubType>
Index: /trunk/sources/HeuristicLab.Core/3.3/Constraints/ComparisonConstraint.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core/3.3/Constraints/ComparisonConstraint.cs	(revision 3612)
+++ /trunk/sources/HeuristicLab.Core/3.3/Constraints/ComparisonConstraint.cs	(revision 3613)
@@ -44,5 +44,5 @@
 
     public override IEnumerable<ConstraintOperation> AllowedConstraintOperations {
-      get { return new ConstraintOperation[6] { ConstraintOperation.Equal, ConstraintOperation.NotEqual, ConstraintOperation.Lesser, ConstraintOperation.LesserOrEqual, ConstraintOperation.Greater, ConstraintOperation.GreaterOrEqual }; }
+      get { return new ConstraintOperation[6] { ConstraintOperation.Lesser, ConstraintOperation.LesserOrEqual, ConstraintOperation.Equal, ConstraintOperation.GreaterOrEqual, ConstraintOperation.Greater, ConstraintOperation.NotEqual }; }
     }
 
Index: /trunk/sources/HeuristicLab.Core/3.3/Constraints/Constraint.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core/3.3/Constraints/Constraint.cs	(revision 3612)
+++ /trunk/sources/HeuristicLab.Core/3.3/Constraints/Constraint.cs	(revision 3613)
@@ -32,4 +32,6 @@
     protected Constraint() {
       this.Active = false;
+      if (AllowedConstraintOperations != null && AllowedConstraintOperations.Count() != 0)
+        this.ConstraintOperation = AllowedConstraintOperations.ElementAt(0);
     }
     [StorableConstructor]
@@ -65,9 +67,10 @@
     public IItem ConstrainedValue {
       get { return this.constrainedValue; }
-      protected set {
+      set {
         if (value == null)
           throw new ArgumentNullException("Constraint value cannot be null.");
         if (this.constrainedValue != value) {
           this.constrainedValue = value;
+          this.OnConstrainedValueChanged();
           this.OnToStringChanged();
         }
@@ -138,5 +141,12 @@
       EventHandler handler = ActiveChanged;
       if (handler != null)
-        ActiveChanged(this, EventArgs.Empty);
+        handler(this, EventArgs.Empty);
+    }
+
+    public event EventHandler ConstrainedValueChanged;
+    protected virtual void OnConstrainedValueChanged() {
+      EventHandler handler = ConstrainedValueChanged;
+      if (handler != null)
+        handler(this, EventArgs.Empty);
     }
 
@@ -145,5 +155,5 @@
       EventHandler handler = ConstraintDataChanged;
       if (handler != null)
-        ActiveChanged(this, EventArgs.Empty);
+        handler(this, EventArgs.Empty);
     }
 
@@ -152,5 +162,5 @@
       EventHandler handler = ConstraintOperationChanged;
       if (handler != null)
-        ActiveChanged(this, EventArgs.Empty);
+        handler(this, EventArgs.Empty);
     }
     #endregion
@@ -158,12 +168,11 @@
     #region overriden item methods
     public override string ToString() {
-      IItem constrainedValue = GetConstrainedMember();
+      IItem constrainedMember = GetConstrainedMember();
       string s = string.Empty;
-      if (constrainedValue != null)
-        s += constrainedValue.ToString();
-      else
-        return "Could not determine constraint value.";
-
-      s += " " + ConstraintOperation.ToString() + " ";
+      if (constrainedMember != null)
+        s += constrainedMember.ToString() + " ";
+
+      if (constraintOperation != null)
+        s += ConstraintOperation.ToString() + " ";
 
       if (constraintData != null)
@@ -178,5 +187,5 @@
     public override IDeepCloneable Clone(HeuristicLab.Common.Cloner cloner) {
       Constraint clone = (Constraint)base.Clone(cloner);
-      clone.constrainedValue = (IItem)cloner.Clone(this.constrainedValue);
+      clone.constrainedValue = null;  //mkommend: intentional set to null and must be reset in the clone
 
       IItem constraintDataItem = this.constraintData as IItem;
Index: /trunk/sources/HeuristicLab.Core/3.3/Constraints/IConstraint.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core/3.3/Constraints/IConstraint.cs	(revision 3612)
+++ /trunk/sources/HeuristicLab.Core/3.3/Constraints/IConstraint.cs	(revision 3613)
@@ -26,7 +26,7 @@
 
 namespace HeuristicLab.Core {
-  public interface IConstraint: IItem{
+  public interface IConstraint : IItem {
     bool Active { get; set; }
-    IItem ConstrainedValue { get;}
+    IItem ConstrainedValue { get; set; }
     ConstraintOperation ConstraintOperation { get; set; }
     IEnumerable<ConstraintOperation> AllowedConstraintOperations { get; }
@@ -36,4 +36,5 @@
 
     event EventHandler ActiveChanged;
+    event EventHandler ConstrainedValueChanged;
     event EventHandler ConstraintDataChanged;
     event EventHandler ConstraintOperationChanged;
