Index: trunk/sources/HeuristicLab.Core.Views/3.3/TypeSelector.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Core.Views/3.3/TypeSelector.Designer.cs	(revision 12398)
+++ trunk/sources/HeuristicLab.Core.Views/3.3/TypeSelector.Designer.cs	(revision 12399)
@@ -43,4 +43,9 @@
       this.searchTextBox = new System.Windows.Forms.TextBox();
       this.clearSearchButton = new System.Windows.Forms.Button();
+      this.contextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
+      this.expandToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.expandAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.collapseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.collapseAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
       this.typeParametersGroupBox = new System.Windows.Forms.GroupBox();
       this.setTypeParameterButton = new System.Windows.Forms.Button();
@@ -57,4 +62,5 @@
       this.typeParametersSplitContainer.SuspendLayout();
       this.typeParametersGroupBox.SuspendLayout();
+      this.contextMenuStrip.SuspendLayout();
       this.SuspendLayout();
       // 
@@ -76,4 +82,5 @@
       this.typesTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.typesTreeView_AfterSelect);
       this.typesTreeView.VisibleChanged += new System.EventHandler(this.typesTreeView_VisibleChanged);
+      this.typesTreeView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.typesTreeView_MouseDown);
       // 
       // imageList
@@ -237,4 +244,42 @@
       this.descriptionTextBox.TabIndex = 0;
       // 
+      // contextMenuStrip
+      // 
+      this.contextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.expandToolStripMenuItem,
+            this.expandAllToolStripMenuItem,
+            this.collapseToolStripMenuItem,
+            this.collapseAllToolStripMenuItem});
+      this.contextMenuStrip.Name = "contextMenuStrip";
+      this.contextMenuStrip.Size = new System.Drawing.Size(137, 92);
+      // 
+      // expandToolStripMenuItem
+      // 
+      this.expandToolStripMenuItem.Name = "expandToolStripMenuItem";
+      this.expandToolStripMenuItem.Size = new System.Drawing.Size(136, 22);
+      this.expandToolStripMenuItem.Text = "Expand";
+      this.expandToolStripMenuItem.Click += new System.EventHandler(this.expandToolStripMenuItem_Click);
+      // 
+      // expandAllToolStripMenuItem
+      // 
+      this.expandAllToolStripMenuItem.Name = "expandAllToolStripMenuItem";
+      this.expandAllToolStripMenuItem.Size = new System.Drawing.Size(136, 22);
+      this.expandAllToolStripMenuItem.Text = "Expand All";
+      this.expandAllToolStripMenuItem.Click += new System.EventHandler(this.expandAllToolStripMenuItem_Click);
+      // 
+      // collapseToolStripMenuItem
+      // 
+      this.collapseToolStripMenuItem.Name = "collapseToolStripMenuItem";
+      this.collapseToolStripMenuItem.Size = new System.Drawing.Size(136, 22);
+      this.collapseToolStripMenuItem.Text = "Collapse";
+      this.collapseToolStripMenuItem.Click += new System.EventHandler(this.collapseToolStripMenuItem_Click);
+      // 
+      // collapseAllToolStripMenuItem
+      // 
+      this.collapseAllToolStripMenuItem.Name = "collapseAllToolStripMenuItem";
+      this.collapseAllToolStripMenuItem.Size = new System.Drawing.Size(136, 22);
+      this.collapseAllToolStripMenuItem.Text = "Collapse All";
+      this.collapseAllToolStripMenuItem.Click += new System.EventHandler(this.collapseAllToolStripMenuItem_Click);
+      // 
       // TypeSelector
       // 
@@ -254,4 +299,5 @@
       this.typeParametersSplitContainer.ResumeLayout(false);
       this.typeParametersGroupBox.ResumeLayout(false);
+      this.contextMenuStrip.ResumeLayout(false);
       this.ResumeLayout(false);
 
@@ -269,4 +315,9 @@
     protected System.Windows.Forms.Button clearSearchButton;
     protected System.Windows.Forms.ToolTip toolTip;
+    protected System.Windows.Forms.ContextMenuStrip contextMenuStrip;
+    protected System.Windows.Forms.ToolStripMenuItem expandToolStripMenuItem;
+    protected System.Windows.Forms.ToolStripMenuItem expandAllToolStripMenuItem;
+    protected System.Windows.Forms.ToolStripMenuItem collapseToolStripMenuItem;
+    protected System.Windows.Forms.ToolStripMenuItem collapseAllToolStripMenuItem;
     protected System.Windows.Forms.SplitContainer typeParametersSplitContainer;
     protected System.Windows.Forms.GroupBox typeParametersGroupBox;
@@ -274,5 +325,4 @@
     protected System.Windows.Forms.Button setTypeParameterButton;
     protected System.Windows.Forms.ColumnHeader columnHeader1;
-
   }
 }
Index: trunk/sources/HeuristicLab.Optimizer/3.3/NewItemDialog.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/NewItemDialog.cs	(revision 12398)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/NewItemDialog.cs	(revision 12399)
@@ -369,14 +369,22 @@
 
     private void expandToolStripMenuItem_Click(object sender, EventArgs e) {
+      typesTreeView.BeginUpdate();
       if (toolStripMenuNode != null) toolStripMenuNode.ExpandAll();
+      typesTreeView.EndUpdate();
     }
     private void expandAllToolStripMenuItem_Click(object sender, EventArgs e) {
+      typesTreeView.BeginUpdate();
       typesTreeView.ExpandAll();
+      typesTreeView.EndUpdate();
     }
     private void collapseToolStripMenuItem_Click(object sender, EventArgs e) {
+      typesTreeView.BeginUpdate();
       if (toolStripMenuNode != null) toolStripMenuNode.Collapse();
+      typesTreeView.EndUpdate();
     }
     private void collapseAllToolStripMenuItem_Click(object sender, EventArgs e) {
+      typesTreeView.BeginUpdate();
       typesTreeView.CollapseAll();
+      typesTreeView.EndUpdate();
     }
 
