Index: branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBoxPlotView.Designer.cs
===================================================================
--- branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBoxPlotView.Designer.cs	(revision 9421)
+++ branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBoxPlotView.Designer.cs	(revision 9835)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -61,4 +61,5 @@
       this.tooltip = new System.Windows.Forms.ToolTip(this.components);
       ((System.ComponentModel.ISupportInitialize)(this.chart)).BeginInit();
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
       this.splitContainer.Panel1.SuspendLayout();
       this.splitContainer.Panel2.SuspendLayout();
@@ -71,5 +72,5 @@
       this.xAxisLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
       this.xAxisLabel.AutoSize = true;
-      this.xAxisLabel.Location = new System.Drawing.Point(298, 256);
+      this.xAxisLabel.Location = new System.Drawing.Point(363, 345);
       this.xAxisLabel.Name = "xAxisLabel";
       this.xAxisLabel.Size = new System.Drawing.Size(15, 13);
@@ -83,7 +84,7 @@
       this.xAxisComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
       this.xAxisComboBox.FormattingEnabled = true;
-      this.xAxisComboBox.Location = new System.Drawing.Point(319, 253);
+      this.xAxisComboBox.Location = new System.Drawing.Point(384, 342);
       this.xAxisComboBox.Name = "xAxisComboBox";
-      this.xAxisComboBox.Size = new System.Drawing.Size(221, 21);
+      this.xAxisComboBox.Size = new System.Drawing.Size(600, 21);
       this.xAxisComboBox.TabIndex = 11;
       this.xAxisComboBox.SelectedIndexChanged += new System.EventHandler(this.AxisComboBox_SelectedIndexChanged);
@@ -105,5 +106,5 @@
       this.yAxisComboBox.Location = new System.Drawing.Point(24, 3);
       this.yAxisComboBox.Name = "yAxisComboBox";
-      this.yAxisComboBox.Size = new System.Drawing.Size(221, 21);
+      this.yAxisComboBox.Size = new System.Drawing.Size(600, 21);
       this.yAxisComboBox.TabIndex = 9;
       this.yAxisComboBox.SelectedIndexChanged += new System.EventHandler(this.AxisComboBox_SelectedIndexChanged);
@@ -111,10 +112,10 @@
       // chart
       // 
-      this.chart.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.chart.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)));
       chartArea1.Name = "ChartArea1";
       this.chart.ChartAreas.Add(chartArea1);
-      this.chart.Location = new System.Drawing.Point(6, 30);
+      this.chart.Location = new System.Drawing.Point(-1, 30);
       this.chart.Name = "chart";
       series1.ChartArea = "ChartArea1";
@@ -125,5 +126,5 @@
       series1.YValuesPerPoint = 6;
       this.chart.Series.Add(series1);
-      this.chart.Size = new System.Drawing.Size(534, 217);
+      this.chart.Size = new System.Drawing.Size(989, 306);
       this.chart.TabIndex = 17;
       this.chart.Text = "chart";
@@ -135,5 +136,5 @@
       this.noRunsLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
       this.noRunsLabel.AutoSize = true;
-      this.noRunsLabel.Location = new System.Drawing.Point(212, 122);
+      this.noRunsLabel.Location = new System.Drawing.Point(434, 167);
       this.noRunsLabel.Name = "noRunsLabel";
       this.noRunsLabel.Size = new System.Drawing.Size(138, 13);
@@ -161,6 +162,6 @@
       // 
       this.splitContainer.Panel2.Controls.Add(this.statisticsGroupBox);
-      this.splitContainer.Size = new System.Drawing.Size(543, 416);
-      this.splitContainer.SplitterDistance = 277;
+      this.splitContainer.Size = new System.Drawing.Size(987, 550);
+      this.splitContainer.SplitterDistance = 366;
       this.splitContainer.TabIndex = 23;
       // 
@@ -172,5 +173,5 @@
       this.showStatisticsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
       this.showStatisticsCheckBox.Image = HeuristicLab.Common.Resources.VSImageLibrary.Properties;
-      this.showStatisticsCheckBox.Location = new System.Drawing.Point(6, 245);
+      this.showStatisticsCheckBox.Location = new System.Drawing.Point(3, 339);
       this.showStatisticsCheckBox.Name = "showStatisticsCheckBox";
       this.showStatisticsCheckBox.Size = new System.Drawing.Size(24, 24);
@@ -182,11 +183,11 @@
       // statisticsGroupBox
       // 
-      this.statisticsGroupBox.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.statisticsGroupBox.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.statisticsGroupBox.Controls.Add(this.statisticsMatrixView);
       this.statisticsGroupBox.Location = new System.Drawing.Point(3, 3);
       this.statisticsGroupBox.Name = "statisticsGroupBox";
-      this.statisticsGroupBox.Size = new System.Drawing.Size(534, 129);
+      this.statisticsGroupBox.Size = new System.Drawing.Size(981, 174);
       this.statisticsGroupBox.TabIndex = 1;
       this.statisticsGroupBox.TabStop = false;
@@ -203,10 +204,9 @@
       this.statisticsMatrixView.ShowRowsAndColumnsTextBox = false;
       this.statisticsMatrixView.ShowStatisticalInformation = false;
-      this.statisticsMatrixView.Size = new System.Drawing.Size(528, 110);
+      this.statisticsMatrixView.Size = new System.Drawing.Size(975, 155);
       this.statisticsMatrixView.TabIndex = 0;
       // 
       // RunCollectionBoxPlotView
       // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.BackColor = System.Drawing.SystemColors.Window;
