Index: /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views-3.3.csproj
===================================================================
--- /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views-3.3.csproj	(revision 9195)
+++ /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views-3.3.csproj	(revision 9196)
@@ -38,4 +38,19 @@
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="Accord">
+      <HintPath>libs\Accord.dll</HintPath>
+    </Reference>
+    <Reference Include="Accord.Math">
+      <HintPath>libs\Accord.Math.dll</HintPath>
+    </Reference>
+    <Reference Include="Accord.Statistics">
+      <HintPath>libs\Accord.Statistics.dll</HintPath>
+    </Reference>
+    <Reference Include="AForge">
+      <HintPath>libs\AForge.dll</HintPath>
+    </Reference>
+    <Reference Include="AForge.Math">
+      <HintPath>libs\AForge.Math.dll</HintPath>
+    </Reference>
     <Reference Include="ALGLIB-3.6.0, Version=3.6.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
       <Private>False</Private>
@@ -104,4 +119,10 @@
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="ParameterInfluenceView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="ParameterInfluenceView.designer.cs">
+      <DependentUpon>ParameterInfluenceView.cs</DependentUpon>
+    </Compile>
     <Compile Include="RunCollectionStatisticalTabularView.cs">
       <SubType>UserControl</SubType>
Index: /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/ParameterInfluenceView.cs
===================================================================
--- /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/ParameterInfluenceView.cs	(revision 9196)
+++ /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/ParameterInfluenceView.cs	(revision 9196)
@@ -0,0 +1,295 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Drawing;
+using System.Linq;
+using System.Windows.Forms;
+using Accord.Statistics.Testing;
+using HeuristicLab.Core.Views;
+using HeuristicLab.Data;
+using HeuristicLab.MainForm;
+using HeuristicLab.Optimization;
+
+namespace HeuristicLab.Analysis.AlgorithmBehavior.Views {
+  [View("Parameter Influence View")]
+  [Content(typeof(RunCollection), false)]
+  public sealed partial class ParameterInfluenceView : ItemView {
+    public ParameterInfluenceView() {
+      InitializeComponent();
+    }
+
+    public new RunCollection Content {
+      get { return (RunCollection)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public override bool ReadOnly {
+      get { return true; }
+      set { /*not needed because results are always readonly */}
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      resultComboBox.Items.Clear();
+      parameterComboBox.Items.Clear();
+
+      if (Content != null) {
+        UpdateResultComboBox();
+        UpdateParameterComboBox();
+      }
+    }
+
+    #region events
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      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);
+
+      RegisterRunEvents(Content);
+    }
+
+    private void RegisterRunEvents(IEnumerable<IRun> runs) {
+      foreach (IRun run in runs)
+        run.Changed += new EventHandler(run_Changed);
+    }
+
+    protected override void DeregisterContentEvents() {
+      base.DeregisterContentEvents();
+      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);
+
+      DeregisterRunEvents(Content);
+    }
+
+    private void DeregisterRunEvents(IEnumerable<IRun> runs) {
+      foreach (IRun run in runs)
+        run.Changed -= new EventHandler(run_Changed);
+    }
+
+    private void Content_CollectionReset(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<IRun> e) {
+      DeregisterRunEvents(e.OldItems);
+      RegisterRunEvents(e.Items);
+      //RebuildInfluenceDataTable();
+    }
+
+    private void Content_ItemsRemoved(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<IRun> e) {
+      DeregisterRunEvents(e.Items);
+      //RebuildInfluenceDataTable();
+    }
+
+    private void Content_ItemsAdded(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<IRun> e) {
+      RegisterRunEvents(e.Items);
+      //RebuildInfluenceDataTable();
+    }
+
+    private void run_Changed(object sender, EventArgs e) {
+      if (InvokeRequired)
+        this.Invoke(new EventHandler(run_Changed), sender, e);
+      else {
+        IRun run = (IRun)sender;
+        UpdateRun(run);
+      }
+    }
+    #endregion
+
+    private void UpdateRun(IRun run) {
+      //TODO: hacky di hack... this is baaaadddd
+      //RebuildInfluenceDataTable();
+    }
+
+    private void UpdateResultComboBox() {
+      resultComboBox.Items.Clear();
+      var results = (from run in Content
+                     from result in run.Results
+                     select result.Key).Distinct().ToArray();
+
+      resultComboBox.Items.AddRange(results);
+      if (resultComboBox.Items.Count > 0) resultComboBox.SelectedItem = resultComboBox.Items[0];
+    }
+
+    private void UpdateParameterComboBox() {
+      parameterComboBox.Items.Clear();
+      var parameters = (from run in Content
+                        from param in run.Parameters
+                        select param.Key).Distinct().ToArray();
+
+      parameterComboBox.Items.AddRange(parameters);
+      if (parameterComboBox.Items.Count > 0) parameterComboBox.SelectedItem = parameterComboBox.Items[0];
+    }
+
+    private List<string> GetColumnNames(string parameterToExclude) {
+      string resultName = (string)resultComboBox.SelectedItem;
+      var runs = Content.Where(x => x.Results.ContainsKey(resultName) && x.Visible);
+      var parameters = (from run in runs
+                        from p in run.Parameters
+                        select p.Key).Distinct();
+
+      parameters = parameters.Where(x => x != "Seed" && x != "Algorithm Name" && x != parameterToExclude);
+
+      List<string> ret = new List<string>();
+      foreach (string para in parameters) {
+        var r = runs.Where(x => x.Parameters.ContainsKey(para));
+        var vals = r.First().Parameters[para];
+        if (vals.GetType().GetMember("Value").Count() > 0) {
+          var cnt = r.Select(x => ((dynamic)x.Parameters[para]).Value).Distinct();
+          if (cnt.Count() > 1)
+            ret.Add(para);
+        }
+      }
+      return ret;
+    }
+
+    private int CalculateParameterVariations() {
+      string parameterName = (string)parameterComboBox.SelectedItem;
+      var runs = Content.Where(x => x.Parameters.ContainsKey(parameterName) && x.Visible);
+
+      var r = runs.Where(x => x.Parameters.ContainsKey(parameterName));
+      var vals = r.First().Parameters[parameterName];
+      if (vals.GetType().GetMember("Value").Count() > 0) {
+        var cnt = r.Select(x => ((dynamic)x.Parameters[parameterName]).Value).Distinct();
+        return cnt.Count();
+      }
+
+      return 0;
+    }
+
+    private List<string> GetRowNames() {
+      string parameterName = (string)parameterComboBox.SelectedItem;
+      var runs = Content.Where(x => x.Parameters.ContainsKey(parameterName) && x.Visible);
+      List<string> ret = new List<string>();
+
+      var r = runs.Where(x => x.Parameters.ContainsKey(parameterName));
+      var vals = r.First().Parameters[parameterName];
+      if (vals.GetType().GetMember("Value").Count() > 0) {
+        var cnt = r.Select(x => ((dynamic)x.Parameters[parameterName]).Value).Distinct();
+        ret.AddRange(cnt.Select(x => (string)x.ToString()));
+      }
+
+      return ret;
+    }
+
+    private bool ContainsParameterValue(IRun run, string parameterName, string valueName) {
+      if (!run.Parameters.ContainsKey(parameterName))
+        return false;
+
+      var para = run.Parameters[parameterName];
+
+      if (para.GetType().GetMember("Value").Count() > 0) {
+        var val = ((dynamic)para).Value;
+        if (val.ToString() == valueName) {
+          return true;
+        }
+      }
+      return false;
+    }
+
+    private List<dynamic> GetParameterVariatons(IEnumerable<IRun> runs, string parameterName) {
+      List<dynamic> vals = new List<dynamic>();
+
+      var ps = runs.Select(x => (dynamic)x.Parameters[parameterName]);
+
+      foreach (var p in ps) {
+        if (p.GetType().GetMember("Value").Length > 0) {
+          var val = ((dynamic)p).Value;
+          if (!vals.Contains(val)) {
+            vals.Add(val);
+          }
+        }
+      }
+      return vals;
+    }
+
+    private void RebuildInfluenceDataTable() {
+      string resultName = (string)resultComboBox.SelectedItem;
+      string parameterName = (string)parameterComboBox.SelectedItem;
+
+      var columnNames = GetColumnNames(parameterName).ToArray();
+      var rowNames = GetRowNames().ToArray();
+
+      var runs = Content.Where(x => x.Results.ContainsKey(resultName) && x.Visible);
+
+      StringMatrix dt = new StringMatrix(CalculateParameterVariations(), columnNames.Count());
+      dt.RowNames = rowNames;
+      dt.ColumnNames = columnNames;
+
+      int i = 0, j = 0;
+      foreach (var rowName in rowNames) {
+        j = 0;
+        foreach (var columnName in columnNames) {
+          IEnumerable<IRun> curRuns = null;
+          curRuns = runs.Where(x => x.Parameters.ContainsKey(columnName) && ContainsParameterValue(x, parameterName, rowName));
+
+          var parameterVals = GetParameterVariatons(curRuns, columnName);
+
+          List<double[]> results = new List<double[]>();
+          foreach (var cpVal in parameterVals) {
+            var pvRuns = curRuns.Where(x => ((dynamic)x.Parameters[columnName]).Value == cpVal);
+            var ress = pvRuns.Select(x => (double)((dynamic)x.Results[resultName]).Value).ToArray();
+            results.Add(ress);
+          }
+
+          OneWayAnova owAnova = new OneWayAnova(results.ToArray());
+          var bla = owAnova.Table;
+          dt[i, j] = owAnova.Table.First().Significance.PValue.ToString();
+          j++;
+        }
+        i++;
+      }
+
+      stringConvertibleMatrixView.Content = dt;
+    }
+
+    private void calculateInfluence_Click(object sender, EventArgs e) {
+      RebuildInfluenceDataTable();
+    }
+
+    private void colorButton_Click(object sender, EventArgs e) {
+      string resultName = (string)resultComboBox.SelectedItem;
+      string rowName = (string)parameterComboBox.SelectedItem;
+      var runs = Content.Where(x => x.Results.ContainsKey(resultName) && x.Visible);
+      Dictionary<int, double> values = new Dictionary<int, double>();
+
+      if (stringConvertibleMatrixView.DataGridView.CurrentCell != null) {
+        int curIndex = stringConvertibleMatrixView.DataGridView.CurrentCell.ColumnIndex;
+
+        for (int i = 0; i < stringConvertibleMatrixView.Content.Rows; i++) {
+          values[i] = double.Parse(stringConvertibleMatrixView.Content.GetValue(i, curIndex));
+        }
+
+        var orderedValues = values.OrderBy(x => x.Value);
+
+        for (int i = 0; i < orderedValues.Count(); i++) {
+          var row = stringConvertibleMatrixView.DataGridView.Rows[orderedValues.ElementAt(i).Key];
+
+          int r = (int)Math.Round((double)i / (double)orderedValues.Count() * 255.0);
+          int g = (int)Math.Round(((double)orderedValues.Count() - (double)i) / (double)orderedValues.Count() * 255.0);
+
+          Color color = Color.FromArgb(r, g, 0);
+          row.DefaultCellStyle.ForeColor = color;
+        }
+      }
+    }
+  }
+}
Index: /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/ParameterInfluenceView.designer.cs
===================================================================
--- /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/ParameterInfluenceView.designer.cs	(revision 9196)
+++ /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/ParameterInfluenceView.designer.cs	(revision 9196)
@@ -0,0 +1,158 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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
+
+namespace HeuristicLab.Analysis.AlgorithmBehavior.Views {
+  partial class ParameterInfluenceView {
+    /// <summary>
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary>
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Windows Form Designer generated code
+
+    /// <summary>
+    /// Required method for Designer support - do not modify
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.stringConvertibleMatrixView = new HeuristicLab.Data.Views.StringConvertibleMatrixView();
+      this.parameterComboBox = new System.Windows.Forms.ComboBox();
+      this.label2 = new System.Windows.Forms.Label();
+      this.label1 = new System.Windows.Forms.Label();
+      this.resultComboBox = new System.Windows.Forms.ComboBox();
+      this.calculateInfluence = new System.Windows.Forms.Button();
+      this.colorButton = new System.Windows.Forms.Button();
+      this.SuspendLayout();
+      // 
+      // stringConvertibleMatrixView
+      // 
+      this.stringConvertibleMatrixView.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.stringConvertibleMatrixView.Caption = "StringConvertibleMatrix View";
+      this.stringConvertibleMatrixView.Content = null;
+      this.stringConvertibleMatrixView.Location = new System.Drawing.Point(3, 59);
+      this.stringConvertibleMatrixView.Name = "stringConvertibleMatrixView";
+      this.stringConvertibleMatrixView.ReadOnly = false;
+      this.stringConvertibleMatrixView.ShowRowsAndColumnsTextBox = true;
+      this.stringConvertibleMatrixView.ShowStatisticalInformation = true;
+      this.stringConvertibleMatrixView.Size = new System.Drawing.Size(492, 294);
+      this.stringConvertibleMatrixView.TabIndex = 0;
+      // 
+      // parameterComboBox
+      // 
+      this.parameterComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.parameterComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+      this.parameterComboBox.FormattingEnabled = true;
+      this.parameterComboBox.Location = new System.Drawing.Point(71, 33);
+      this.parameterComboBox.Name = "parameterComboBox";
+      this.parameterComboBox.Size = new System.Drawing.Size(424, 21);
+      this.parameterComboBox.TabIndex = 8;
+      // 
+      // label2
+      // 
+      this.label2.AutoSize = true;
+      this.label2.Location = new System.Drawing.Point(5, 36);
+      this.label2.Name = "label2";
+      this.label2.Size = new System.Drawing.Size(58, 13);
+      this.label2.TabIndex = 7;
+      this.label2.Text = "Parameter:";
+      // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Location = new System.Drawing.Point(5, 6);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(40, 13);
+      this.label1.TabIndex = 6;
+      this.label1.Text = "Result:";
+      // 
+      // resultComboBox
+      // 
+      this.resultComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.resultComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+      this.resultComboBox.FormattingEnabled = true;
+      this.resultComboBox.Location = new System.Drawing.Point(71, 3);
+      this.resultComboBox.Name = "resultComboBox";
+      this.resultComboBox.Size = new System.Drawing.Size(424, 21);
+      this.resultComboBox.TabIndex = 5;
+      // 
+      // calculateInfluence
+      // 
+      this.calculateInfluence.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+      this.calculateInfluence.Location = new System.Drawing.Point(386, 359);
+      this.calculateInfluence.Name = "calculateInfluence";
+      this.calculateInfluence.Size = new System.Drawing.Size(109, 23);
+      this.calculateInfluence.TabIndex = 9;
+      this.calculateInfluence.Text = "Calculate Influence";
+      this.calculateInfluence.UseVisualStyleBackColor = true;
+      this.calculateInfluence.Click += new System.EventHandler(this.calculateInfluence_Click);
+      // 
+      // colorButton
+      // 
+      this.colorButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+      this.colorButton.Location = new System.Drawing.Point(305, 359);
+      this.colorButton.Name = "colorButton";
+      this.colorButton.Size = new System.Drawing.Size(75, 23);
+      this.colorButton.TabIndex = 11;
+      this.colorButton.Text = "Color Rows";
+      this.colorButton.UseVisualStyleBackColor = true;
+      this.colorButton.Click += new System.EventHandler(this.colorButton_Click);
+      // 
+      // ParameterInfluenceView
+      // 
+      this.Controls.Add(this.colorButton);
+      this.Controls.Add(this.calculateInfluence);
+      this.Controls.Add(this.parameterComboBox);
+      this.Controls.Add(this.label2);
+      this.Controls.Add(this.label1);
+      this.Controls.Add(this.resultComboBox);
+      this.Controls.Add(this.stringConvertibleMatrixView);
+      this.Name = "ParameterInfluenceView";
+      this.Size = new System.Drawing.Size(498, 385);
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+    #endregion
+
+    private HeuristicLab.Data.Views.StringConvertibleMatrixView stringConvertibleMatrixView;
+    private System.Windows.Forms.ComboBox parameterComboBox;
+    private System.Windows.Forms.Label label2;
+    private System.Windows.Forms.Label label1;
+    private System.Windows.Forms.ComboBox resultComboBox;
+    private System.Windows.Forms.Button calculateInfluence;
+    private System.Windows.Forms.Button colorButton;
+  }
+}
Index: /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/RunCollectionStatisticalTabularView.cs
===================================================================
--- /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/RunCollectionStatisticalTabularView.cs	(revision 9195)
+++ /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/RunCollectionStatisticalTabularView.cs	(revision 9196)
@@ -52,4 +52,16 @@
     }
 
