Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionBoxPlotView.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionBoxPlotView.cs	(revision 4887)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionBoxPlotView.cs	(revision 4888)
@@ -71,5 +71,5 @@
       Content.ItemsRemoved += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_ItemsRemoved);
       Content.CollectionReset += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_CollectionReset);
-      Content.UpdateOfRunsInProgress += new EventHandler<EventArgs<bool>>(Content_UpdateOfRunsInProgress);
+      Content.UpdateOfRunsInProgressChanged += new EventHandler(Content_UpdateOfRunsInProgressChanged);
       RegisterRunEvents(Content);
     }
@@ -81,5 +81,5 @@
       Content.ItemsRemoved -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_ItemsRemoved);
       Content.CollectionReset -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_CollectionReset);
-      Content.UpdateOfRunsInProgress -= new EventHandler<EventArgs<bool>>(Content_UpdateOfRunsInProgress);
+      Content.UpdateOfRunsInProgressChanged -= new EventHandler(Content_UpdateOfRunsInProgressChanged);
       DeregisterRunEvents(Content);
     }
@@ -104,9 +104,9 @@
       RegisterRunEvents(e.Items);
     }
-    private void Content_UpdateOfRunsInProgress(object sender, EventArgs<bool> e) {
+    private void Content_UpdateOfRunsInProgressChanged(object sender, EventArgs e) {
       if (InvokeRequired)
-        Invoke(new EventHandler<EventArgs<bool>>(Content_UpdateOfRunsInProgress), sender, e);
+        Invoke(new EventHandler(Content_UpdateOfRunsInProgressChanged), sender, e);
       else {
-        suppressUpdates = e.Value;
+        suppressUpdates = Content.UpdateOfRunsInProgress;
         if (!suppressUpdates) UpdateDataPoints();
       }
@@ -339,7 +339,9 @@
       if (this.chart.Series.Count > 0) {
         noRunsLabel.Visible = false;
+        showStatisticsCheckBox.Enabled = true;
         splitContainer.Panel2Collapsed = !showStatisticsCheckBox.Checked;
       } else {
         noRunsLabel.Visible = true;
+        showStatisticsCheckBox.Enabled = false;
         splitContainer.Panel2Collapsed = true;
       }
Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionBubbleChartView.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionBubbleChartView.cs	(revision 4887)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionBubbleChartView.cs	(revision 4888)
@@ -89,5 +89,5 @@
       Content.ItemsRemoved += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_ItemsRemoved);
       Content.CollectionReset += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_CollectionReset);
-      Content.UpdateOfRunsInProgress += new EventHandler<EventArgs<bool>>(Content_UpdateOfRunsInProgress);
+      Content.UpdateOfRunsInProgressChanged += new EventHandler(Content_UpdateOfRunsInProgressChanged);
       RegisterRunEvents(Content);
     }
@@ -99,5 +99,5 @@
       Content.ItemsRemoved -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_ItemsRemoved);
       Content.CollectionReset -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_CollectionReset);
-      Content.UpdateOfRunsInProgress -= new EventHandler<EventArgs<bool>>(Content_UpdateOfRunsInProgress);
+      Content.UpdateOfRunsInProgressChanged -= new EventHandler(Content_UpdateOfRunsInProgressChanged);
       DeregisterRunEvents(Content);
     }