@@ -214,9 +214,10 @@
       this.Controls.Add(this.splitContainer);
       this.Name = "RunCollectionBoxPlotView";
-      this.Size = new System.Drawing.Size(543, 416);
+      this.Size = new System.Drawing.Size(987, 550);
       ((System.ComponentModel.ISupportInitialize)(this.chart)).EndInit();
       this.splitContainer.Panel1.ResumeLayout(false);
       this.splitContainer.Panel1.PerformLayout();
       this.splitContainer.Panel2.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit();
       this.splitContainer.ResumeLayout(false);
       this.statisticsGroupBox.ResumeLayout(false);
Index: branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBoxPlotView.cs
===================================================================
--- branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBoxPlotView.cs	(revision 9421)
+++ branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBoxPlotView.cs	(revision 9835)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -328,7 +328,6 @@
       if (!this.categoricalMapping.ContainsKey(dimension)) {
         this.categoricalMapping[dimension] = new Dictionary<object, double>();
-        var orderedCategories = Content.Where(r=> r.Visible).Select(r => Content.GetValue(r, dimension).ToString())
-                                .Distinct()
-                                .OrderBy(x => x, new NaturalStringComparer());
+        var orderedCategories = Content.Where(r => r.Visible && Content.GetValue(r, dimension) != null).Select(r => Content.GetValue(r, dimension).ToString())
+                                       .Distinct().OrderBy(x => x, new NaturalStringComparer());
         int count = 1;
         foreach (var category in orderedCategories) {
@@ -389,5 +388,6 @@
       axis.CustomLabels.Clear();
       if (categoricalMapping.ContainsKey(dimension)) {
-        foreach (var pair in categoricalMapping[dimension]) {
+        int position = 1;
+        foreach (var pair in categoricalMapping[dimension].Where(x => seriesCache.ContainsKey(x.Value))) {
           string labelText = pair.Key.ToString();
           CustomLabel label = new CustomLabel();
@@ -397,7 +397,8 @@
           label.Text = labelText;
           label.GridTicks = GridTickTypes.TickMark;
-          label.FromPosition = pair.Value - 0.5;
-          label.ToPosition = pair.Value + 0.5;
+          label.FromPosition = position - 0.5;
+          label.ToPosition = position + 0.5;
           axis.CustomLabels.Add(label);
+          position++;
         }
       } else if (dimension > 0 && Content.GetValue(0, dimension) is TimeSpanValue) {
Index: branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBubbleChartView.Designer.cs
===================================================================
--- branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBubbleChartView.Designer.cs	(revision 9421)
+++ branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBubbleChartView.Designer.cs	(revision 9835)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -61,26 +61,28 @@
       this.chart = new HeuristicLab.Visualization.ChartControlsExtensions.EnhancedChart();
       this.openBoxPlotViewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
-      this.hideRunToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.hideRunsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
       this.zoomButton = new System.Windows.Forms.RadioButton();
       this.selectButton = new System.Windows.Forms.RadioButton();
       this.radioButtonGroup = new System.Windows.Forms.GroupBox();
-      this.colorDialogButton = new System.Windows.Forms.Button();
+      this.colorRunsButton = new System.Windows.Forms.Button();
       this.colorDialog = new System.Windows.Forms.ColorDialog();
       this.tooltip = new System.Windows.Forms.ToolTip(this.components);
       this.colorXAxisButton = new System.Windows.Forms.Button();
       this.colorYAxisButton = new System.Windows.Forms.Button();
+      this.transparencyTrackBar = new System.Windows.Forms.TrackBar();
+      this.hideRunsButton = new System.Windows.Forms.Button();
+      this.colorDialogButton = new System.Windows.Forms.Button();
       this.noRunsLabel = new System.Windows.Forms.Label();
       this.sizeTrackBar = new System.Windows.Forms.TrackBar();
       this.getDataAsMatrixToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
-      this.transparencyTrackBar = new System.Windows.Forms.TrackBar();
       this.transparencyLabel = new System.Windows.Forms.Label();
-      this.colorRunsButton = new System.Windows.Forms.Button();
-      this.hideRunsButton = new System.Windows.Forms.Button();
+      this.unhideAllRunToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.colorResetToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
       ((System.ComponentModel.ISupportInitialize)(this.xTrackBar)).BeginInit();
       ((System.ComponentModel.ISupportInitialize)(this.yTrackBar)).BeginInit();
       ((System.ComponentModel.ISupportInitialize)(this.chart)).BeginInit();
       this.radioButtonGroup.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.transparencyTrackBar)).BeginInit();
       ((System.ComponentModel.ISupportInitialize)(this.sizeTrackBar)).BeginInit();
-      ((System.ComponentModel.ISupportInitialize)(this.transparencyTrackBar)).BeginInit();
       this.SuspendLayout();
       // 
@@ -88,5 +90,5 @@
       // 
       this.yJitterLabel.AutoSize = true;
-      this.yJitterLabel.Location = new System.Drawing.Point(278, 6);
+      this.yJitterLabel.Location = new System.Drawing.Point(457, 6);
       this.yJitterLabel.Name = "yJitterLabel";
       this.yJitterLabel.Size = new System.Drawing.Size(32, 13);
@@ -98,5 +100,5 @@
       this.xJitterlabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
       this.xJitterlabel.AutoSize = true;
-      this.xJitterlabel.Location = new System.Drawing.Point(749, 472);
+      this.xJitterlabel.Location = new System.Drawing.Point(893, 719);
       this.xJitterlabel.Name = "xJitterlabel";
       this.xJitterlabel.Size = new System.Drawing.Size(32, 13);
@@ -108,5 +110,5 @@
       this.xTrackBar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
       this.xTrackBar.Enabled = false;
-      this.xTrackBar.Location = new System.Drawing.Point(787, 469);
+      this.xTrackBar.Location = new System.Drawing.Point(919, 715);
       this.xTrackBar.Maximum = 100;
       this.xTrackBar.Name = "xTrackBar";
@@ -120,5 +122,5 @@
       this.xAxisLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
       this.xAxisLabel.AutoSize = true;
-      this.xAxisLabel.Location = new System.Drawing.Point(471, 472);
+      this.xAxisLabel.Location = new System.Drawing.Point(439, 719);
       this.xAxisLabel.Name = "xAxisLabel";
       this.xAxisLabel.Size = new System.Drawing.Size(15, 13);
@@ -131,8 +133,9 @@
       this.xAxisComboBox.BackColor = System.Drawing.SystemColors.ControlLightLight;
       this.xAxisComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+      this.xAxisComboBox.DropDownWidth = 500;
       this.xAxisComboBox.FormattingEnabled = true;
-      this.xAxisComboBox.Location = new System.Drawing.Point(492, 469);
+      this.xAxisComboBox.Location = new System.Drawing.Point(460, 715);
       this.xAxisComboBox.Name = "xAxisComboBox";
-      this.xAxisComboBox.Size = new System.Drawing.Size(221, 21);
+      this.xAxisComboBox.Size = new System.Drawing.Size(400, 21);
       this.xAxisComboBox.TabIndex = 7;
       this.xAxisComboBox.SelectedValueChanged += new System.EventHandler(this.AxisComboBox_SelectedValueChanged);
@@ -151,8 +154,9 @@
       this.yAxisComboBox.BackColor = System.Drawing.SystemColors.ControlLightLight;
       this.yAxisComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+      this.yAxisComboBox.DropDownWidth = 800;
       this.yAxisComboBox.FormattingEnabled = true;
       this.yAxisComboBox.Location = new System.Drawing.Point(24, 3);
       this.yAxisComboBox.Name = "yAxisComboBox";
-      this.yAxisComboBox.Size = new System.Drawing.Size(221, 21);
+      this.yAxisComboBox.Size = new System.Drawing.Size(400, 21);
       this.yAxisComboBox.TabIndex = 5;
       this.yAxisComboBox.SelectedValueChanged += new System.EventHandler(this.AxisComboBox_SelectedValueChanged);
@@ -161,5 +165,5 @@
       // 
       this.yTrackBar.Enabled = false;
-      this.yTrackBar.Location = new System.Drawing.Point(312, 3);
+      this.yTrackBar.Location = new System.Drawing.Point(483, 3);
       this.yTrackBar.Maximum = 100;
       this.yTrackBar.Name = "yTrackBar";
@@ -174,8 +178,9 @@
       this.sizeComboBox.BackColor = System.Drawing.SystemColors.ControlLightLight;
       this.sizeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+      this.sizeComboBox.DropDownWidth = 400;
       this.sizeComboBox.FormattingEnabled = true;
-      this.sizeComboBox.Location = new System.Drawing.Point(560, 4);
+      this.sizeComboBox.Location = new System.Drawing.Point(613, 3);
       this.sizeComboBox.Name = "sizeComboBox";
-      this.sizeComboBox.Size = new System.Drawing.Size(221, 21);
+      this.sizeComboBox.Size = new System.Drawing.Size(300, 21);
       this.sizeComboBox.TabIndex = 14;
       this.sizeComboBox.SelectedValueChanged += new System.EventHandler(this.AxisComboBox_SelectedValueChanged);
@@ -185,5 +190,5 @@
       this.sizeLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
       this.sizeLabel.AutoSize = true;
-      this.sizeLabel.Location = new System.Drawing.Point(489, 7);
+      this.sizeLabel.Location = new System.Drawing.Point(541, 6);
       this.sizeLabel.Name = "sizeLabel";
       this.sizeLabel.Size = new System.Drawing.Size(66, 13);
@@ -193,10 +198,10 @@
       // chart
       // 
-      this.chart.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-            | System.Windows.Forms.AnchorStyles.Left)
+      this.chart.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)));
       chartArea1.Name = "ChartArea1";
       this.chart.ChartAreas.Add(chartArea1);