+    /// <summary>
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        stringConvertibleMatrixView.DataGridView.RowHeaderMouseDoubleClick -= new DataGridViewCellMouseEventHandler(DataGridView_RowHeaderMouseDoubleClick);
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
     public new RunCollection Content {
       get { return (RunCollection)base.Content; }
Index: /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/RunCollectionStatisticalTabularView.designer.cs
===================================================================
--- /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/RunCollectionStatisticalTabularView.designer.cs	(revision 9195)
+++ /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/RunCollectionStatisticalTabularView.designer.cs	(revision 9196)
@@ -26,15 +26,4 @@
     /// </summary>
     private System.ComponentModel.IContainer components = null;
-
-    /// <summary>
-    /// Clean up any resources being used.
-    /// </summary>
-    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-    protected override void Dispose(bool disposing) {
-      if (disposing && (components != null)) {
-        components.Dispose();
-      }
-      base.Dispose(disposing);
-    }
 
     #region Windows Form Designer generated code
Index: /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/SolutionToPopulationAnalyzer.cs
===================================================================
--- /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/SolutionToPopulationAnalyzer.cs	(revision 9195)
+++ /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/SolutionToPopulationAnalyzer.cs	(revision 9196)
@@ -88,7 +88,7 @@
       cnt = original.cnt;
       lastGeneration = original.lastGeneration;
-      populationDiversityPlot = (ScatterPlotHelper)populationDiversityPlot.Clone(cloner);
-      populationQualityPlot = (ScatterPlotHelper)populationQualityPlot.Clone(cloner);
-      qualityPlot = (ScatterPlotHelper)qualityPlot.Clone(cloner);
+      populationDiversityPlot = (ScatterPlotHelper)original.populationDiversityPlot.Clone(cloner);
+      populationQualityPlot = (ScatterPlotHelper)original.populationQualityPlot.Clone(cloner);
+      qualityPlot = (ScatterPlotHelper)original.qualityPlot.Clone(cloner);
     }
 