@@ -205,9 +205,9 @@
 
 
-    private void Content_UpdateOfRunsInProgress(object sender, EventArgs<bool> e) {
+    private void Content_UpdateOfRunsInProgressChanged(object sender, EventArgs e) {
       if (InvokeRequired)
-        Invoke(new EventHandler<EventArgs<bool>>(Content_UpdateOfRunsInProgress), sender, e);
+        Invoke(new EventHandler(Content_UpdateOfRunsInProgressChanged), sender, e);
       else {
-        suppressUpdates = e.Value;
+        suppressUpdates = Content.UpdateOfRunsInProgress;
         if (!suppressUpdates) UpdateDataPoints();
       }
@@ -377,5 +377,5 @@
     }
 
-    #region drag and drop and tooltip
+    #region Drag & drop and tooltip
     private IRun draggedRun;
     private void chart_MouseDown(object sender, MouseEventArgs e) {
@@ -398,4 +398,5 @@
     private void chart_MouseUp(object sender, MouseEventArgs e) {
       if (isSelecting) {
+        Content.UpdateOfRunsInProgress = true;
         System.Windows.Forms.DataVisualization.Charting.Cursor xCursor = chart.ChartAreas[0].CursorX;
         System.Windows.Forms.DataVisualization.Charting.Cursor yCursor = chart.ChartAreas[0].CursorY;
@@ -429,4 +430,5 @@
         this.chart.ChartAreas[0].CursorX.SelectionStart = this.chart.ChartAreas[0].CursorX.SelectionEnd;
         this.chart.ChartAreas[0].CursorY.SelectionStart = this.chart.ChartAreas[0].CursorY.SelectionEnd;
+        Content.UpdateOfRunsInProgress = false;
       }
     }
@@ -602,5 +604,5 @@
     #endregion
 
-    #region automatic coloring
+    #region Automatic coloring
     private void colorXAxisButton_Click(object sender, EventArgs e) {
       ColorRuns(xAxisValue);
@@ -612,5 +614,5 @@
 
     private void ColorRuns(string axisValue) {
-      Content.OnUpdateOfRunsInProgress(true);
+      Content.UpdateOfRunsInProgress = true;
       var runs = Content.Select(r => new { Run = r, Value = GetValue(r, axisValue) }).Where(r => r.Value.HasValue);
       double minValue = runs.Min(r => r.Value.Value);
@@ -623,5 +625,5 @@
         r.Run.Color = ColorGradient.Colors[colorIndex];
       }
-      Content.OnUpdateOfRunsInProgress(false);
+      Content.UpdateOfRunsInProgress = false;
     }
     #endregion
Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionTabularView.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionTabularView.cs	(revision 4887)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionTabularView.cs	(revision 4888)
@@ -24,8 +24,7 @@
 using System.Linq;
 using System.Windows.Forms;
-using HeuristicLab.Common;
+using HeuristicLab.Core;
 using HeuristicLab.Data.Views;
 using HeuristicLab.MainForm;
-using HeuristicLab.Core;
 
 namespace HeuristicLab.Optimization.Views {
@@ -64,5 +63,5 @@
       Content.ItemsRemoved += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_ItemsRemoved);
       Content.CollectionReset += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_CollectionReset);
-      Content.UpdateOfRunsInProgress += new EventHandler<EventArgs<bool>>(Content_UpdateOfRunsInProgress);
+      Content.UpdateOfRunsInProgressChanged += new EventHandler(Content_UpdateOfRunsInProgressChanged);
       RegisterRunEvents(Content);
     }
@@ -76,5 +75,5 @@
       Content.ItemsRemoved -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_ItemsRemoved);
       Content.CollectionReset -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_CollectionReset);
-      Content.UpdateOfRunsInProgress -= new EventHandler<EventArgs<bool>>(Content_UpdateOfRunsInProgress);
+      Content.UpdateOfRunsInProgressChanged -= new EventHandler(Content_UpdateOfRunsInProgressChanged);
       DeregisterRunEvents(Content);
     }
