Index: branches/HiveStatistics/sources/HeuristicLab.Analysis.Statistics.Views/3.3/Plugin.cs.frame
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Analysis.Statistics.Views/3.3/Plugin.cs.frame	(revision 12689)
+++ branches/HiveStatistics/sources/HeuristicLab.Analysis.Statistics.Views/3.3/Plugin.cs.frame	(revision 12843)
@@ -26,5 +26,5 @@
   /// Plugin class for HeuristicLab.Analysis.Statistics.Views plugin.
   /// </summary>
-  [Plugin("HeuristicLab.Analysis.Statistics.Views", "3.3.11.$WCREV$")]
+  [Plugin("HeuristicLab.Analysis.Statistics.Views", "3.3.12.$WCREV$")]
   [PluginFile("HeuristicLab.Analysis.Statistics.Views-3.3.dll", PluginFileType.Assembly)]
   [PluginDependency("HeuristicLab.ALGLIB", "3.7.0")]
Index: branches/HiveStatistics/sources/HeuristicLab.Analysis.Statistics.Views/3.3/Properties/AssemblyInfo.cs.frame
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Analysis.Statistics.Views/3.3/Properties/AssemblyInfo.cs.frame	(revision 12689)
+++ branches/HiveStatistics/sources/HeuristicLab.Analysis.Statistics.Views/3.3/Properties/AssemblyInfo.cs.frame	(revision 12843)
@@ -54,3 +54,3 @@
 // by using the '*' as shown below:
 [assembly: AssemblyVersion("3.3.0.0")]
-[assembly: AssemblyFileVersion("3.3.11.$WCREV$")]
+[assembly: AssemblyFileVersion("3.3.12.$WCREV$")]
Index: branches/HiveStatistics/sources/HeuristicLab.Analysis.Statistics.Views/3.3/SampleSizeInfluenceView.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Analysis.Statistics.Views/3.3/SampleSizeInfluenceView.cs	(revision 12689)
+++ branches/HiveStatistics/sources/HeuristicLab.Analysis.Statistics.Views/3.3/SampleSizeInfluenceView.cs	(revision 12843)
@@ -22,4 +22,5 @@
 using System;
 using System.Collections.Generic;
+using System.Drawing;
 using System.Linq;
 using System.Windows.Forms;
@@ -33,4 +34,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.PluginInfrastructure;
+using ViewEventArgs = System.Windows.Forms.DataVisualization.Charting.ViewEventArgs;
 
 namespace HeuristicLab.Analysis.Statistics.Views {
@@ -43,5 +45,5 @@
     private const string delimiter = ";";
 
-    private bool suppressUpdates = false;
+    private bool suppressUpdates;
     private string yAxisValue;
     private Dictionary<int, Dictionary<object, double>> categoricalMapping;
@@ -66,5 +68,5 @@
     }
     public IStringConvertibleMatrix Matrix {
-      get { return this.Content; }
+      get { return Content; }
     }
 
@@ -72,20 +74,20 @@
     protected override void RegisterContentEvents() {
       base.RegisterContentEvents();
-      Content.ColumnNamesChanged += new EventHandler(Content_ColumnNamesChanged);
-      Content.ItemsAdded += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_ItemsAdded);
-      Content.ItemsRemoved += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_ItemsRemoved);
-      Content.CollectionReset += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_CollectionReset);
-      Content.UpdateOfRunsInProgressChanged += new EventHandler(Content_UpdateOfRunsInProgressChanged);
-      Content.OptimizerNameChanged += new EventHandler(Content_AlgorithmNameChanged);
+      Content.ColumnNamesChanged += Content_ColumnNamesChanged;
+      Content.ItemsAdded += Content_ItemsAdded;
+      Content.ItemsRemoved += Content_ItemsRemoved;
+      Content.CollectionReset += Content_CollectionReset;
+      Content.UpdateOfRunsInProgressChanged += Content_UpdateOfRunsInProgressChanged;
+      Content.OptimizerNameChanged += Content_AlgorithmNameChanged;
       RegisterRunEvents(Content);
     }
     protected override void DeregisterContentEvents() {
       base.DeregisterContentEvents();
-      Content.ColumnNamesChanged -= new EventHandler(Content_ColumnNamesChanged);
-      Content.ItemsAdded -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_ItemsAdded);
-      Content.ItemsRemoved -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_ItemsRemoved);
-      Content.CollectionReset -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_CollectionReset);
-      Content.UpdateOfRunsInProgressChanged -= new EventHandler(Content_UpdateOfRunsInProgressChanged);
-      Content.OptimizerNameChanged -= new EventHandler(Content_AlgorithmNameChanged);
+      Content.ColumnNamesChanged -= Content_ColumnNamesChanged;
+      Content.ItemsAdded -= Content_ItemsAdded;
+      Content.ItemsRemoved -= Content_ItemsRemoved;
+      Content.CollectionReset -= Content_CollectionReset;
+      Content.UpdateOfRunsInProgressChanged -= Content_UpdateOfRunsInProgressChanged;
+      Content.OptimizerNameChanged -= Content_AlgorithmNameChanged;
       DeregisterRunEvents(Content);
     }
