Index: branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/DensityDataTableView.cs
===================================================================
--- branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/DensityDataTableView.cs	(revision 11609)
+++ 	(revision )
@@ -1,52 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System.Linq;
-using System.Windows.Forms.DataVisualization.Charting;
-using HeuristicLab.Analysis.Views;
-
-namespace HeuristicLab.Analysis.Statistics {
-  public class DensityDataTableView : DataTableView {
-
-    protected override void CalculateHistogram(Series series, DataRow row) {
-      base.CalculateHistogram(series, row);
-
-      string densitySeriesName = "Density " + row.Name;
-      double stepWidth = series.Points[1].XValue - series.Points[0].XValue;
-
-      if (chart.Series.Any(x => x.Name == densitySeriesName)) {
-        var ds = chart.Series.Single(x => x.Name == densitySeriesName);
-        chart.Series.Remove(ds);
-      }
-
-      var res = NormalDistribution.Density(row.Values.ToArray(), row.Values.Count, stepWidth);
-
-      Series newSeries = new Series(densitySeriesName);
-      newSeries.Color = series.Color;
-      newSeries.ChartType = SeriesChartType.FastLine;
-      foreach (var r in res) {
-        newSeries.Points.Add(new DataPoint(r.Item1, r.Item2));
-      }
-
-      chart.Series.Add(newSeries);
-    }
-  }
-}
Index: branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/HeuristicLab.Analysis.Statistics-3.3.csproj
===================================================================
--- branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/HeuristicLab.Analysis.Statistics-3.3.csproj	(revision 11609)
+++ branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/HeuristicLab.Analysis.Statistics-3.3.csproj	(revision 11611)
@@ -120,11 +120,7 @@
   <ItemGroup>
     <Compile Include="BonferroniHolm.cs" />
-    <Compile Include="DensityDataTableView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
     <Compile Include="EnumerableStatisticsExtension.cs" />
     <Compile Include="ExpFitting.cs" />
     <Compile Include="IFitting.cs" />
-    <Compile Include="NormalDistribution.cs" />
     <Compile Include="LinearLeastSquaresFitting.cs" />
     <Compile Include="LogFitting.cs" />
Index: branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/NormalDistribution.cs
===================================================================
--- branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/NormalDistribution.cs	(revision 11609)
+++ 	(revision )
@@ -1,67 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Common;
-
-namespace HeuristicLab.Analysis.Statistics {
-  public static class NormalDistribution {
-    public static double[] Density(double[] x, double mean, double stdDev) {
-      double[] result = new double[x.Length];
-
-      for (int i = 0; i < x.Length; i++) {
-        result[i] = (1.0 / (stdDev * Math.Sqrt(2.0 * Math.PI))) *
-                    Math.Exp(-((Math.Pow(x[i] - mean, 2.0)) /
-                               (2.0 * Math.Pow(stdDev, 2.0))));
-      }
-
-      return result;
-    }
-
-    // based on the idea from http://www.statmethods.net/graphs/density.html
-    public static List<Tuple<double, double>> Density(double[] x, int nrOfPoints, double stepWidth) {
-      double[] newX = new double[nrOfPoints];
-      double mean = x.Average();
-      double stdDev = x.StandardDeviation();
-
-      double dataMin = x.Min();
-      double dataMax = x.Max();
-      double stepWith = (dataMax - dataMin) / nrOfPoints;
-      double cur = x.Min();
-      newX[0] = cur;
-      for (int i = 1; i < nrOfPoints; i++) {
-        cur += stepWith;
-        newX[i] = cur;
-      }
-
-      var y = Density(newX, mean, stdDev).Select(k => k * stepWidth * x.Length).ToList();
-
-      var points = new List<Tuple<double, double>>();
-      for (int i = 0; i < newX.Length; i++) {
-        points.Add(new Tuple<double, double>(newX[i], y[i]));
-      }
-
-      return points;
-    }
-  }
-}
Index: branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestingView.cs
===================================================================
--- branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestingView.cs	(revision 11609)
+++ branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestingView.cs	(revision 11611)
@@ -205,6 +205,12 @@
         }
 
-        dataTableView.Content = histogramDataTable;
+        GenerateChart(histogramDataTable);
         stringConvertibleMatrixView.Content = dt;
+      }
+    }
+
+    private void GenerateChart(DataTable histogramTable) {
+      foreach (var row in histogramTable.Rows) {
+        dataTableView.AddPoints(row.Name, row.Values, true);
       }
     }
Index: branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestingView.designer.cs
===================================================================
--- branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestingView.designer.cs	(revision 11609)
+++ branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestingView.designer.cs	(revision 11611)
@@ -74,5 +74,5 @@
       this.tabPage1 = new System.Windows.Forms.TabPage();
       this.tabPage2 = new System.Windows.Forms.TabPage();
-      this.dataTableView = new DensityDataTableView();
+      this.dataTableView = new HeuristicLab.Analysis.Views.HistogramControl();
       this.contextMenuStrip1.SuspendLayout();
       ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
@@ -456,9 +456,6 @@
             | System.Windows.Forms.AnchorStyles.Left)
             | System.Windows.Forms.AnchorStyles.Right)));
-      this.dataTableView.Caption = "DataTable View";
-      this.dataTableView.Content = null;
       this.dataTableView.Location = new System.Drawing.Point(6, 6);
       this.dataTableView.Name = "dataTableView";
-      this.dataTableView.ReadOnly = false;
       this.dataTableView.Size = new System.Drawing.Size(910, 529);
       this.dataTableView.TabIndex = 0;
@@ -523,5 +520,5 @@
     private System.Windows.Forms.TabPage tabPage1;
     private System.Windows.Forms.TabPage tabPage2;
-    private DensityDataTableView dataTableView;
+    private HeuristicLab.Analysis.Views.HistogramControl dataTableView;
   }
 }