-      this.chart.Location = new System.Drawing.Point(6, 30);
+      this.chart.Location = new System.Drawing.Point(-1, 30);
       this.chart.Name = "chart";
       series1.ChartArea = "ChartArea1";
@@ -207,5 +212,5 @@
       series1.YValuesPerPoint = 2;
       this.chart.Series.Add(series1);
-      this.chart.Size = new System.Drawing.Size(843, 425);
+      this.chart.Size = new System.Drawing.Size(988, 681);
       this.chart.TabIndex = 16;
       this.chart.Text = "chart";
@@ -222,10 +227,10 @@
       this.openBoxPlotViewToolStripMenuItem.Click += new System.EventHandler(this.openBoxPlotViewToolStripMenuItem_Click);
       // 
-      // hideRunToolStripMenuItem
-      // 
-      this.hideRunToolStripMenuItem.Name = "hideRunToolStripMenuItem";
-      this.hideRunToolStripMenuItem.Size = new System.Drawing.Size(256, 22);
-      this.hideRunToolStripMenuItem.Text = "Hide Run";
-      this.hideRunToolStripMenuItem.Click += new System.EventHandler(this.hideRunToolStripMenuItem_Click);
+      // hideRunsToolStripMenuItem
+      // 
+      this.hideRunsToolStripMenuItem.Name = "hideRunsToolStripMenuItem";
+      this.hideRunsToolStripMenuItem.Size = new System.Drawing.Size(256, 22);
+      this.hideRunsToolStripMenuItem.Text = "Hide selected Runs";
+      this.hideRunsToolStripMenuItem.Click += new System.EventHandler(this.hideRunsToolStripMenuItem_Click);
       // 
       // zoomButton
