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 2946)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj	(revision 2947)
@@ -285,9 +285,4 @@
     </ProjectReference>
   </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="OperatorGraphView.resx">
-      <DependentUpon>OperatorGraphView.cs</DependentUpon>
-    </EmbeddedResource>
-  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/NamedItemCollectionView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/NamedItemCollectionView.cs	(revision 2946)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/NamedItemCollectionView.cs	(revision 2947)
@@ -65,4 +65,9 @@
       return item;
     }
+    protected override ListViewItem CreateListViewItem(T item) {
+      ListViewItem listViewItem = base.CreateListViewItem(item);
+      listViewItem.ToolTipText = item.ItemName + ": " + item.Description;
+      return listViewItem;
+    }
     protected override void AddListViewItem(ListViewItem listViewItem) {
       ListViewItemDictionary.Add((T)listViewItem.Tag, listViewItem);
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorGraphView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorGraphView.Designer.cs	(revision 2946)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorGraphView.Designer.cs	(revision 2947)
@@ -51,5 +51,5 @@
       this.splitContainer = new System.Windows.Forms.SplitContainer();
       this.graphGroupBox = new System.Windows.Forms.GroupBox();
-      this.viewHost = new HeuristicLab.Core.Views.ViewHost();
+      this.operatorTreeView = new HeuristicLab.Core.Views.OperatorTreeView();
       this.operatorsContextMenuStrip.SuspendLayout();
       this.splitContainer.Panel1.SuspendLayout();
@@ -112,5 +112,5 @@
                   | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
-      this.graphGroupBox.Controls.Add(this.viewHost);
+      this.graphGroupBox.Controls.Add(this.operatorTreeView);
       this.graphGroupBox.Location = new System.Drawing.Point(3, 3);
       this.graphGroupBox.Name = "graphGroupBox";
@@ -120,12 +120,15 @@
       this.graphGroupBox.Text = "Operator Graph";
       // 
-      // viewHost
+      // operatorTreeView
       // 
-      this.viewHost.Content = null;
-      this.viewHost.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.viewHost.Location = new System.Drawing.Point(3, 16);
-      this.viewHost.Name = "viewHost";
-      this.viewHost.Size = new System.Drawing.Size(596, 189);
-      this.viewHost.TabIndex = 0;
+      this.operatorTreeView.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.operatorTreeView.Caption = "Operator";
+      this.operatorTreeView.Content = null;
+      this.operatorTreeView.Location = new System.Drawing.Point(6, 19);
+      this.operatorTreeView.Name = "operatorTreeView";
+      this.operatorTreeView.Size = new System.Drawing.Size(590, 183);
+      this.operatorTreeView.TabIndex = 0;
       // 
       // OperatorGraphView
@@ -152,5 +155,5 @@
     protected System.Windows.Forms.SplitContainer splitContainer;
     protected System.Windows.Forms.GroupBox graphGroupBox;
-    private ViewHost viewHost;
+    private OperatorTreeView operatorTreeView;
   }
 }
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorGraphView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorGraphView.cs	(revision 2946)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorGraphView.cs	(revision 2947)
@@ -49,5 +49,4 @@
       InitializeComponent();
       Caption = "Operator Graph";
-      this.viewHost.ViewType = typeof(OperatorTreeView);
     }
     /// <summary>
@@ -89,6 +88,6 @@
       operatorsView.Content = null;
       operatorsView.Enabled = false;
-      viewHost.Content = null;
-      viewHost.Enabled = false;
+      operatorTreeView.Content = null;
+      operatorTreeView.Enabled = false;
 
       if (Content != null) {
@@ -97,6 +96,6 @@
         operatorsView.Enabled = true;
         MarkInitialOperator();
-        viewHost.Content = Content.InitialOperator;
-        viewHost.Enabled = true;
+        operatorTreeView.Content = Content.InitialOperator;
+        operatorTreeView.Enabled = true;
       }
     }
@@ -140,5 +139,5 @@
       else {
         MarkInitialOperator();
-        viewHost.Content = Content.InitialOperator;
+        operatorTreeView.Content = Content.InitialOperator;
       }
     }
Index: unk/sources/HeuristicLab.Core.Views/3.3/OperatorGraphView.resx
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorGraphView.resx	(revision 2946)
+++ 	(revision )
@@ -1,123 +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>
-  <metadata name="operatorsContextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>17, 17</value>
-  </metadata>
-</root>
Index: /trunk/sources/HeuristicLab.Encodings.Permutation/3.3/PermutationCrossover.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.Permutation/3.3/PermutationCrossover.cs	(revision 2946)
+++ /trunk/sources/HeuristicLab.Encodings.Permutation/3.3/PermutationCrossover.cs	(revision 2947)
@@ -47,5 +47,7 @@
       Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator which should be used for stochastic crossover operators."));
       Parameters.Add(new SubScopesLookupParameter<Permutation>("Parents", "The parent permutations which should be crossed."));
+      ParentsParameter.ActualName = "Permutation";
       Parameters.Add(new LookupParameter<Permutation>("Child", "The child permutation resulting from the crossover."));
