Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.Designer.cs	(revision 6525)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.Designer.cs	(revision 6526)
@@ -49,4 +49,5 @@
       this.ExpandToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
       this.CollapseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.EditNodeLabelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
       this.toolTip = new System.Windows.Forms.ToolTip(this.components);
       this.optimizersGroupBox.SuspendLayout();
@@ -162,4 +163,5 @@
       this.treeView.ImageIndex = 0;
       this.treeView.ImageList = this.imageList;
+      this.treeView.LabelEdit = true;
       this.treeView.Location = new System.Drawing.Point(4, 34);
       this.treeView.Name = "optimizerTreeView";
@@ -167,4 +169,6 @@
       this.treeView.Size = new System.Drawing.Size(191, 402);
       this.treeView.TabIndex = 10;
+      this.treeView.AfterLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(treeView_AfterLabelEdit);
+      this.treeView.BeforeLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(treeView_BeforeLabelEdit);
       this.treeView.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.optimizerTreeView_ItemDrag);
       this.treeView.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.optimizerTreeview_NodeMouseClick);
@@ -215,4 +219,5 @@
       // 
       this.contextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.EditNodeLabelToolStripMenuItem,
             this.ExpandToolStripMenuItem,
             this.CollapseToolStripMenuItem});
@@ -233,4 +238,12 @@
       this.CollapseToolStripMenuItem.Text = "Collapse";
       this.CollapseToolStripMenuItem.Click += new System.EventHandler(this.CollapseToolStripMenuItem_Click);
+      //
+      // EditNodeLabelToolStripMenuItem
+      //
+      this.EditNodeLabelToolStripMenuItem.Name = "EditNodeLabelToolStripMenuItem";
+      this.EditNodeLabelToolStripMenuItem.Size = new System.Drawing.Size(119, 22);
+      this.EditNodeLabelToolStripMenuItem.Text = "Edit Name";
+      this.EditNodeLabelToolStripMenuItem.Click += new System.EventHandler(this.EditNodeLabelToolStripMenuItem_Click);
+
       // 
       // ExperimentTreeView
@@ -268,4 +281,5 @@
     private System.Windows.Forms.ToolStripMenuItem ExpandToolStripMenuItem;
     private System.Windows.Forms.ToolStripMenuItem CollapseToolStripMenuItem;
+    private System.Windows.Forms.ToolStripMenuItem EditNodeLabelToolStripMenuItem;
 
   }
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.cs	(revision 6525)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.cs	(revision 6526)
@@ -454,7 +454,4 @@
             else throw new NotSupportedException("Handling for specific type not implemented" + parentOptimizer.GetType());
           }
-          SetEnabledStateOfControls();
-          UpdateDetailsViewHost();
-          RebuildImageList();
         }
       }
@@ -493,5 +490,5 @@
           if (optimizer == null) return;
           if (batchRun.Optimizer != null) return;
-          if (optimizer.GetObjectGraphObjects().OfType<IOptimizer>().Contains(batchRun)) return;
+          if (optimizer.NestedOptimizers.Contains(batchRun)) return;
         }
 
@@ -503,6 +500,6 @@
           if (enumerable != null) optimizers = enumerable.Cast<IOptimizer>();
 
-          if (optimizer != null && optimizer.GetObjectGraphObjects().OfType<IOptimizer>().Contains(experiment)) return;
-          if (optimizers != null && optimizers.GetObjectGraphObjects().OfType<IOptimizer>().Contains(experiment)) return;
+          if (optimizer != null && optimizer.NestedOptimizers.Contains(experiment)) return;
+          if (optimizers != null && optimizers.Any(x => x.NestedOptimizers.Contains(experiment))) return;
         }
 
@@ -611,4 +608,6 @@
         CollapseToolStripMenuItem.Enabled = toolStripMenuNode.IsExpanded;
         CollapseToolStripMenuItem.Visible = toolStripMenuNode.IsExpanded;
+        EditNodeLabelToolStripMenuItem.Enabled = toolStripMenuNode.Tag != null && toolStripMenuNode.Tag is INamedItem;
+        EditNodeLabelToolStripMenuItem.Visible = toolStripMenuNode.Tag != null && toolStripMenuNode.Tag is INamedItem;
         if (contextMenuStrip.Items.Cast<ToolStripMenuItem>().Any(item => item.Enabled))
           contextMenuStrip.Show(Cursor.Position);
@@ -621,4 +620,24 @@
     private void CollapseToolStripMenuItem_Click(object sender, EventArgs e) {
       if (toolStripMenuNode != null) toolStripMenuNode.Collapse();
+    }
+    private void EditNodeLabelToolStripMenuItem_Click(object sender, EventArgs e) {
+      if (toolStripMenuNode != null) {
+        if (!toolStripMenuNode.IsEditing) toolStripMenuNode.BeginEdit();
+      }
+    }
+
+
+    private void treeView_BeforeLabelEdit(object sender, NodeLabelEditEventArgs e) {
+      if (e.Node.Tag == null || !(e.Node.Tag is INamedItem)) {
+        e.CancelEdit = true;
+        return;
+      }
+    }
+    private void treeView_AfterLabelEdit(object sender, NodeLabelEditEventArgs e) {
+      if (e.Label == null) return;
+
+      e.Node.EndEdit(false);
+      var namedItem = (INamedItem)e.Node.Tag;
+      namedItem.Name = e.Label;
     }
 