@@ -234,5 +239,5 @@
       this.zoomButton.AutoSize = true;
       this.zoomButton.Checked = true;
-      this.zoomButton.Location = new System.Drawing.Point(6, 10);
+      this.zoomButton.Location = new System.Drawing.Point(6, 11);
       this.zoomButton.Name = "zoomButton";
       this.zoomButton.Size = new System.Drawing.Size(52, 17);
@@ -247,5 +252,5 @@
       this.selectButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
       this.selectButton.AutoSize = true;
-      this.selectButton.Location = new System.Drawing.Point(64, 9);
+      this.selectButton.Location = new System.Drawing.Point(61, 11);
       this.selectButton.Name = "selectButton";
       this.selectButton.Size = new System.Drawing.Size(55, 17);
@@ -259,5 +264,5 @@
       this.radioButtonGroup.Controls.Add(this.zoomButton);
       this.radioButtonGroup.Controls.Add(this.selectButton);
-      this.radioButtonGroup.Location = new System.Drawing.Point(2, 461);
+      this.radioButtonGroup.Location = new System.Drawing.Point(3, 704);
       this.radioButtonGroup.Name = "radioButtonGroup";
       this.radioButtonGroup.Size = new System.Drawing.Size(122, 32);
@@ -265,17 +270,16 @@
       this.radioButtonGroup.TabStop = false;
       // 
-      // colorDialogButton
-      // 
-      this.colorDialogButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.colorDialogButton.Enabled = false;
-      this.colorDialogButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
-      this.colorDialogButton.Location = new System.Drawing.Point(130, 469);
-      this.colorDialogButton.Name = "colorDialogButton";
-      this.colorDialogButton.Size = new System.Drawing.Size(21, 21);
-      this.colorDialogButton.TabIndex = 20;
-      this.colorDialogButton.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
-      this.tooltip.SetToolTip(this.colorDialogButton, "Choose color");
-      this.colorDialogButton.UseVisualStyleBackColor = true;
-      this.colorDialogButton.Click += new System.EventHandler(this.colorDialogButton_Click);
+      // colorRunsButton
+      // 
+      this.colorRunsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.colorRunsButton.Enabled = false;
+      this.colorRunsButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
+      this.colorRunsButton.Location = new System.Drawing.Point(131, 713);
+      this.colorRunsButton.Name = "colorRunsButton";
+      this.colorRunsButton.Size = new System.Drawing.Size(21, 21);
+      this.colorRunsButton.TabIndex = 20;
+      this.tooltip.SetToolTip(this.colorRunsButton, "Color all selected runs");
+      this.colorRunsButton.UseVisualStyleBackColor = true;
+      this.colorRunsButton.Click += new System.EventHandler(this.colorRunsButton_Click);
       // 
       // colorDialog
@@ -289,5 +293,5 @@
       this.colorXAxisButton.Enabled = false;
       this.colorXAxisButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.DisplayInColorVertical;
-      this.colorXAxisButton.Location = new System.Drawing.Point(719, 469);
+      this.colorXAxisButton.Location = new System.Drawing.Point(866, 715);
       this.colorXAxisButton.Name = "colorXAxisButton";
       this.colorXAxisButton.Size = new System.Drawing.Size(21, 21);
@@ -301,5 +305,5 @@
       this.colorYAxisButton.Enabled = false;
       this.colorYAxisButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.DisplayInColor;
-      this.colorYAxisButton.Location = new System.Drawing.Point(251, 3);
+      this.colorYAxisButton.Location = new System.Drawing.Point(430, 3);
       this.colorYAxisButton.Name = "colorYAxisButton";
       this.colorYAxisButton.Size = new System.Drawing.Size(21, 21);
@@ -309,9 +313,52 @@
       this.colorYAxisButton.Click += new System.EventHandler(this.colorYAxisButton_Click);
       // 
+      // transparencyTrackBar
+      // 
+      this.transparencyTrackBar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.transparencyTrackBar.LargeChange = 16;
+      this.transparencyTrackBar.Location = new System.Drawing.Point(302, 715);
+      this.transparencyTrackBar.Maximum = 254;
+      this.transparencyTrackBar.Name = "transparencyTrackBar";
+      this.transparencyTrackBar.Size = new System.Drawing.Size(64, 45);
+      this.transparencyTrackBar.TabIndex = 24;
+      this.transparencyTrackBar.TickStyle = System.Windows.Forms.TickStyle.None;
+      this.tooltip.SetToolTip(this.transparencyTrackBar, "Sets the transparency of the colors");
+      this.transparencyTrackBar.ValueChanged += new System.EventHandler(this.transparencyTrackBar_ValueChanged);
+      // 
+      // hideRunsButton
+      // 
+      this.hideRunsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.hideRunsButton.Enabled = false;
+      this.hideRunsButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
+      this.hideRunsButton.Location = new System.Drawing.Point(172, 713);
+      this.hideRunsButton.Name = "hideRunsButton";
+      this.hideRunsButton.Size = new System.Drawing.Size(43, 21);
+      this.hideRunsButton.TabIndex = 26;
+      this.hideRunsButton.Text = "Hide";
+      this.tooltip.SetToolTip(this.hideRunsButton, "Hides all selected runs");
+      this.hideRunsButton.UseVisualStyleBackColor = true;
+      this.hideRunsButton.Click += new System.EventHandler(this.hideRunsButton_Click);
+      // 
+      // colorDialogButton
+      // 
+      this.colorDialogButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.colorDialogButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+      this.colorDialogButton.Enabled = false;
+      this.colorDialogButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.colorDialogButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
+      this.colorDialogButton.Location = new System.Drawing.Point(152, 713);
+      this.colorDialogButton.Name = "colorDialogButton";
+      this.colorDialogButton.Size = new System.Drawing.Size(14, 21);
+      this.colorDialogButton.TabIndex = 25;
+      this.colorDialogButton.Text = "v";
+      this.tooltip.SetToolTip(this.colorDialogButton, "Choose color");
+      this.colorDialogButton.UseVisualStyleBackColor = true;
+      this.colorDialogButton.Click += new System.EventHandler(this.colorDialogButton_Click);
+      // 
       // noRunsLabel
       // 
       this.noRunsLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
       this.noRunsLabel.AutoSize = true;