+      ChildParameter.ActualName = "Permutation";
     }
 
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.Designer.cs	(revision 2946)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.Designer.cs	(revision 2947)
@@ -45,4 +45,5 @@
     /// </summary>
     private void InitializeComponent() {
+      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(UserDefinedAlgorithmView));
       this.operatorGraphTabPage = new System.Windows.Forms.TabPage();
       this.saveOperatorGraphButton = new System.Windows.Forms.Button();
@@ -64,5 +65,7 @@
       // createUserDefinedAlgorithmButton
       // 
+      this.createUserDefinedAlgorithmButton.Enabled = false;
       this.toolTip.SetToolTip(this.createUserDefinedAlgorithmButton, "Create User Defined Algorithm from this Algorithm");
+      this.createUserDefinedAlgorithmButton.Visible = false;
       // 
       // tabControl
@@ -114,5 +117,5 @@
       this.operatorGraphTabPage.Location = new System.Drawing.Point(4, 22);
       this.operatorGraphTabPage.Name = "operatorGraphTabPage";
-      this.operatorGraphTabPage.Size = new System.Drawing.Size(705, 374);
+      this.operatorGraphTabPage.Size = new System.Drawing.Size(705, 441);
       this.operatorGraphTabPage.TabIndex = 2;
       this.operatorGraphTabPage.Text = "Operator Graph";
@@ -160,5 +163,5 @@
       this.operatorGraphViewHost.Location = new System.Drawing.Point(3, 33);
       this.operatorGraphViewHost.Name = "operatorGraphViewHost";
-      this.operatorGraphViewHost.Size = new System.Drawing.Size(699, 338);
+      this.operatorGraphViewHost.Size = new System.Drawing.Size(699, 405);
       this.operatorGraphViewHost.TabIndex = 0;
       this.operatorGraphViewHost.ViewType = null;
@@ -169,5 +172,5 @@
       this.globalScopeTabPage.Location = new System.Drawing.Point(4, 22);
       this.globalScopeTabPage.Name = "globalScopeTabPage";
-      this.globalScopeTabPage.Size = new System.Drawing.Size(705, 374);
+      this.globalScopeTabPage.Size = new System.Drawing.Size(705, 441);
       this.globalScopeTabPage.TabIndex = 3;
       this.globalScopeTabPage.Text = "Global Scope";
@@ -183,5 +186,5 @@
       this.globalScopeView.Location = new System.Drawing.Point(3, 3);
       this.globalScopeView.Name = "globalScopeView";
-      this.globalScopeView.Size = new System.Drawing.Size(699, 368);
+      this.globalScopeView.Size = new System.Drawing.Size(699, 435);
       this.globalScopeView.TabIndex = 0;
       // 
Index: /trunk/sources/HeuristicLab.Parameters/3.3/OptionalValueParameter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters/3.3/OptionalValueParameter.cs	(revision 2946)
+++ /trunk/sources/HeuristicLab.Parameters/3.3/OptionalValueParameter.cs	(revision 2947)
@@ -27,7 +27,7 @@
 namespace HeuristicLab.Parameters {
   /// <summary>
-  /// A parameter whose value is defined it the parameter itself or is null.
+  /// A parameter whose value is defined in the parameter itself or is null.
   /// </summary>
-  [Item("OptionalValueParameter<T>", "A parameter whose value is defined it the parameter itself or is null.")]
+  [Item("OptionalValueParameter<T>", "A parameter whose value is defined in the parameter itself or is null.")]
   public class OptionalValueParameter<T> : Parameter, IValueParameter<T> where T : class, IItem {
     private T value;
Index: /trunk/sources/HeuristicLab.Parameters/3.3/ValueLookupParameter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters/3.3/ValueLookupParameter.cs	(revision 2946)
+++ /trunk/sources/HeuristicLab.Parameters/3.3/ValueLookupParameter.cs	(revision 2947)
@@ -27,7 +27,7 @@
 namespace HeuristicLab.Parameters {
   /// <summary>
-  /// A parameter whose value is either defined it the parameter itself or is retrieved from the scope.
+  /// A parameter whose value is either defined in the parameter itself or is retrieved from the scope.
   /// </summary>
-  [Item("ValueLookupParameter<T>", "A parameter whose value is either defined it the parameter itself or is retrieved from or written to a scope.")]
+  [Item("ValueLookupParameter<T>", "A parameter whose value is either defined in the parameter itself or is retrieved from or written to a scope.")]
   public class ValueLookupParameter<T> : LookupParameter<T>, IValueLookupParameter<T> where T : class, IItem {
     private T value;
Index: /trunk/sources/HeuristicLab.Parameters/3.3/ValueParameter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters/3.3/ValueParameter.cs	(revision 2946)
+++ /trunk/sources/HeuristicLab.Parameters/3.3/ValueParameter.cs	(revision 2947)
@@ -27,7 +27,7 @@
 namespace HeuristicLab.Parameters {
   /// <summary>
-  /// A parameter whose value is defined it the parameter itself.
+  /// A parameter whose value is defined in the parameter itself.
   /// </summary>
-  [Item("ValueParameter<T>", "A parameter whose value is defined it the parameter itself.")]
+  [Item("ValueParameter<T>", "A parameter whose value is defined in the parameter itself.")]
   [EmptyStorableClass]
   public class ValueParameter<T> : OptionalValueParameter<T> where T : class, IItem {
