Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.Designer.cs	(revision 6549)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.Designer.cs	(revision 6550)
@@ -172,12 +172,12 @@
       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);
-      this.treeView.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.optimizerTreeView_NodeMouseDoubleClick);
+      this.treeView.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeview_NodeMouseClick);
+      this.treeView.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView_NodeMouseDoubleClick);
       this.treeView.DragDrop += new System.Windows.Forms.DragEventHandler(this.optimizerTreeView_DragDrop);
       this.treeView.DragEnter += new System.Windows.Forms.DragEventHandler(this.optimizerTreeView_DragEnter);
       this.treeView.DragOver += new System.Windows.Forms.DragEventHandler(this.optimizerTreeView_DragOver);
-      this.treeView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.optimizerTreeView_KeyDown);
-      this.treeView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.optimizerTreeView_MouseDown);
-      this.treeView.RightClick += new System.EventHandler(optimizerTreeView_RightClick);
+      this.treeView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView_KeyDown);
+      this.treeView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.treeView_MouseDown);
+      this.treeView.RightClick += new System.EventHandler(treeView_RightClick);
       // 
       // imageList
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.cs	(revision 6549)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.cs	(revision 6550)
@@ -583,5 +583,5 @@
 
     #region control events
-    private void optimizerTreeView_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) {
+    private void treeView_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) {
       if (rightClickOccured) return;
       if (e.X < e.Node.Bounds.Left || e.X > e.Node.Bounds.Right) return;
@@ -590,5 +590,5 @@
       MainFormManager.MainForm.ShowContent(optimizer);
     }
-    private void optimizerTreeview_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) {
+    private void treeview_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) {
       if (e.X < e.Node.Bounds.Left || e.X > e.Node.Bounds.Right) return;
       treeView.SelectedNode = e.Node;
@@ -596,5 +596,5 @@
       SetEnabledStateOfControls();
     }
-    private void optimizerTreeView_MouseDown(object sender, MouseEventArgs e) {
+    private void treeView_MouseDown(object sender, MouseEventArgs e) {
       // enables deselection of treeNodes
       if (e.Button != MouseButtons.Right) rightClickOccured = false;
@@ -610,30 +610,37 @@
 
 
-    private void optimizerTreeView_KeyDown(object sender, KeyEventArgs e) {
-      if (ReadOnly) return;
-      if (e.KeyCode != Keys.Delete) return;
+    private void treeView_KeyDown(object sender, KeyEventArgs e) {
+      if (Locked || ReadOnly) return;
       if (treeView.SelectedNode == null) return;
-      if (!(treeView.SelectedNode.Tag is IOptimizer)) return;
+      if (!(treeView.SelectedNode.Tag is INamedItem)) return;
 
       var treeNode = treeView.SelectedNode;
-      var optimizer = (IOptimizer)treeNode.Tag;
-
-      if (treeNode.Parent == null)
-        Content.Optimizers.Remove(optimizer);
-      else {
-        var batchRun = treeNode.Parent.Tag as BatchRun;
-        var experiment = treeNode.Parent.Tag as Experiment;
-        if (batchRun != null) batchRun.Optimizer = null;
-        else if (experiment != null) experiment.Optimizers.Remove(optimizer);
-        else throw new NotSupportedException("Handling for specific type not implemented" + treeView.SelectedNode.Tag.GetType());
-      }
-      SetEnabledStateOfControls();
-      UpdateDetailsViewHost();
-      RebuildImageList();
+      var namedItem = (NamedItem)treeNode.Tag;
+      var optimizer = namedItem as IOptimizer;
+
+      if (e.KeyCode == Keys.F2 && !treeNode.IsEditing) {
+        treeNode.BeginEdit();
+        return;
+      }
+
+      if (e.KeyCode == Keys.Delete && optimizer != null) {
+        if (treeNode.Parent == null)
+          Content.Optimizers.Remove(optimizer);
+        else {
+          var batchRun = treeNode.Parent.Tag as BatchRun;
+          var experiment = treeNode.Parent.Tag as Experiment;
+          if (batchRun != null) batchRun.Optimizer = null;
+          else if (experiment != null) experiment.Optimizers.Remove(optimizer);
+          else throw new NotSupportedException("Handling for specific type not implemented" + treeView.SelectedNode.Tag.GetType());
+        }
+        SetEnabledStateOfControls();
+        UpdateDetailsViewHost();
+        RebuildImageList();
+      }
     }
 
     private bool rightClickOccured = true;
     private TreeNode toolStripMenuNode = null;
-    private void optimizerTreeView_RightClick(object sender, EventArgs e) {
+    private void treeView_RightClick(object sender, EventArgs e) {
       rightClickOccured = true;
       Point coordinates = treeView.PointToClient(Cursor.Position);
@@ -656,29 +663,29 @@
     }
 
-    private void ExpandToolStripMenuItem_Click(object sender, EventArgs e) {
-      if (toolStripMenuNode != null) toolStripMenuNode.ExpandAll();
-    }
-    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 (Locked) e.CancelEdit = true;
       if (ReadOnly) e.CancelEdit = true;
       if (e.Node.Tag == null) e.CancelEdit = true;
-      if (!(e.Node.Tag is NamedItem)) e.CancelEdit = true;
+      var namedItem = e.Node.Tag as INamedItem;
+      if (namedItem == null) e.CancelEdit = true;
+      else if (!namedItem.CanChangeName) e.CancelEdit = true;
     }
     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;
+    }
+
+    private void ExpandToolStripMenuItem_Click(object sender, EventArgs e) {
+      if (toolStripMenuNode != null) toolStripMenuNode.ExpandAll();
+    }
+    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();
+      }
     }
 