-      this.noRunsLabel.Location = new System.Drawing.Point(366, 228);
+      this.noRunsLabel.Location = new System.Drawing.Point(432, 350);
       this.noRunsLabel.Name = "noRunsLabel";
       this.noRunsLabel.Size = new System.Drawing.Size(138, 13);
@@ -322,5 +369,5 @@
       // 
       this.sizeTrackBar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-      this.sizeTrackBar.Location = new System.Drawing.Point(787, 3);
+      this.sizeTrackBar.Location = new System.Drawing.Point(919, 3);
       this.sizeTrackBar.Maximum = 20;
       this.sizeTrackBar.Minimum = -20;
@@ -339,22 +386,9 @@
       this.getDataAsMatrixToolStripMenuItem.Click += new System.EventHandler(this.getDataAsMatrixToolStripMenuItem_Click);
       // 
-      // transparencyTrackBar
-      // 
-      this.transparencyTrackBar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.transparencyTrackBar.LargeChange = 16;
-      this.transparencyTrackBar.Location = new System.Drawing.Point(359, 470);
-      this.transparencyTrackBar.Maximum = 254;
-      this.transparencyTrackBar.Name = "transparencyTrackBar";
-      this.transparencyTrackBar.Size = new System.Drawing.Size(64, 45);
-      this.transparencyTrackBar.TabIndex = 24;
-      this.transparencyTrackBar.TickStyle = System.Windows.Forms.TickStyle.None;
-      this.tooltip.SetToolTip(this.transparencyTrackBar, "Sets the transparency of the colors");
-      this.transparencyTrackBar.ValueChanged += new System.EventHandler(this.transparencyTrackBar_ValueChanged);
-      // 
       // transparencyLabel
       // 
       this.transparencyLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
       this.transparencyLabel.AutoSize = true;
-      this.transparencyLabel.Location = new System.Drawing.Point(278, 475);
+      this.transparencyLabel.Location = new System.Drawing.Point(233, 717);
       this.transparencyLabel.Name = "transparencyLabel";
       this.transparencyLabel.Size = new System.Drawing.Size(75, 13);
@@ -362,33 +396,17 @@
       this.transparencyLabel.Text = "Transparency:";
       // 
-      // colorRunsButton
-      // 
-      this.colorRunsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.colorRunsButton.Enabled = false;
-      this.colorRunsButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
-      this.colorRunsButton.Location = new System.Drawing.Point(151, 469);
-      this.colorRunsButton.Name = "colorRunsButton";
-      this.colorRunsButton.Size = new System.Drawing.Size(43, 21);
-      this.colorRunsButton.TabIndex = 25;
-      this.colorRunsButton.Text = "Color";
-      this.colorRunsButton.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
-      this.tooltip.SetToolTip(this.colorRunsButton, "Color all selected runs");
-      this.colorRunsButton.UseVisualStyleBackColor = true;
-      this.colorRunsButton.Click += new System.EventHandler(this.colorRunsButton_Click);
-      // 
-      // hideRunsButton
-      // 
-      this.hideRunsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.hideRunsButton.Enabled = false;
-      this.hideRunsButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
-      this.hideRunsButton.Location = new System.Drawing.Point(194, 469);
-      this.hideRunsButton.Name = "hideRunsButton";
-      this.hideRunsButton.Size = new System.Drawing.Size(43, 21);
-      this.hideRunsButton.TabIndex = 26;
-      this.hideRunsButton.Text = "Hide";
-      this.hideRunsButton.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
-      this.tooltip.SetToolTip(this.hideRunsButton, "Hides all selected runs");
-      this.hideRunsButton.UseVisualStyleBackColor = true;
-      this.hideRunsButton.Click += new System.EventHandler(this.hideRunsButton_Click);
+      // unhideAllRunToolStripMenuItem
+      // 
+      this.unhideAllRunToolStripMenuItem.Name = "unhideAllRunToolStripMenuItem";
+      this.unhideAllRunToolStripMenuItem.Size = new System.Drawing.Size(256, 22);
+      this.unhideAllRunToolStripMenuItem.Text = "Unhide all";
+      this.unhideAllRunToolStripMenuItem.Click += new System.EventHandler(this.unhideAllRunToolStripMenuItem_Click);
+      // 
+      // colorResetToolStripMenuItem
+      // 
+      this.colorResetToolStripMenuItem.Name = "colorResetToolStripMenuItem";
+      this.colorResetToolStripMenuItem.Size = new System.Drawing.Size(256, 22);
+      this.colorResetToolStripMenuItem.Text = "Color reset";
+      this.colorResetToolStripMenuItem.Click += new System.EventHandler(this.colorResetToolStripMenuItem_Click);
       // 
       // RunCollectionBubbleChartView