@@ -167,5 +169,5 @@
     private void run_Changed(object sender, EventArgs e) {
       if (InvokeRequired)
-        this.Invoke(new EventHandler(run_Changed), sender, e);
+        Invoke(new EventHandler(run_Changed), sender, e);
       else if (!suppressUpdates) UpdateDataPoints();
     }
@@ -185,5 +187,5 @@
 
     private void UpdateAll() {
-      this.categoricalMapping.Clear();
+      categoricalMapping.Clear();
       UpdateComboBoxes();
       UpdateDataPoints();
@@ -196,5 +198,5 @@
 
     private void UpdateSampleSizes(bool forceUpdate = false) {
-      string selectedYAxis = (string)this.yAxisComboBox.SelectedItem;
+      string selectedYAxis = (string)yAxisComboBox.SelectedItem;
 
       if (selectedYAxis != null && (xAxisTextBox.Text.Trim() == string.Empty || forceUpdate)) {
@@ -210,12 +212,12 @@
         if (values.Any()) {
           if (hypergeometricCheckBox.Checked) {
-            xAxisTextBox.Text += ((int)(values.Count() / 16)) + delimiter + " ";
-            xAxisTextBox.Text += ((int)(values.Count() / 8)) + delimiter + " ";
-            xAxisTextBox.Text += (int)(values.Count() / 4);
+            xAxisTextBox.Text += values.Count() / 16 + delimiter + " ";
+            xAxisTextBox.Text += values.Count() / 8 + delimiter + " ";
+            xAxisTextBox.Text += values.Count() / 4;
           } else {
-            xAxisTextBox.Text += ((int)(values.Count() / 4)) + delimiter + " ";
-            xAxisTextBox.Text += ((int)(values.Count() / 2)) + delimiter + " ";
-            xAxisTextBox.Text += ((int)(values.Count() / 4 * 3)) + delimiter + " ";
-            xAxisTextBox.Text += (int)(values.Count());
+            xAxisTextBox.Text += values.Count() / 4 + delimiter + " ";
+            xAxisTextBox.Text += values.Count() / 2 + delimiter + " ";
+            xAxisTextBox.Text += values.Count() / 4 * 3 + delimiter + " ";
+            xAxisTextBox.Text += values.Count();
           }
         }
@@ -224,16 +226,20 @@
 
     private void UpdateComboBoxes() {
-      string selectedYAxis = (string)this.yAxisComboBox.SelectedItem;
-      this.xAxisTextBox.Text = string.Empty;
-      this.yAxisComboBox.Items.Clear();
-      if (Content != null) {
-        string[] additionalAxisDimension = Enum.GetNames(typeof(AxisDimension));
-        UpdateSampleSizes();
-        this.yAxisComboBox.Items.AddRange(additionalAxisDimension);
-        this.yAxisComboBox.Items.AddRange(Matrix.ColumnNames.ToArray());
-
-        if (selectedYAxis != null && yAxisComboBox.Items.Contains(selectedYAxis)) {
-          yAxisComboBox.SelectedItem = selectedYAxis;
-          UpdateDataPoints();
+      if (InvokeRequired) {
+        Invoke((Action)UpdateComboBoxes);
+      } else {
+        string selectedYAxis = (string)yAxisComboBox.SelectedItem;
+        xAxisTextBox.Text = string.Empty;
+        yAxisComboBox.Items.Clear();
+        if (Content != null) {
+          string[] additionalAxisDimension = Enum.GetNames(typeof(AxisDimension));
+          UpdateSampleSizes();
+          yAxisComboBox.Items.AddRange(additionalAxisDimension);
+          yAxisComboBox.Items.AddRange(Matrix.ColumnNames.ToArray());
+
+          if (selectedYAxis != null && yAxisComboBox.Items.Contains(selectedYAxis)) {
+            yAxisComboBox.SelectedItem = selectedYAxis;
+            UpdateDataPoints();
+          }
         }
       }
@@ -241,6 +247,6 @@
 
     private void UpdateDataPoints() {
-      this.chart.Series.Clear();
-      this.seriesCache.Clear();
+      chart.Series.Clear();
+      seriesCache.Clear();
       if (Content != null) {
         var usableRuns = Content.Where(r => r.Visible).ToList();
@@ -253,11 +259,11 @@
         }
 
-        foreach (Series s in this.seriesCache.Values)
-          this.chart.Series.Add(s);
+        foreach (Series s in seriesCache.Values)
+          chart.Series.Add(s);
 
         UpdateStatistics();
         if (seriesCache.Count > 0) {
           Series boxPlotSeries = CreateBoxPlotSeries();
-          this.chart.Series.Add(boxPlotSeries);
+          chart.Series.Add(boxPlotSeries);
         }
 
@@ -314,7 +320,7 @@
 
       if (!yAxisComboBox.DroppedDown)
-        this.yAxisValue = (string)yAxisComboBox.SelectedItem;
-
-      List<double?> yValue = usableRuns.Select(x => GetValue(x, this.yAxisValue)).ToList();
+        yAxisValue = (string)yAxisComboBox.SelectedItem;
+
+      List<double?> yValue = usableRuns.Select(x => GetValue(x, yAxisValue)).ToList();
       if (yValue.Any(x => !x.HasValue)) return;
 
@@ -335,5 +341,6 @@
             v = int.Parse(ns);
             vals.Add(v);
-          } catch (Exception ex) {
+          }
+          catch (Exception ex) {
             if (verbose) {
               ErrorHandling.ShowErrorDialog("Can't parse group sizes. Please only use numbers seperated by a " + delimiter + ". ", ex);
@@ -369,5 +376,5 @@
       }
       matrix.ColumnNames = columnNames;
-      matrix.RowNames = new string[] { "Count", "Minimum", "Maximum", "Average", "Median", "Standard Deviation", "Variance", "25th Percentile", "75th Percentile", "Lower Confidence Int.", "Upper Confidence Int." };
+      matrix.RowNames = new[] { "Count", "Minimum", "Maximum", "Average", "Median", "Standard Deviation", "Variance", "25th Percentile", "75th Percentile", "Lower Confidence Int.", "Upper Confidence Int." };
 
       for (int i = 0; i < seriesCache.Count; i++) {
@@ -400,8 +407,8 @@
       boxPlotSeries["BoxPlotShowUnusualValues"] = "true";
       boxPlotSeries["PointWidth"] = "0.4";
-      boxPlotSeries.BackGradientStyle = System.Windows.Forms.DataVisualization.Charting.GradientStyle.VerticalCenter;
-      boxPlotSeries.BackSecondaryColor = System.Drawing.Color.FromArgb(130, 224, 64, 10);
-      boxPlotSeries.BorderColor = System.Drawing.Color.FromArgb(64, 64, 64);
-      boxPlotSeries.Color = System.Drawing.Color.FromArgb(224, 64, 10);
+      boxPlotSeries.BackGradientStyle = GradientStyle.VerticalCenter;
+      boxPlotSeries.BackSecondaryColor = Color.FromArgb(130, 224, 64, 10);
+      boxPlotSeries.BorderColor = Color.FromArgb(64, 64, 64);
+      boxPlotSeries.Color = Color.FromArgb(224, 64, 10);
 
       return boxPlotSeries;
@@ -414,11 +421,11 @@
 
       if (!yAxisComboBox.DroppedDown)
-        this.yAxisValue = (string)yAxisComboBox.SelectedItem;
+        yAxisValue = (string)yAxisComboBox.SelectedItem;
 
       xValue = idx;
-      yValue = GetValue(run, this.yAxisValue);
+      yValue = GetValue(run, yAxisValue);
 
       if (yValue.HasValue) {
-        if (!this.seriesCache.ContainsKey(xValue))
+        if (!seriesCache.ContainsKey(xValue))
           seriesCache[xValue] = new Series(xValue.ToString());
 
@@ -439,39 +446,38 @@
         AxisDimension axisDimension = (AxisDimension)Enum.Parse(typeof(AxisDimension), columnName);
         return GetValue(run, axisDimension);
-      } else {
-        int columnIndex = Matrix.ColumnNames.ToList().IndexOf(columnName);
-        IItem value = Content.GetValue(run, columnIndex);
-        if (value == null)
-          return null;
-
-        DoubleValue doubleValue = value as DoubleValue;
-        IntValue intValue = value as IntValue;
-        TimeSpanValue timeSpanValue = value as TimeSpanValue;
-        double? ret = null;
-        if (doubleValue != null) {
-          if (!double.IsNaN(doubleValue.Value) && !double.IsInfinity(doubleValue.Value))
-            ret = doubleValue.Value;
-        } else if (intValue != null)
-          ret = intValue.Value;
-        else if (timeSpanValue != null) {
-          ret = timeSpanValue.Value.TotalSeconds;
-        } else
-          ret = GetCategoricalValue(columnIndex, value.ToString());
-
-        return ret;
-      }
+      }
+      int columnIndex = Matrix.ColumnNames.ToList().IndexOf(columnName);
+      IItem value = Content.GetValue(run, columnIndex);
+      if (value == null)
+        return null;
+
+      DoubleValue doubleValue = value as DoubleValue;
+      IntValue intValue = value as IntValue;
+      TimeSpanValue timeSpanValue = value as TimeSpanValue;
+      double? ret = null;
+      if (doubleValue != null) {
+        if (!double.IsNaN(doubleValue.Value) && !double.IsInfinity(doubleValue.Value))
+          ret = doubleValue.Value;
+      } else if (intValue != null)
+        ret = intValue.Value;
+      else if (timeSpanValue != null) {
+        ret = timeSpanValue.Value.TotalSeconds;
+      } else
+        ret = GetCategoricalValue(columnIndex, value.ToString());
+
+      return ret;
     }
     private double GetCategoricalValue(int dimension, string value) {
-      if (!this.categoricalMapping.ContainsKey(dimension)) {
-        this.categoricalMapping[dimension] = new Dictionary<object, double>();
+      if (!categoricalMapping.ContainsKey(dimension)) {
+        categoricalMapping[dimension] = new Dictionary<object, double>();
         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) {
-          this.categoricalMapping[dimension].Add(category, count);
+          categoricalMapping[dimension].Add(category, count);
           count++;
         }
       }
-      return this.categoricalMapping[dimension][value];
+      return categoricalMapping[dimension][value];
     }
     private double GetValue(IRun run, AxisDimension axisDimension) {
@@ -483,5 +489,5 @@
           }
         default: {
-            throw new ArgumentException("No handling strategy for " + axisDimension.ToString() + " is defined.");
+            throw new ArgumentException("No handling strategy for " + axisDimension + " is defined.");
           }
       }
@@ -492,5 +498,5 @@
     #region GUI events
     private void UpdateNoRunsVisibleLabel() {
-      if (this.chart.Series.Count > 0) {
+      if (chart.Series.Count > 0) {
         noRunsLabel.Visible = false;
         showStatisticsCheckBox.Enabled = true;
@@ -517,6 +523,6 @@
     }
     private void UpdateAxisLabels() {
-      Axis xAxis = this.chart.ChartAreas[BoxPlotChartAreaName].AxisX;
-      Axis yAxis = this.chart.ChartAreas[BoxPlotChartAreaName].AxisY;
+      Axis xAxis = chart.ChartAreas[BoxPlotChartAreaName].AxisX;
+      Axis yAxis = chart.ChartAreas[BoxPlotChartAreaName].AxisY;
       int axisDimensionCount = Enum.GetNames(typeof(AxisDimension)).Count();
 
@@ -529,6 +535,6 @@
     }
 
-    private void chart_AxisViewChanged(object sender, System.Windows.Forms.DataVisualization.Charting.ViewEventArgs e) {
-      this.UpdateAxisLabels();
+    private void chart_AxisViewChanged(object sender, ViewEventArgs e) {
+      UpdateAxisLabels();
     }
 
@@ -551,11 +557,11 @@
         }
       } else if (dimension > 0 && Content.GetValue(0, dimension) is TimeSpanValue) {
-        this.chart.ChartAreas[0].RecalculateAxesScale();
-        Axis correspondingAxis = this.chart.ChartAreas[0].Axes.Where(x => x.Name == axis.Name).SingleOrDefault();
+        chart.ChartAreas[0].RecalculateAxesScale();
+        Axis correspondingAxis = chart.ChartAreas[0].Axes.Where(x => x.Name == axis.Name).SingleOrDefault();
         if (correspondingAxis == null)
           correspondingAxis = axis;
         for (double i = correspondingAxis.Minimum; i <= correspondingAxis.Maximum; i += correspondingAxis.LabelStyle.Interval) {
           TimeSpan time = TimeSpan.FromSeconds(i);
-          string x = string.Format("{0:00}:{1:00}:{2:00}", (int)time.Hours, time.Minutes, time.Seconds);
+          string x = string.Format("{0:00}:{1:00}:{2:00}", time.Hours, time.Minutes, time.Seconds);
           axis.CustomLabels.Add(i - correspondingAxis.LabelStyle.Interval / 2, i + correspondingAxis.LabelStyle.Interval / 2, x);
         }
@@ -580,12 +586,12 @@
       string newTooltipText = string.Empty;
       string oldTooltipText;
-      HitTestResult h = this.chart.HitTest(e.X, e.Y);
+      HitTestResult h = chart.HitTest(e.X, e.Y);
       if (h.ChartElementType == ChartElementType.AxisLabels) {
         newTooltipText = ((CustomLabel)h.Object).ToolTip;
       }
 
-      oldTooltipText = this.tooltip.GetToolTip(chart);
+      oldTooltipText = tooltip.GetToolTip(chart);
       if (newTooltipText != oldTooltipText)
-        this.tooltip.SetToolTip(chart, newTooltipText);
+        tooltip.SetToolTip(chart, newTooltipText);
     }
     #endregion
Index: branches/HiveStatistics/sources/HeuristicLab.Analysis.Statistics.Views/3.3/StatisticalTestsView.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Analysis.Statistics.Views/3.3/StatisticalTestsView.cs	(revision 12689)
+++ branches/HiveStatistics/sources/HeuristicLab.Analysis.Statistics.Views/3.3/StatisticalTestsView.cs	(revision 12843)
@@ -383,15 +383,19 @@
     private void CalculateAllGroupsTest() {
       double pval = KruskalWallisTest.Test(data);
-      pValTextBox.Text = pval.ToString();
-      if (pval < significanceLevel) {
-        Invoke(new Action(() => {
+      DisplayAllGroupsTextResults(pval);
+    }
+
+    private void DisplayAllGroupsTextResults(double pval) {
+      if (InvokeRequired) {
+        Invoke((Action<double>)DisplayAllGroupsTextResults, pval);
+      } else {
+        pValTextBox.Text = pval.ToString();
+        if (pval < significanceLevel) {
           groupCompLabel.Image = VSImageLibrary.Default;
           groupComTextLabel.Text = "There are groups with different distributions";
-        }));
-      } else {
-        Invoke(new Action(() => {
+        } else {
           groupCompLabel.Image = VSImageLibrary.Warning;
           groupComTextLabel.Text = "Groups have an equal distribution";
-        }));
+        }
       }
     }