@@ -126,9 +125,9 @@
 
 
-    private void Content_UpdateOfRunsInProgress(object sender, Common.EventArgs<bool> e) {
+    private void Content_UpdateOfRunsInProgressChanged(object sender, EventArgs e) {
       if (InvokeRequired)
-        Invoke(new EventHandler<EventArgs<bool>>(Content_UpdateOfRunsInProgress), sender, e);
+        Invoke(new EventHandler(Content_UpdateOfRunsInProgressChanged), sender, e);
       else {
-        suppressUpdates = e.Value;
+        suppressUpdates = Content.UpdateOfRunsInProgress;
         if (!suppressUpdates) UpdateRowAttributes();
       }
Index: trunk/sources/HeuristicLab.Optimization/3.3/RunCollection.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization/3.3/RunCollection.cs	(revision 4887)
+++ trunk/sources/HeuristicLab.Optimization/3.3/RunCollection.cs	(revision 4888)
@@ -37,8 +37,11 @@
 
     [StorableConstructor]
-    protected RunCollection(bool deserializing) : base(deserializing) { }
-
+    protected RunCollection(bool deserializing)
+      : base(deserializing) {
+      updateOfRunsInProgress = false;
+    }
     protected RunCollection(RunCollection original, Cloner cloner)
       : base(original, cloner) {
+      updateOfRunsInProgress = false;
       resultNames = new List<string>(original.resultNames);
       parameterNames = new List<string>(original.parameterNames);
@@ -55,11 +58,9 @@
       UpdateFiltering(true);
     }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new RunCollection(this, cloner);
-    }
     public RunCollection() : base() { Initialize(); }
     public RunCollection(int capacity) : base(capacity) { Initialize(); }
     public RunCollection(IEnumerable<IRun> collection) : base(collection) { Initialize(); this.OnItemsAdded(collection); }
     private void Initialize() {
+      updateOfRunsInProgress = false;
       parameterNames = new List<string>();
       resultNames = new List<string>();
@@ -81,4 +82,33 @@
     public RunCollectionConstraintCollection Constraints {
       get { return constraints; }
+    }
+
+    private bool updateOfRunsInProgress;
+    public bool UpdateOfRunsInProgress {
+      get { return updateOfRunsInProgress; }
+      set {
+        if (updateOfRunsInProgress != value) {
+          updateOfRunsInProgress = value;
+          OnUpdateOfRunsInProgressChanged();
+        }
+      }
+    }
+
+    [StorableHook(HookType.AfterDeserialization)]
+    private void AfterDeserialization() {
+      if (constraints == null) constraints = new RunCollectionConstraintCollection();
+      RegisterConstraintsEvents();
+      RegisterConstraintEvents(constraints);
+      UpdateFiltering(true);
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new RunCollection(this, cloner);
+    }
+
+    public event EventHandler UpdateOfRunsInProgressChanged;
+    protected virtual void OnUpdateOfRunsInProgressChanged() {
+      var handler = UpdateOfRunsInProgressChanged;
+      if (handler != null) handler(this, EventArgs.Empty);
     }
 
@@ -188,12 +218,4 @@
         value = run.Results[columnName];
       return value;
-    }
-
-    [StorableHook(HookType.AfterDeserialization)]
-    private void AfterDeserialization() {
-      if (constraints == null) constraints = new RunCollectionConstraintCollection();
-      RegisterConstraintsEvents();
-      RegisterConstraintEvents(constraints);
-      UpdateFiltering(true);
     }
 
@@ -285,20 +307,12 @@
     #endregion
 
-    #region
-    public event EventHandler<EventArgs<bool>> UpdateOfRunsInProgress;
-    public void OnUpdateOfRunsInProgress(bool inProgress) {
-      var handler = UpdateOfRunsInProgress;
-      if (handler != null) handler(this, new EventArgs<bool>(inProgress));
-    }
-    #endregion
-
-    #region filtering
+    #region Filtering
     private void UpdateFiltering(bool reset) {
-      OnUpdateOfRunsInProgress(true);
+      UpdateOfRunsInProgress = true;
       if (reset)
         list.ForEach(r => r.Visible = true);
       foreach (IRunCollectionConstraint constraint in this.constraints)
         constraint.Check();
-      OnUpdateOfRunsInProgress(false);
+      UpdateOfRunsInProgress = false;
     }
 