@@ -398,15 +416,10 @@
       this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
       this.Controls.Add(this.hideRunsButton);
-      this.Controls.Add(this.colorRunsButton);
-      this.Controls.Add(this.transparencyTrackBar);
       this.Controls.Add(this.sizeTrackBar);
       this.Controls.Add(this.colorYAxisButton);
       this.Controls.Add(this.colorXAxisButton);
       this.Controls.Add(this.noRunsLabel);
-      this.Controls.Add(this.colorDialogButton);
+      this.Controls.Add(this.colorRunsButton);
       this.Controls.Add(this.radioButtonGroup);
-      this.Controls.Add(this.chart);
-      this.Controls.Add(this.sizeLabel);
-      this.Controls.Add(this.sizeComboBox);
       this.Controls.Add(this.yJitterLabel);
       this.Controls.Add(this.transparencyLabel);
@@ -418,6 +431,11 @@
       this.Controls.Add(this.yAxisComboBox);
       this.Controls.Add(this.yTrackBar);
+      this.Controls.Add(this.colorDialogButton);
+      this.Controls.Add(this.chart);
+      this.Controls.Add(this.transparencyTrackBar);
+      this.Controls.Add(this.sizeLabel);
+      this.Controls.Add(this.sizeComboBox);
       this.Name = "RunCollectionBubbleChartView";
-      this.Size = new System.Drawing.Size(854, 496);
+      this.Size = new System.Drawing.Size(986, 741);
       ((System.ComponentModel.ISupportInitialize)(this.xTrackBar)).EndInit();
       ((System.ComponentModel.ISupportInitialize)(this.yTrackBar)).EndInit();
@@ -425,6 +443,6 @@
       this.radioButtonGroup.ResumeLayout(false);
       this.radioButtonGroup.PerformLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.transparencyTrackBar)).EndInit();
       ((System.ComponentModel.ISupportInitialize)(this.sizeTrackBar)).EndInit();
-      ((System.ComponentModel.ISupportInitialize)(this.transparencyTrackBar)).EndInit();
       this.ResumeLayout(false);
       this.PerformLayout();
@@ -447,10 +465,10 @@
     private System.Windows.Forms.RadioButton selectButton;
     private System.Windows.Forms.GroupBox radioButtonGroup;
-    private System.Windows.Forms.Button colorDialogButton;
+    private System.Windows.Forms.Button colorRunsButton;
     private System.Windows.Forms.ColorDialog colorDialog;
     private System.Windows.Forms.ToolTip tooltip;
     private System.Windows.Forms.Label noRunsLabel;
     private System.Windows.Forms.ToolStripMenuItem openBoxPlotViewToolStripMenuItem;
-    private System.Windows.Forms.ToolStripMenuItem hideRunToolStripMenuItem;
+    private System.Windows.Forms.ToolStripMenuItem hideRunsToolStripMenuItem;
     private System.Windows.Forms.Button colorXAxisButton;
     private System.Windows.Forms.Button colorYAxisButton;
@@ -459,6 +477,8 @@
     private System.Windows.Forms.TrackBar transparencyTrackBar;
     private System.Windows.Forms.Label transparencyLabel;
-    private System.Windows.Forms.Button colorRunsButton;
     private System.Windows.Forms.Button hideRunsButton;
+    private System.Windows.Forms.ToolStripMenuItem unhideAllRunToolStripMenuItem;
+    private System.Windows.Forms.ToolStripMenuItem colorResetToolStripMenuItem;
+    private System.Windows.Forms.Button colorDialogButton;
   }
 }
Index: branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBubbleChartView.cs
===================================================================
--- branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBubbleChartView.cs	(revision 9421)
+++ branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBubbleChartView.cs	(revision 9835)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -56,15 +56,20 @@
     private bool suppressUpdates = false;
 
+    private RunCollectionContentConstraint visibilityConstraint = new RunCollectionContentConstraint() { Active = true };
 
     public RunCollectionBubbleChartView() {
       InitializeComponent();
 
-      chart.ContextMenuStrip.Items.Insert(0, hideRunToolStripMenuItem);
-      chart.ContextMenuStrip.Items.Insert(1, openBoxPlotViewToolStripMenuItem);
-      chart.ContextMenuStrip.Items.Add(getDataAsMatrixToolStripMenuItem);
+      chart.ContextMenuStrip.Items.Insert(0, openBoxPlotViewToolStripMenuItem);
+      chart.ContextMenuStrip.Items.Insert(1, getDataAsMatrixToolStripMenuItem);
+      chart.ContextMenuStrip.Items.Insert(2, new ToolStripSeparator());
+      chart.ContextMenuStrip.Items.Insert(3, hideRunsToolStripMenuItem);
+      chart.ContextMenuStrip.Items.Insert(4, unhideAllRunToolStripMenuItem);
+      chart.ContextMenuStrip.Items.Insert(5, colorResetToolStripMenuItem);
+      chart.ContextMenuStrip.Items.Insert(6, new ToolStripSeparator());
       chart.ContextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(ContextMenuStrip_Opening);
 
-      colorDialog.Color = Color.Black;
-      colorDialogButton.Image = this.GenerateImage(16, 16, this.colorDialog.Color);
+      colorDialog.Color = Color.Orange;
+      colorRunsButton.Image = this.GenerateImage(16, 16, this.colorDialog.Color);
       isSelecting = false;
 
@@ -167,5 +172,5 @@
             point.MarkerStyle = MarkerStyle.Cross;
           } else {
-            point.Color = Color.FromArgb(255 - transparencyTrackBar.Value, ((IRun)point.Tag).Color);
+            point.Color = Color.FromArgb(255 - LogTransform(transparencyTrackBar.Value), ((IRun)point.Tag).Color);
             point.MarkerStyle = MarkerStyle.Circle;
           }
