Index: trunk/sources/HeuristicLab.Constraints/3.2/AllSubOperatorsTypeConstraint.cs
===================================================================
--- trunk/sources/HeuristicLab.Constraints/3.2/AllSubOperatorsTypeConstraint.cs	(revision 1927)
+++ 	(revision )
@@ -1,162 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.Collections.Generic;
-using System.Text;
-using HeuristicLab.Core;
-using HeuristicLab.Data;
-using System.Xml;
-using System.Diagnostics;
-
-namespace HeuristicLab.Constraints {
-  /// <summary>
-  /// Constraint where all sub-operators have to be elements of a pre-defined group.
-  /// </summary>
-  public class AllSubOperatorsTypeConstraint : ConstraintBase {
-
-    private SubOperatorTypeConstraint groupConstraint;
-    /// <summary>
-    /// Gets all allowed sub-operators.
-    /// </summary>
-    public IList<IOperator> AllowedSubOperators {
-      get {
-        return groupConstraint.AllowedSubOperators;
-      }
-    }
-
-    /// <inheritdoc select="summary"/>
-    public override string Description {
-      get { return "All sub-operators have to be elements of a pre-defined group."; }
-    }
-
-    /// <summary>
-    /// Initializes a new instance of <see cref="AllSubOperatorsTypeConstraint"/>.
-    /// </summary>
-    public AllSubOperatorsTypeConstraint()
-      : base() {
-      groupConstraint = new SubOperatorTypeConstraint();
-    }
-
-    /// <summary>
-    /// Adds the given operator to the constraint.
-    /// </summary>
-    /// <remarks>Calls <see cref="ItemBase.FireChanged"/> of base class 
-    /// <see cref="ConstraintBase"/>.</remarks>
-    /// <param name="op">The operator to add.</param>
-    public void AddOperator(IOperator op) {
-      groupConstraint.AddOperator(op);
-      FireChanged();
-    }
-
-    /// <summary>
-    /// Removes the given operator from the contraint.
-    /// </summary>
-    /// <remarks>Calls <see cref="ItemBase.FireChanged"/> of base class 
-    /// <see cref="ConstraintBase"/>.</remarks>
-    /// <param name="op">The operator to remove.</param>
-    public void RemoveOperator(IOperator op) {
-      groupConstraint.RemoveOperator(op);
-      FireChanged();
-    }
-
-    /// <summary>
-    /// Checks whether the given element fulfills the current constraint.
-    /// </summary>
-    /// <param name="data">The item to check.</param>
-    /// <returns><c>true</c> if the constraint could be fulfilled, <c>false</c> otherwise.</returns>
-    public override bool Check(IItem data) {
-      IOperator op = data as IOperator;
-      if(data == null) return false;
-
-      for(int i = 0; i < op.SubOperators.Count; i++) {
-        groupConstraint.SubOperatorIndex.Data = i;
-        if(groupConstraint.Check(data) == false) {
-          return false;
-        }
-      }
-      return true;
-    }
-
-    /// <summary>
-    /// Empties the current instance.
-    /// </summary>
-    public void Clear() {
-      groupConstraint.Clear();
-    }
-
-    /// <summary>
-    /// Clones the current instance (deep clone).
-    /// </summary>
-    /// <remarks>Deep clone through <see cref="Auxiliary.Clone"/> method of helper class 
-    /// <see cref="Auxiliary"/>.</remarks>
-    /// <param name="clonedObjects">Dictionary of all already clone objects. (Needed to avoid cycles.)</param>
-    /// <returns>The cloned object as <see cref="AllSubOperatorsTypeConstraint"/>.</returns>
-    public override object Clone(IDictionary<Guid, object> clonedObjects) {
-      AllSubOperatorsTypeConstraint clone = new AllSubOperatorsTypeConstraint();
-      clonedObjects.Add(Guid, clone);
-      clone.groupConstraint = (SubOperatorTypeConstraint)Auxiliary.Clone(groupConstraint, clonedObjects);
-      return clone;
-    }
-
-    /// <summary>
-    /// Creates a new instance of <see cref="AllSubOperatorsTypeConstraintView"/> to represent the current 
-    /// instance visually.
-    /// </summary>
-    /// <returns>The created view as <see cref="AllSubOperatorsTypeConstraintView"/>.</returns>
-    public override IView CreateView() {
-      return new AllSubOperatorsTypeConstraintView(groupConstraint);
-    }
-
-    #region persistence
-    /// <summary>
-    /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>.
-    /// </summary>
-    /// <remarks>The sub-operators are saved as a child node with tag name 
-    /// <c>SubOperatorsGroupConstraint</c>.</remarks>
-    /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param>
-    /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param>
-    /// <param name="persistedObjects">The dictionary of all already persisted objects. 
-    /// (Needed to avoid cycles.)</param>
-    /// <returns>The saved <see cref="XmlNode"/>.</returns>
-    public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {
-      XmlNode node = base.GetXmlNode(name, document, persistedObjects);
-      XmlNode subOperatorsNode = PersistenceManager.Persist("SubOperatorsGroupConstraint", groupConstraint, document, persistedObjects);
-      node.AppendChild(subOperatorsNode);
-
-      return node;
-    }
-
-    /// <summary>
-    /// Loads the persisted constraint from the specified <paramref name="node"/>.
-    /// </summary>
-    /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for 
-    /// more information.</remarks>
-    /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param>
-    /// <param name="restoredObjects">The dictionary of all already restored objects. 
-    /// (Needed to avoid cycles.)</param>
-    public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {
-      base.Populate(node, restoredObjects);
-      groupConstraint = (SubOperatorTypeConstraint)PersistenceManager.Restore(node.SelectSingleNode("SubOperatorsGroupConstraint"), restoredObjects);
-    }
-    #endregion persistence
-  }
-}
Index: trunk/sources/HeuristicLab.Constraints/3.2/AllSubOperatorsTypeConstraintView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Constraints/3.2/AllSubOperatorsTypeConstraintView.Designer.cs	(revision 1927)
+++ 	(revision )
@@ -1,113 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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
-
-namespace HeuristicLab.Constraints {
-  partial class AllSubOperatorsTypeConstraintView {
-    /// <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.groupBox = new System.Windows.Forms.GroupBox();
-      this.listView = new System.Windows.Forms.ListView();
-      this.removeButton = new System.Windows.Forms.Button();
-      this.groupBox.SuspendLayout();
-      this.SuspendLayout();
-      // 
-      // groupBox
-      // 
-      this.groupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.groupBox.Controls.Add(this.listView);
-      this.groupBox.Location = new System.Drawing.Point(0, 0);
-      this.groupBox.Name = "groupBox";
-      this.groupBox.Size = new System.Drawing.Size(463, 305);
-      this.groupBox.TabIndex = 0;
-      this.groupBox.TabStop = false;
-      this.groupBox.Text = "Allowed sub-operators";
-      // 
-      // listView
-      // 
-      this.listView.AllowDrop = true;
-      this.listView.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.listView.Location = new System.Drawing.Point(3, 16);
-      this.listView.Name = "listView";
-      this.listView.Size = new System.Drawing.Size(457, 286);
-      this.listView.TabIndex = 1;
-      this.listView.UseCompatibleStateImageBehavior = false;
-      this.listView.View = System.Windows.Forms.View.List;
-      this.listView.SelectedIndexChanged += new System.EventHandler(this.listView_SelectedIndexChanged);
-      this.listView.DragDrop += new System.Windows.Forms.DragEventHandler(this.listView_DragDrop);
-      this.listView.DragEnter += new System.Windows.Forms.DragEventHandler(this.listView_DragEnter);
-      this.listView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.listView_KeyDown);
-      this.listView.DragOver += new System.Windows.Forms.DragEventHandler(this.listView_DragOver);
-      // 
-      // removeButton
-      // 
-      this.removeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.removeButton.Location = new System.Drawing.Point(3, 311);
-      this.removeButton.Name = "removeButton";
-      this.removeButton.Size = new System.Drawing.Size(75, 23);
-      this.removeButton.TabIndex = 0;
-      this.removeButton.Text = "Remove";
-      this.removeButton.UseVisualStyleBackColor = true;
-      this.removeButton.Click += new System.EventHandler(this.removeButton_Click);
-      // 
-      // AllSubOperatorsTypeConstraintView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.removeButton);
-      this.Controls.Add(this.groupBox);
-      this.Name = "AllSubOperatorsTypeConstraintView";
-      this.Size = new System.Drawing.Size(463, 337);
-      this.groupBox.ResumeLayout(false);
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.GroupBox groupBox;
-    private System.Windows.Forms.Button removeButton;
-    private System.Windows.Forms.ListView listView;
-
-  }
-}
Index: trunk/sources/HeuristicLab.Constraints/3.2/AllSubOperatorsTypeConstraintView.cs
===================================================================
--- trunk/sources/HeuristicLab.Constraints/3.2/AllSubOperatorsTypeConstraintView.cs	(revision 1927)
+++ 	(revision )
@@ -1,166 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
-using System.Windows.Forms;
-using HeuristicLab.Core;
-
-namespace HeuristicLab.Constraints {
-  /// <summary>
-  /// The visual representation of the <see cref="AllSubOperatorsTypeConstraint"/>.
-  /// </summary>
-  public partial class AllSubOperatorsTypeConstraintView : ViewBase {
-    private SubOperatorTypeConstraint constraint = new SubOperatorTypeConstraint();
-
-    /// <summary>
-    /// Gets or sets the SubOperatorTypeConstraint to display.
-    /// </summary>
-    public SubOperatorTypeConstraint Constraint {
-      get { return constraint; }
-      set { 
-        constraint = value;
-        UpdateAllowedOperatorsList();
-      }
-    }
-
-    /// <summary>
-    /// Initializes a new instance of <see cref="AllSubOperatorsTypeConstraintView"/>.
-    /// </summary>
-    public AllSubOperatorsTypeConstraintView() {
-      InitializeComponent();
-    }
-
-    /// <summary>
-    /// Initializes a new instance of <see cref="AllSubOperatorsTypeConstraintView"/> with
-    /// the given <paramref name="constraint"/> to display.
-    /// </summary>
-    /// <param name="constraint">The constraint that should be displayed.</param>
-    public AllSubOperatorsTypeConstraintView(SubOperatorTypeConstraint constraint) {
-      this.constraint = constraint;
-      InitializeComponent();
-    }
-
-    private void UpdateAllowedOperatorsList() {
-      listView.Clear();
-      foreach(IOperator op in constraint.AllowedSubOperators) {
-        ListViewItem item = new ListViewItem();
-        item.Name = op.Name;
-        item.Text = op.Name;
-        item.Tag = op;
-        listView.Items.Add(item);
-      }
-      Refresh();
-    }
-
-    private void op_NameChanged(object sender, EventArgs e) {
-      IOperator srcOp = (IOperator)sender;
-
-      foreach(ListViewItem item in listView.Items) {
-        if(item.Tag == srcOp) {
-          item.Text = srcOp.Name;
-          item.Name = srcOp.Name;
-          break;
-        }
-      }
-      Refresh();
-    }
-
-    #region Key Events
-    private void listView_KeyDown(object sender, KeyEventArgs e) {
-      if(e.KeyCode == Keys.Delete) {
-        while(listView.SelectedIndices.Count > 0) {
-          constraint.RemoveOperator((IOperator)listView.SelectedItems[0].Tag);
-          listView.Items.RemoveAt(listView.SelectedIndices[0]);
-        }
-      }
-    }
-    #endregion
-
-    #region Drag Events
-    private void listView_DragDrop(object sender, DragEventArgs e) {
-      if(e.Effect != DragDropEffects.None) {
-        if(e.Data.GetDataPresent("IOperator")) {
-          IOperator op = (IOperator)e.Data.GetData("IOperator");
-          ListViewItem item = new ListViewItem();
-          item.Tag = op;
-          item.Name = op.Name;
-          item.Text = op.Name;
-          listView.Items.Add(item);
-          constraint.AddOperator(op);
-          op.NameChanged += new EventHandler(op_NameChanged);
-          listView.SelectedIndices.Clear();
-        }
-      }
-    }
-
-    private void listView_DragEnter(object sender, DragEventArgs e) {
-      this.FindForm().BringToFront();
-      this.Focus();
-      e.Effect = DragDropEffects.None;
-      if(e.Data.GetDataPresent("IOperator")) {
-        IOperator op = (IOperator)e.Data.GetData("IOperator");
-        if(!ListContains(op)) {
-          e.Effect = DragDropEffects.Copy;
-        }
-      }
-    }
-
-    private void listView_DragOver(object sender, DragEventArgs e) {
-      e.Effect = DragDropEffects.None;
-      if(e.Data.GetDataPresent("IOperator")) {
-        IOperator op = (IOperator)e.Data.GetData("IOperator");
-        if(!ListContains(op)) {
-          e.Effect = DragDropEffects.Copy;
-        }
-      }
-    }
-    #endregion
-
-    #region button events
-    private void removeButton_Click(object sender, EventArgs e) {
-      while(listView.SelectedIndices.Count > 0) {
-        constraint.RemoveOperator((IOperator)listView.SelectedItems[0].Tag);
-        listView.Items.RemoveAt(listView.SelectedIndices[0]);
-      }
-    }
-    #endregion
-
-    private bool ListContains(IOperator op) {
-      foreach(ListViewItem item in listView.Items) {
-        if(item.Tag == op) return true;
-      }
-      return false;
-    }
-
-    private void listView_SelectedIndexChanged(object sender, EventArgs e) {
-      if(listView.SelectedItems.Count > 0) {
-        removeButton.Enabled = true;
-      } else {
-        removeButton.Enabled = false;
-      }
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.Constraints/3.2/AllSubOperatorsTypeConstraintView.resx
===================================================================
--- trunk/sources/HeuristicLab.Constraints/3.2/AllSubOperatorsTypeConstraintView.resx	(revision 1927)
+++ 	(revision )
@@ -1,120 +1,0 @@
-<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>
Index: trunk/sources/HeuristicLab.Constraints/3.2/HeuristicLab.Constraints-3.2.csproj
===================================================================
--- trunk/sources/HeuristicLab.Constraints/3.2/HeuristicLab.Constraints-3.2.csproj	(revision 1927)
+++ trunk/sources/HeuristicLab.Constraints/3.2/HeuristicLab.Constraints-3.2.csproj	(revision 2222)
@@ -78,11 +78,4 @@
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="AllSubOperatorsTypeConstraint.cs" />
-    <Compile Include="AllSubOperatorsTypeConstraintView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="AllSubOperatorsTypeConstraintView.designer.cs">
-      <DependentUpon>AllSubOperatorsTypeConstraintView.cs</DependentUpon>
-    </Compile>
     <Compile Include="AndConstraint.cs" />
     <Compile Include="AndConstraintView.cs">
@@ -122,11 +115,4 @@
       <DependentUpon>NotConstraintView.cs</DependentUpon>
     </Compile>
-    <Compile Include="NumberOfSubOperatorsConstraint.cs" />
-    <Compile Include="NumberOfSubOperatorsConstraintView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="NumberOfSubOperatorsConstraintView.Designer.cs">
-      <DependentUpon>NumberOfSubOperatorsConstraintView.cs</DependentUpon>
-    </Compile>
     <Compile Include="OrConstraint.cs" />
     <Compile Include="OrConstraintView.cs">
@@ -135,12 +121,4 @@
     <Compile Include="OrConstraintView.Designer.cs">
       <DependentUpon>OrConstraintView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="SubOperatorsConstraintAnalyser.cs" />
-    <Compile Include="SubOperatorsTypeConstraint.cs" />
-    <Compile Include="SubOperatorsTypeConstraintView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="SubOperatorsTypeConstraintView.designer.cs">
-      <DependentUpon>SubOperatorsTypeConstraintView.cs</DependentUpon>
     </Compile>
     <Compile Include="HeuristicLabConstraintsPlugin.cs" />
@@ -173,8 +151,4 @@
   </ItemGroup>
   <ItemGroup>
-    <EmbeddedResource Include="AllSubOperatorsTypeConstraintView.resx">
-      <DependentUpon>AllSubOperatorsTypeConstraintView.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
     <EmbeddedResource Include="AndConstraintView.resx">
       <SubType>Designer</SubType>
@@ -197,15 +171,7 @@
       <SubType>Designer</SubType>
     </EmbeddedResource>
-    <EmbeddedResource Include="NumberOfSubOperatorsConstraintView.resx">
-      <SubType>Designer</SubType>
-      <DependentUpon>NumberOfSubOperatorsConstraintView.cs</DependentUpon>
-    </EmbeddedResource>
     <EmbeddedResource Include="OrConstraintView.resx">
       <SubType>Designer</SubType>
       <DependentUpon>OrConstraintView.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="SubOperatorsTypeConstraintView.resx">
-      <DependentUpon>SubOperatorsTypeConstraintView.cs</DependentUpon>
-      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="VariableComparisonConstraintView.resx">
Index: trunk/sources/HeuristicLab.Constraints/3.2/NumberOfSubOperatorsConstraint.cs
===================================================================
--- trunk/sources/HeuristicLab.Constraints/3.2/NumberOfSubOperatorsConstraint.cs	(revision 1927)
+++ 	(revision )
@@ -1,145 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.Collections.Generic;
-using System.Text;
-using HeuristicLab.Core;
-using System.Diagnostics;
-using HeuristicLab.Data;
-using System.Xml;
-
-namespace HeuristicLab.Constraints {
-  /// <summary>
-  /// Constraint where the number of sub-operators must be within a specific range.
-  /// </summary>
-  public class NumberOfSubOperatorsConstraint : ConstraintBase {
-    private IntData minOperators;
-    private IntData maxOperators;
-
-    /// <summary>
-    /// Gets the maximum number of sub-operators.
-    /// </summary>
-    public IntData MaxOperators {
-      get { return maxOperators; }
-    }
-
-    /// <summary>
-    /// Gets the minimum number of sub-operators.
-    /// </summary>
-    public IntData MinOperators {
-      get { return minOperators; }
-    }
-
-    /// <inheritdoc select="summary"/>
-    public override string Description {
-      get { return "Number of sub-operators has to be between " + MinOperators.ToString() + " and " + MaxOperators.ToString() + "."; }
-    }
-
-    /// <summary>
-    /// Initializes a new instance of <see cref="NumberOfSubOperatorsConstraint"/>.
-    /// </summary>
-    public NumberOfSubOperatorsConstraint()
-      : this(0,0) {
-    }
-
-    /// <summary>
-    /// Initializes a new instance of <see cref="NumberOfSubOperatorsConstraint"/> with the minimum and 
-    /// the maximum number of sub-operators.
-    /// </summary>
-    /// <param name="min">The minimum number of sub-operators.</param>
-    /// <param name="max">The maximum number of sub-operators.</param>
-    public NumberOfSubOperatorsConstraint(int min, int max) : base() {
-      minOperators = new IntData(min);
-      maxOperators = new IntData(max);
-    }
-
-    /// <summary>
-    /// Checks whether the given element fulfills the current constraint.
-    /// </summary>
-    /// <param name="data">The item to check.</param>
-    /// <returns><c>true</c> if the constraint could be fulfilled, <c>false</c> otherwise.</returns>
-    public override bool Check(IItem data) {
-      IOperator op = data as IOperator;
-      if (data == null) return false;
-
-      return (op.SubOperators.Count >= minOperators.Data && op.SubOperators.Count <= maxOperators.Data);
-    }
-
-    /// <summary>
-    /// Clones the current instance (deep clone).
-    /// </summary>
-    /// <param name="clonedObjects">Dictionary of all already clone objects. (Needed to avoid cycles.)</param>
-    /// <returns>The cloned object as <see cref="AndConstraint"/>.</returns>
-    public override object Clone(IDictionary<Guid, object> clonedObjects) {
-      NumberOfSubOperatorsConstraint clone = new NumberOfSubOperatorsConstraint();
-      clonedObjects.Add(Guid, clone);
-      clone.maxOperators.Data = maxOperators.Data;
-      clone.minOperators.Data = minOperators.Data;
-      return clone;
-    }
-
-    /// <summary>
-    /// Creates a new instance of <see cref="NumberOfSubOperatorsConstraintView"/> to represent the current 
-    /// instance visually.
-    /// </summary>
-    /// <returns>The created view as <see cref="NumberOfSubOperatorsConstraintView"/>.</returns>
-    public override IView CreateView() {
-      return new NumberOfSubOperatorsConstraintView(this);
-    }
-
-    #region persistence
-    /// <summary>
-    /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>.
-    /// </summary>
-    /// <remarks>The minimum and the maximum number of sub-operators are saved as child nodes with tag
-    /// names <c>min</c> and <c>max</c>.</remarks>
-    /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param>
-    /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param>
-    /// <param name="persistedObjects">The dictionary of all already persisted objects. 
-    /// (Needed to avoid cycles.)</param>
-    /// <returns>The saved <see cref="XmlNode"/>.</returns>
-    public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid,IStorable> persistedObjects) {
-      XmlNode node = base.GetXmlNode(name, document, persistedObjects);
-      XmlNode minNode = PersistenceManager.Persist("min", minOperators, document, persistedObjects);
-      XmlNode maxNode = PersistenceManager.Persist("max", maxOperators, document, persistedObjects);
-      node.AppendChild(minNode);
-      node.AppendChild(maxNode);
-      return node;
-    }
-
-    /// <summary>
-    /// Loads the persisted constraint from the specified <paramref name="node"/>.
-    /// </summary>
-    /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for 
-    /// more information.</remarks>
-    /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param>
-    /// <param name="restoredObjects">The dictionary of all already restored objects. 
-    /// (Needed to avoid cycles.)</param>
-    public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) {
-      base.Populate(node, restoredObjects);
-      minOperators = (IntData)PersistenceManager.Restore(node.SelectSingleNode("min"), restoredObjects);
-      maxOperators = (IntData)PersistenceManager.Restore(node.SelectSingleNode("max"), restoredObjects);
-    }
-    #endregion persistence
-
-  }
-}
Index: trunk/sources/HeuristicLab.Constraints/3.2/NumberOfSubOperatorsConstraintView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Constraints/3.2/NumberOfSubOperatorsConstraintView.Designer.cs	(revision 1927)
+++ 	(revision )
@@ -1,111 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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
-
-namespace HeuristicLab.Constraints {
-  partial class NumberOfSubOperatorsConstraintView {
-    /// <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.minDataView = new HeuristicLab.Data.IntDataView();
-      this.maxDataView = new HeuristicLab.Data.IntDataView();
-      this.minLabel = new System.Windows.Forms.Label();
-      this.maxLabel = new System.Windows.Forms.Label();
-      this.SuspendLayout();
-      // 
-      // minDataView
-      // 
-      this.minDataView.Caption = "View";
-      this.minDataView.IntData = null;
-      this.minDataView.Location = new System.Drawing.Point(36, 3);
-      this.minDataView.Name = "minDataView";
-      this.minDataView.Size = new System.Drawing.Size(265, 26);
-      this.minDataView.TabIndex = 0;
-      // 
-      // maxDataView
-      // 
-      this.maxDataView.Caption = "View";
-      this.maxDataView.IntData = null;
-      this.maxDataView.Location = new System.Drawing.Point(36, 32);
-      this.maxDataView.Name = "maxDataView";
-      this.maxDataView.Size = new System.Drawing.Size(265, 26);
-      this.maxDataView.TabIndex = 1;
-      // 
-      // minLabel
-      // 
-      this.minLabel.AutoSize = true;
-      this.minLabel.Location = new System.Drawing.Point(3, 3);
-      this.minLabel.Name = "minLabel";
-      this.minLabel.Size = new System.Drawing.Size(27, 13);
-      this.minLabel.TabIndex = 2;
-      this.minLabel.Text = "Min:";
-      // 
-      // maxLabel
-      // 
-      this.maxLabel.AutoSize = true;
-      this.maxLabel.Location = new System.Drawing.Point(3, 32);
-      this.maxLabel.Name = "maxLabel";
-      this.maxLabel.Size = new System.Drawing.Size(30, 13);
-      this.maxLabel.TabIndex = 3;
-      this.maxLabel.Text = "Max:";
-      // 
-      // NumberOfSubOperatorsConstraintView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.maxLabel);
-      this.Controls.Add(this.minLabel);
-      this.Controls.Add(this.maxDataView);
-      this.Controls.Add(this.minDataView);
-      this.Name = "NumberOfSubOperatorsConstraintView";
-      this.Size = new System.Drawing.Size(306, 61);
-      this.ResumeLayout(false);
-      this.PerformLayout();
-
-    }
-
-    #endregion
-
-    private HeuristicLab.Data.IntDataView minDataView;
-    private HeuristicLab.Data.IntDataView maxDataView;
-    private System.Windows.Forms.Label minLabel;
-    private System.Windows.Forms.Label maxLabel;
-  }
-}
Index: trunk/sources/HeuristicLab.Constraints/3.2/NumberOfSubOperatorsConstraintView.cs
===================================================================
--- trunk/sources/HeuristicLab.Constraints/3.2/NumberOfSubOperatorsConstraintView.cs	(revision 1927)
+++ 	(revision )
@@ -1,58 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
-using System.Windows.Forms;
-using HeuristicLab.Core;
-
-namespace HeuristicLab.Constraints {
-  /// <summary>
-  /// Visual representation of a <see cref="NumberOfSubOperatorsConstraint"/>.
-  /// </summary>
-  public partial class NumberOfSubOperatorsConstraintView : ViewBase {
-    private NumberOfSubOperatorsConstraint constraint;
-
-    /// <summary>
-    /// Initializes a new instance of <see cref="NumberOfSubOperatorsConstraintView"/>.
-    /// </summary>
-    public NumberOfSubOperatorsConstraintView() {
-      InitializeComponent();
-    }
-
-    /// <summary>
-    /// Initializes a new instance of <see cref="NumberOfSubOperatorsConstraintView"/>
-    /// with the given <paramref name="constraint"/> to display.
-    /// </summary>
-    /// <param name="constraint">The constraint to represent visually.</param>
-    public NumberOfSubOperatorsConstraintView(NumberOfSubOperatorsConstraint constraint) {
-      InitializeComponent();
-      this.constraint = constraint;
-
-      minDataView.IntData = constraint.MinOperators;
-      maxDataView.IntData = constraint.MaxOperators;
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.Constraints/3.2/NumberOfSubOperatorsConstraintView.resx
===================================================================
--- trunk/sources/HeuristicLab.Constraints/3.2/NumberOfSubOperatorsConstraintView.resx	(revision 1927)
+++ 	(revision )
@@ -1,120 +1,0 @@
-<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>
Index: trunk/sources/HeuristicLab.Constraints/3.2/SubOperatorsConstraintAnalyser.cs
===================================================================
--- trunk/sources/HeuristicLab.Constraints/3.2/SubOperatorsConstraintAnalyser.cs	(revision 1927)
+++ 	(revision )
@@ -1,186 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.Collections.Generic;
-using System.Text;
-using HeuristicLab.Core;
-using HeuristicLab.Constraints;
-using HeuristicLab.Data;
-
-namespace HeuristicLab.Constraints {
-  /// <summary>
-  /// Analyzes the sub-operators for specific constraints.
-  /// </summary>
-  public class SubOperatorsConstraintAnalyser {
-    private ICollection<IOperator> allPossibleOperators;
-
-    /// <summary>
-    /// Gets or sets all possible operators. 
-    /// </summary>
-    public ICollection<IOperator> AllPossibleOperators {
-      get { return allPossibleOperators; }
-      set { allPossibleOperators = value; }
-    }
-    
-    /// <summary>
-    /// Gets all operators that fulfill the expression of the constraints of the given operator. 
-    /// </summary>
-    /// <param name="op">The operator whose constraints to check.</param>
-    /// <param name="childIndex">The index of the child.</param>
-    /// <returns>All allowed operators.</returns>
-    public IList<IOperator> GetAllowedOperators(IOperator op, int childIndex) {
-      AndConstraint andConstraint = new AndConstraint();
-      foreach (IConstraint constraint in op.Constraints) {
-        andConstraint.Clauses.Add(constraint);
-      }
-
-      return GetAllowedOperators(andConstraint, childIndex);
-    }
-
-    private IList<IOperator> GetAllowedOperators(IConstraint constraint, int childIndex) {
-      // manual dispatch on dynamic type
-      if (constraint is AndConstraint)
-        return GetAllowedOperators((AndConstraint)constraint, childIndex);
-      else if (constraint is OrConstraint)
-        return GetAllowedOperators((OrConstraint)constraint, childIndex);
-      else if (constraint is NotConstraint)
-        return GetAllowedOperators((NotConstraint)constraint, childIndex);
-      else if (constraint is AllSubOperatorsTypeConstraint)
-        return GetAllowedOperators((AllSubOperatorsTypeConstraint)constraint, childIndex);
-      else if (constraint is SubOperatorTypeConstraint)
-        return GetAllowedOperators((SubOperatorTypeConstraint)constraint, childIndex);
-      else return new List<IOperator>(allPossibleOperators); // ignore all other constraints
-    }
-
-    #region static set management methods
-    // better to use HashSets from .NET 3.5
-    // however we would need to switch the whole Constraints project to .NET 3.5 for that
-    private static IList<IOperator> Intersect(ICollection<IOperator> a, ICollection<IOperator> b) {
-      if (a.Count > b.Count) {
-        return Intersect(b, a);
-      }
-
-      List<IOperator> intersection = new List<IOperator>(a.Count);
-
-      foreach (IOperator element in a) {
-        if (InSet(element, b)) {
-          intersection.Add(element);
-        }
-      }
-      return intersection;
-    }
-
-    private static IList<IOperator> Union(ICollection<IOperator> a, ICollection<IOperator> b) {
-      List<IOperator> union = new List<IOperator>(a);
-      foreach (IOperator candidateElement in b) {
-        if (!InSet(candidateElement, union)) {
-          union.Add(candidateElement);
-        }
-      }
-
-      return union;
-    }
-
-    private static IList<IOperator> Substract(ICollection<IOperator> minuend, ICollection<IOperator> subtrahend) {
-      List<IOperator> difference = new List<IOperator>();
-      foreach (IOperator element in minuend) {
-        if (!InSet(element, subtrahend)) {
-          difference.Add(element);
-        }
-      }
-
-      return difference;
-    }
-
-    private static bool InSet(IOperator op, ICollection<IOperator> set) {
-      foreach (IOperator element in set) {
-        if (element == op)
-          return true;
-      }
-      return false;
-    }
-    #endregion
-
-    /// <summary>
-    /// Gets all allowed operators that fulfill the expression of the given <c>AndConstraint</c>.
-    /// </summary>
-    /// <param name="constraint">The constraint that must be fulfilled.</param>
-    /// <param name="childIndex">The index of the child.</param>
-    /// <returns>All allowed operators.</returns>
-    public IList<IOperator> GetAllowedOperators(AndConstraint constraint, int childIndex) {
-      IList<IOperator> allowedOperators = new List<IOperator>(allPossibleOperators);
-      // keep only the intersection of all subconstraints
-      foreach (ConstraintBase clause in constraint.Clauses) {
-        allowedOperators = Intersect(allowedOperators, GetAllowedOperators(clause, childIndex));
-      }
-      return allowedOperators;
-    }
-
-    /// <summary>
-    /// Gets all allowed operators that fulfill the expression of the given <c>OrConstraint</c>.
-    /// </summary>
-    /// <param name="constraint">The constraint that must be fulfilled.</param>
-    /// <param name="childIndex">The index of the child.</param>
-    /// <returns>All allowed operators.</returns>
-    public IList<IOperator> GetAllowedOperators(OrConstraint constraint, int childIndex) {
-      IList<IOperator> allowedOperators = new List<IOperator>();
-      foreach (ConstraintBase clause in constraint.Clauses) {
-        allowedOperators = Union(allowedOperators, GetAllowedOperators(clause, childIndex));
-      }
-      return allowedOperators;
-    }
-
-    /// <summary>
-    /// Gets all allowed operators that fulfill the expression of the given <c>NotConstraint</c>.
-    /// </summary>
-    /// <param name="constraint">The constraint that must be fulfilled.</param>
-    /// <param name="childIndex">The index of the child.</param>
-    /// <returns>All allowed operators.</returns>
-    public IList<IOperator> GetAllowedOperators(NotConstraint constraint, int childIndex) {
-      return Substract(allPossibleOperators, GetAllowedOperators(constraint.SubConstraint, childIndex));
-    }
-
-    /// <summary>
-    /// Gets all allowed operators that fulfill the expression of the given <c>AllSubOperatorsTypeConstraint</c>.
-    /// </summary>
-    /// <param name="constraint">The constraint that must be fulfilled.</param>
-    /// <param name="childIndex">The index of the child.</param>
-    /// <returns>All allowed operators.</returns>
-    public IList<IOperator> GetAllowedOperators(AllSubOperatorsTypeConstraint constraint, int childIndex) {
-      return Intersect(allPossibleOperators, constraint.AllowedSubOperators);
-    }
-
-    /// <summary>
-    /// Gets all allowed operators that fulfill the expression of the given <c>SubOperatorTypeConstraint</c>.
-    /// </summary>
-    /// <param name="constraint">The constraint that must be fulfilled.</param>
-    /// <param name="childIndex">The index of the child.</param>
-    /// <returns>All allowed operators.</returns>
-    public IList<IOperator> GetAllowedOperators(SubOperatorTypeConstraint constraint, int childIndex) {
-      if (childIndex != constraint.SubOperatorIndex.Data) {
-        return new List<IOperator>(allPossibleOperators);
-      } else {
-        return Intersect(allPossibleOperators, constraint.AllowedSubOperators);
-      }
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.Constraints/3.2/SubOperatorsTypeConstraint.cs
===================================================================
--- trunk/sources/HeuristicLab.Constraints/3.2/SubOperatorsTypeConstraint.cs	(revision 1927)
+++ 	(revision )
@@ -1,191 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.Collections.Generic;
-using System.Text;
-using HeuristicLab.Core;
-using HeuristicLab.Data;
-using System.Diagnostics;
-using System.Xml;
-
-namespace HeuristicLab.Constraints {
-  /// <summary>
-  /// Constraint where the sub-operator at a specific index has to be an element of a pre-defined group.
-  /// </summary>
-  public class SubOperatorTypeConstraint : ConstraintBase {
-    private IntData subOperatorIndex;
-    /// <summary>
-    /// Gets the index of the sub-operator.
-    /// </summary>
-    public IntData SubOperatorIndex {
-      get { return subOperatorIndex; }
-    }
-
-    private List<IOperator> subOperators;
-    /// <summary>
-    /// Gets all allowed sub-operators.
-    /// </summary>
-    public IList<IOperator> AllowedSubOperators {
-      get {
-        return subOperators.AsReadOnly();
-      }
-    }
-
-    ///<inheritdoc select="summary"/>
-    public override string Description {
-      get { return "The sub-operator at a specific index has to be an element of a pre-defined group."; }
-    }
-
-    /// <summary>
-    /// Initializes a new instance of <see cref="SubOperatorTypeConstraint"/>.
-    /// </summary>
-    public SubOperatorTypeConstraint()
-      : base() {
-      subOperatorIndex = new IntData(0);
-      subOperators = new List<IOperator>();
-    }
-
-    /// <summary>
-    /// Initializes a new instance of <see cref="SubOperatorTypeConstraint"/> with the given
-    /// <paramref name="index"/>.
-    /// </summary>
-    /// <param name="index">The index of the sub-operator.</param>
-    public SubOperatorTypeConstraint(int index) : base() {
-      subOperatorIndex = new IntData(index);
-      subOperators = new List<IOperator>();
-    }
-
-    /// <summary>
-    /// Adds the given operator to the list of sub-operators.
-    /// </summary>
-    /// <remarks>Calls <see cref="ItemBase.FireChanged"/> of base class <see cref="ConstraintBase"/>.</remarks>
-    /// <param name="op">The operator to add.</param>
-    public void AddOperator(IOperator op) {
-      if(!subOperators.Contains(op)) {
-        subOperators.Add(op);
-        FireChanged();
-      }
-    }
-
-    /// <summary>
-    /// Removes the given operator from the list of sub-operators.
-    /// </summary>
-    /// <remarks>Calls <see cref="ItemBase.FireChanged"/> of base class <see cref="ConstraintBase"/>.</remarks>
-    /// <param name="op">The operator to remove.</param>
-    public void RemoveOperator(IOperator op) {
-      if(subOperators.Contains(op)) {
-        subOperators.Remove(op);
-        FireChanged();
-      }
-    }
-
-    /// <summary>
-    /// Empties the list of sub-operators.
-    /// </summary>
-    public void Clear() {
-      subOperators.Clear();
-    }
-
-    /// <summary>
-    /// Checks whether the given element fulfills the current constraint.
-    /// </summary>
-    /// <param name="data">The item to check.</param>
-    /// <returns><c>true</c> if the constraint could be fulfilled, <c>false</c> otherwise.</returns>
-    public override bool Check(IItem data) {
-      IOperator op = data as IOperator;
-      if(data == null) return false;
-
-      if(op.SubOperators.Count <= subOperatorIndex.Data) {
-        return false;
-      }
-      return subOperators.Contains(op.SubOperators[subOperatorIndex.Data]);
-    }
-
-    /// <summary>
-    /// Clones the current instance (deep clone).
-    /// </summary>
-    /// <remarks>Deep clone through <see cref="Auxiliary.Clone"/> method of helper class 
-    /// <see cref="Auxiliary"/>.</remarks>
-    /// <param name="clonedObjects">Dictionary of all already clone objects. (Needed to avoid cycles.)</param>
-    /// <returns>The cloned object as <see cref="SubOperatorTypeConstraint"/>.</returns>
-    public override object Clone(IDictionary<Guid, object> clonedObjects) {
-      SubOperatorTypeConstraint clone = new SubOperatorTypeConstraint();
-      clonedObjects.Add(Guid, clone);
-      clone.subOperatorIndex.Data = subOperatorIndex.Data;
-      foreach(IOperator op in subOperators) {
-        clone.AddOperator((IOperator)Auxiliary.Clone(op, clonedObjects));
-      }
-      return clone;
-    }
-
-    /// <summary>
-    /// Creates a new instance of <see cref="SubOperatorsTypeConstraintView"/> to represent the current 
-    /// instance visually.
-    /// </summary>
-    /// <returns>The created view as <see cref="SubOperatorsTypeConstraintView"/>.</returns>
-    public override IView CreateView() {
-      return new SubOperatorsTypeConstraintView(this);
-    }
-
-    #region persistence
-    /// <summary>
-    /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>.
-    /// </summary>
-    /// <remarks>The index and the list of sub-operators are saved as child nodes with tag names 
-    /// <c>SubOperatorIndex</c> and <c>AllowedSubOperators</c>.</remarks>
-    /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param>
-    /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param>
-    /// <param name="persistedObjects">The dictionary of all already persisted objects. 
-    /// (Needed to avoid cycles.)</param>
-    /// <returns>The saved <see cref="XmlNode"/>.</returns>
-    public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {
-      XmlNode node = base.GetXmlNode(name, document, persistedObjects);
-      XmlNode indexNode = PersistenceManager.Persist("SubOperatorIndex", subOperatorIndex, document, persistedObjects);
-      node.AppendChild(indexNode);
-      XmlNode listNode = document.CreateNode(XmlNodeType.Element, "AllowedSubOperators", document.NamespaceURI);
-      foreach(IOperator op in subOperators) {
-        XmlNode opNode = PersistenceManager.Persist(op, document, persistedObjects);
-        listNode.AppendChild(opNode);
-      }
-      node.AppendChild(listNode);
-      return node;
-    }
-
-    /// <summary>
-    /// Loads the persisted constraint from the specified <paramref name="node"/>.
-    /// </summary>
-    /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for 
-    /// more information.</remarks>
-    /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param>
-    /// <param name="restoredObjects">The dictionary of all already restored objects. 
-    /// (Needed to avoid cycles.)</param>
-    public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {
-      base.Populate(node, restoredObjects);
-      subOperatorIndex = (IntData)PersistenceManager.Restore(node.SelectSingleNode("SubOperatorIndex"), restoredObjects);
-      subOperators = new List<IOperator>();
-      foreach(XmlNode childNode in node.SelectSingleNode("AllowedSubOperators").ChildNodes) {
-        subOperators.Add((IOperator)PersistenceManager.Restore(childNode, restoredObjects));
-      }
-    }
-    #endregion persistence
-  }
-}
Index: trunk/sources/HeuristicLab.Constraints/3.2/SubOperatorsTypeConstraintView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Constraints/3.2/SubOperatorsTypeConstraintView.Designer.cs	(revision 1927)
+++ 	(revision )
@@ -1,101 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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
-
-namespace HeuristicLab.Constraints {
-  partial class SubOperatorsTypeConstraintView {
-    /// <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.indexDataView = new HeuristicLab.Data.IntDataView();
-      this.indexLabel = new System.Windows.Forms.Label();
-      this.allSubOperatorsTypeConstraintView = new HeuristicLab.Constraints.AllSubOperatorsTypeConstraintView();
-      this.SuspendLayout();
-      // 
-      // indexDataView
-      // 
-      this.indexDataView.Caption = "View";
-      this.indexDataView.IntData = null;
-      this.indexDataView.Location = new System.Drawing.Point(109, 3);
-      this.indexDataView.Name = "indexDataView";
-      this.indexDataView.Size = new System.Drawing.Size(265, 26);
-      this.indexDataView.TabIndex = 1;
-      // 
-      // indexLabel
-      // 
-      this.indexLabel.AutoSize = true;
-      this.indexLabel.Location = new System.Drawing.Point(4, 4);
-      this.indexLabel.Name = "indexLabel";
-      this.indexLabel.Size = new System.Drawing.Size(99, 13);
-      this.indexLabel.TabIndex = 2;
-      this.indexLabel.Text = "Sub-operator index:";
-      // 
-      // allSubOperatorsTypeConstraintView
-      // 
-      this.allSubOperatorsTypeConstraintView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.allSubOperatorsTypeConstraintView.Caption = "View";
-      this.allSubOperatorsTypeConstraintView.Location = new System.Drawing.Point(0, 35);
-      this.allSubOperatorsTypeConstraintView.Name = "allSubOperatorsTypeConstraintView";
-      this.allSubOperatorsTypeConstraintView.Size = new System.Drawing.Size(492, 337);
-      this.allSubOperatorsTypeConstraintView.TabIndex = 3;
-      // 
-      // SubOperatorsTypeConstraintView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.allSubOperatorsTypeConstraintView);
-      this.Controls.Add(this.indexLabel);
-      this.Controls.Add(this.indexDataView);
-      this.Name = "SubOperatorsTypeConstraintView";
-      this.Size = new System.Drawing.Size(496, 377);
-      this.ResumeLayout(false);
-      this.PerformLayout();
-
-    }
-
-    #endregion
-
-    private HeuristicLab.Data.IntDataView indexDataView;
-    private System.Windows.Forms.Label indexLabel;
-    private AllSubOperatorsTypeConstraintView allSubOperatorsTypeConstraintView;
-  }
-}
Index: trunk/sources/HeuristicLab.Constraints/3.2/SubOperatorsTypeConstraintView.cs
===================================================================
--- trunk/sources/HeuristicLab.Constraints/3.2/SubOperatorsTypeConstraintView.cs	(revision 1927)
+++ 	(revision )
@@ -1,58 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
-using System.Windows.Forms;
-using HeuristicLab.Core;
-
-namespace HeuristicLab.Constraints {
-  /// <summary>
-  /// The visual representation of a <see cref="SubOperatorTypeConstraint"/>.
-  /// </summary>
-  public partial class SubOperatorsTypeConstraintView : ViewBase {
-    private SubOperatorTypeConstraint constraint;
-
-    /// <summary>
-    /// Initializes a new instance of <see cref="SubOperatorsTypeConstraintView"/>.
-    /// </summary>
-    public SubOperatorsTypeConstraintView() {
-      InitializeComponent();
-    }
-
-    /// <summary>
-    /// Initializes a new instance of <see cref="SubOperatorTypeConstraint"/> with the given
-    /// <paramref name="constraint"/> to display.
-    /// </summary>
-    /// <param name="constraint">The constraint to represent visually.</param>
-    public SubOperatorsTypeConstraintView(SubOperatorTypeConstraint constraint) {
-      InitializeComponent();
-
-      this.constraint = constraint;
-      allSubOperatorsTypeConstraintView.Constraint = constraint;
-      indexDataView.IntData = constraint.SubOperatorIndex;
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.Constraints/3.2/SubOperatorsTypeConstraintView.resx
===================================================================
--- trunk/sources/HeuristicLab.Constraints/3.2/SubOperatorsTypeConstraintView.resx	(revision 1927)
+++ 	(revision )
@@ -1,120 +1,0 @@
-<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>