@@ -310,5 +315,5 @@
       double sizeRange = maxSizeValue - minSizeValue;
 
-      const int smallestBubbleSize = 5;
+      const int smallestBubbleSize = 7;
 
       foreach (DataPoint point in series.Points) {
@@ -331,7 +336,4 @@
       var yAxis = this.chart.ChartAreas[0].AxisY;
 
-      SetAutomaticUpdateOfAxis(xAxis, false);
-      SetAutomaticUpdateOfAxis(yAxis, false);
-
       double xAxisRange = xAxis.Maximum - xAxis.Minimum;
       double yAxisRange = yAxis.Maximum - yAxis.Minimum;
@@ -351,4 +353,12 @@
       }
 
+      if (xJitterFactor.IsAlmost(0.0) && yJitterFactor.IsAlmost(0.0)) {
+        SetAutomaticUpdateOfAxis(xAxis, true);
+        SetAutomaticUpdateOfAxis(yAxis, true);
+        chart.ChartAreas[0].RecalculateAxesScale();
+      } else {
+        SetAutomaticUpdateOfAxis(xAxis, false);
+        SetAutomaticUpdateOfAxis(yAxis, false);
+      }
     }
 
@@ -431,7 +441,6 @@
       if (!this.categoricalMapping.ContainsKey(dimension)) {
         this.categoricalMapping[dimension] = new Dictionary<object, double>();
-        var orderedCategories = Content.Where(r => r.Visible).Select(r => Content.GetValue(r, dimension).ToString())
-                                    .Distinct()
-                                    .OrderBy(x => x, new NaturalStringComparer());
+        var orderedCategories = Content.Where(r => r.Visible && Content.GetValue(r, dimension) != null).Select(r => Content.GetValue(r, dimension).ToString())
+                                    .Distinct().OrderBy(x => x, new NaturalStringComparer());
         int count = 1;
         foreach (var category in orderedCategories) {
@@ -535,4 +544,8 @@
       double maxY = Math.Max(yCursor.SelectionStart, yCursor.SelectionEnd);
 
+      if (Control.ModifierKeys != Keys.Control) {
+        ClearSelectedRuns();
+      }
+
       //check for click to select a single model
       if (minX == maxX && minY == maxY) {
@@ -542,13 +555,18 @@
           var point = chart.Series[0].Points[pointIndex];
           IRun run = (IRun)point.Tag;
-          point.Color = Color.Red;
-          point.MarkerStyle = MarkerStyle.Cross;
-          selectedRuns.Add(run);
-
-        } else ClearSelectedRuns();
+          if (selectedRuns.Contains(run)) {
+            point.MarkerStyle = MarkerStyle.Circle;
+            point.Color = Color.FromArgb(255 - LogTransform(transparencyTrackBar.Value), run.Color);
+            selectedRuns.Remove(run);
+          } else {
+            point.Color = Color.Red;
+            point.MarkerStyle = MarkerStyle.Cross;
+            selectedRuns.Add(run);
+          }
+        }
       } else {
         foreach (DataPoint point in this.chart.Series[0].Points) {
-          if (point.XValue < minX || point.XValue >= maxX) continue;
-          if (point.YValues[0] < minY || point.YValues[0] >= maxY) continue;
+          if (point.XValue < minX || point.XValue > maxX) continue;
+          if (point.YValues[0] < minY || point.YValues[0] > maxY) continue;
           point.MarkerStyle = MarkerStyle.Cross;
           point.Color = Color.Red;
@@ -688,6 +706,6 @@
     private void zoomButton_CheckedChanged(object sender, EventArgs e) {
       this.isSelecting = selectButton.Checked;
+      this.colorRunsButton.Enabled = this.isSelecting;
       this.colorDialogButton.Enabled = this.isSelecting;
-      this.colorRunsButton.Enabled = this.isSelecting;
       this.hideRunsButton.Enabled = this.isSelecting;
       this.chart.ChartAreas[0].AxisX.ScaleView.Zoomable = !isSelecting;
@@ -696,35 +714,30 @@
     }
 
-    private IRun runToHide = null;
     private void ContextMenuStrip_Opening(object sender, System.ComponentModel.CancelEventArgs e) {
-      var pos = Control.MousePosition;
-      var chartPos = chart.PointToClient(pos);
-
-      HitTestResult h = this.chart.HitTest(chartPos.X, chartPos.Y);
-      if (h.ChartElementType == ChartElementType.DataPoint) {
-        runToHide = (IRun)((DataPoint)h.Object).Tag;
-        hideRunToolStripMenuItem.Visible = true;
-      } else {
-        runToHide = null;
-        hideRunToolStripMenuItem.Visible = false;
-      }
-
-    }
-    private void hideRunToolStripMenuItem_Click(object sender, EventArgs e) {
-      var constraint = Content.Constraints.OfType<RunCollectionContentConstraint>().FirstOrDefault(c => c.Active);
-      if (constraint == null) {
-        constraint = new RunCollectionContentConstraint();
-        Content.Constraints.Add(constraint);
-        constraint.Active = true;
-      }
-      constraint.ConstraintData.Add(runToHide);
+      hideRunsToolStripMenuItem.Visible = selectedRuns.Any();
+    }
+
+    private void unhideAllRunToolStripMenuItem_Click(object sender, EventArgs e) {
+      visibilityConstraint.ConstraintData.Clear();
+      if (Content.Constraints.Contains(visibilityConstraint)) Content.Constraints.Remove(visibilityConstraint);
+    }
+    private void hideRunsToolStripMenuItem_Click(object sender, EventArgs e) {
+      HideRuns(selectedRuns);
+      //could not use ClearSelectedRuns as the runs are not visible anymore
+      selectedRuns.Clear();
     }
     private void hideRunsButton_Click(object sender, EventArgs e) {
-      if (!selectedRuns.Any()) return;
-      var constraint = new RunCollectionContentConstraint();
-      constraint.ConstraintData = new ItemSet<IRun>(selectedRuns);
-      Content.Constraints.Add(constraint);
-      ClearSelectedRuns();
-      constraint.Active = true;
+      HideRuns(selectedRuns);
+      //could not use ClearSelectedRuns as the runs are not visible anymore
+      selectedRuns.Clear();
+    }
+
+    private void HideRuns(IEnumerable<IRun> runs) {
+      visibilityConstraint.Active = false;
+      if (!Content.Constraints.Contains(visibilityConstraint)) Content.Constraints.Add(visibilityConstraint);
+      foreach (var run in runs) {
+        visibilityConstraint.ConstraintData.Add(run);
+      }
+      visibilityConstraint.Active = true;
     }
 
@@ -744,5 +757,5 @@
       double max = transparencyTrackBar.Maximum;
       double r = (x - min) / (max - min);  // r \in [0..1]
-      double l = Math.Log(r + 1) / Math.Log(2.0); // l \in [0..1]
+      double l = Math.Max(Math.Min((1.0 - Math.Pow(0.05, r)) / 0.95, 1), 0); // l \in [0..1]
       return (int)Math.Round(255.0 * l);
     }
@@ -800,7 +813,21 @@
 
     #region coloring
+    private void colorResetToolStripMenuItem_Click(object sender, EventArgs e) {
+      Content.UpdateOfRunsInProgress = true;
+
+      IEnumerable<IRun> runs;
+      if (selectedRuns.Any()) runs = selectedRuns;
+      else runs = Content;
+
+      foreach (var run in runs)
+        run.Color = Color.Black;
+      ClearSelectedRuns();
+
+      Content.UpdateOfRunsInProgress = false;
+    }
     private void colorDialogButton_Click(object sender, EventArgs e) {
       if (colorDialog.ShowDialog(this) == DialogResult.OK) {
-        this.colorDialogButton.Image = this.GenerateImage(16, 16, this.colorDialog.Color);
+        this.colorRunsButton.Image = this.GenerateImage(16, 16, this.colorDialog.Color);
+        colorRunsButton_Click(sender, e);
       }
     }
Index: branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionDataTableView.Designer.cs
===================================================================
--- branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionDataTableView.Designer.cs	(revision 9421)
+++ branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionDataTableView.Designer.cs	(revision 9835)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionDataTableView.cs
===================================================================
--- branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionDataTableView.cs	(revision 9421)
+++ branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionDataTableView.cs	(revision 9835)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionTabularView.Designer.cs
===================================================================
--- branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionTabularView.Designer.cs	(revision 9421)
+++ branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionTabularView.Designer.cs	(revision 9835)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionTabularView.cs
===================================================================
--- branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionTabularView.cs	(revision 9421)
+++ branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionTabularView.cs	(revision 9835)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -101,4 +101,5 @@
     }
     private void run_Changed(object sender, EventArgs e) {
+      if (suppressUpdates) return;
       if (InvokeRequired)
         this.Invoke(new EventHandler(run_Changed), sender, e);
@@ -199,4 +200,5 @@
         runIndex++;
       }
+      rowsTextBox.Text = dataGridView.Rows.GetRowCount(DataGridViewElementStates.Visible).ToString();
       UpdateRowHeaders();
     }
Index: branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionView.Designer.cs
===================================================================
--- branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionView.Designer.cs	(revision 9421)
+++ branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionView.Designer.cs	(revision 9835)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionView.cs
===================================================================
--- branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionView.cs	(revision 9421)
+++ branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionView.cs	(revision 9835)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -255,6 +255,10 @@
       if (e.KeyCode == Keys.Delete) {
         if ((itemsListView.SelectedItems.Count > 0) && !Content.IsReadOnly && !ReadOnly) {
-          foreach (ListViewItem item in itemsListView.SelectedItems)
-            Content.Remove((IRun)item.Tag);
+          if (RunCollection != null) {
+            RunCollection.RemoveRange(itemsListView.SelectedItems.Cast<ListViewItem>().Select(i => (IRun)i.Tag));
+          } else {
+            foreach (ListViewItem item in itemsListView.SelectedItems)
+              Content.Remove((IRun)item.Tag);
+          }
         }
       }
@@ -350,6 +354,10 @@
     private void removeButton_Click(object sender, EventArgs e) {
       if (itemsListView.SelectedItems.Count > 0) {
-        foreach (ListViewItem item in itemsListView.SelectedItems)
-          Content.Remove((IRun)item.Tag);
+        if (RunCollection != null) {
+          RunCollection.RemoveRange(itemsListView.SelectedItems.Cast<ListViewItem>().Select(i => (IRun)i.Tag));
+        } else {
+          foreach (ListViewItem item in itemsListView.SelectedItems)
+            Content.Remove((IRun)item.Tag);
+        }
         itemsListView.SelectedItems.Clear();
       }
@@ -377,5 +385,6 @@
       try {
         RunCollection.Modify();
-      } finally {
+      }
+      finally {
         ReadOnly = false;
       }
