Index: branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Views-3.4.csproj
===================================================================
--- branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Views-3.4.csproj	(revision 10723)
+++ branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Views-3.4.csproj	(revision 10724)
@@ -217,26 +217,26 @@
     </Compile>
     <Compile Include="Plugin.cs" />
-    <Compile Include="SlidingWindowBestSolutionsCollectionHeatMapView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="SlidingWindowBestSolutionsCollectionHeatMapView.Designer.cs">
+    <Compile Include="SlidingWindow\SlidingWindowBestSolutionsCollectionHeatMapControl.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="SlidingWindow\SlidingWindowBestSolutionsCollectionHeatMapControl.Designer.cs">
+      <DependentUpon>SlidingWindowBestSolutionsCollectionHeatMapControl.cs</DependentUpon>
+    </Compile>
+    <Compile Include="SlidingWindow\SlidingWindowBestSolutionsCollectionHeatMapView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="SlidingWindow\SlidingWindowBestSolutionsCollectionHeatMapView.Designer.cs">
       <DependentUpon>SlidingWindowBestSolutionsCollectionHeatMapView.cs</DependentUpon>
     </Compile>
-    <Compile Include="SlidingWindowBestSolutionsCollectionHeatMapControl.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="SlidingWindowBestSolutionsCollectionHeatMapControl.Designer.cs">
-      <DependentUpon>SlidingWindowBestSolutionsCollectionHeatMapControl.cs</DependentUpon>
-    </Compile>
-    <Compile Include="SlidingWindowBestSolutionsCollectionView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="SlidingWindowBestSolutionsCollectionView.Designer.cs">
+    <Compile Include="SlidingWindow\SlidingWindowBestSolutionsCollectionView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="SlidingWindow\SlidingWindowBestSolutionsCollectionView.Designer.cs">
       <DependentUpon>SlidingWindowBestSolutionsCollectionView.cs</DependentUpon>
     </Compile>
-    <Compile Include="SlidingWindowDataView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="SlidingWindowDataView.Designer.cs">
+    <Compile Include="SlidingWindow\SlidingWindowDataView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="SlidingWindow\SlidingWindowDataView.Designer.cs">
       <DependentUpon>SlidingWindowDataView.cs</DependentUpon>
     </Compile>
Index: branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowBestSolutionsCollectionHeatMapControl.Designer.cs
===================================================================
--- branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowBestSolutionsCollectionHeatMapControl.Designer.cs	(revision 10724)
+++ branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowBestSolutionsCollectionHeatMapControl.Designer.cs	(revision 10724)
@@ -0,0 +1,111 @@
+﻿#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.Windows.Forms;
+
+namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
+
+  public partial class SlidingWindowBestSolutionsCollectionHeatMapControl {
+    /// <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 Component 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.heatMapView = new SlidingWindowBestSolutionsCollectionHeatMapView();
+      this.comboBox1 = new System.Windows.Forms.ComboBox();
+      this.label1 = new System.Windows.Forms.Label();
+      this.SuspendLayout();
+      // 
+      // heatMapView
+      // 
+      this.heatMapView.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.heatMapView.Caption = "HeatMap View";
+      this.heatMapView.Content = null;
+      this.heatMapView.Location = new System.Drawing.Point(3, 53);
+      this.heatMapView.Name = "heatMapView";
+      this.heatMapView.ReadOnly = false;
+      this.heatMapView.Size = new System.Drawing.Size(812, 537);
+      this.heatMapView.TabIndex = 0;
+      // 
+      // comboBox1
+      // 
+      this.comboBox1.FormattingEnabled = true;
+      this.comboBox1.Items.AddRange(new object[] {
+            "Pearson R2",
+            "Mean Squared Error"});
+      this.comboBox1.Location = new System.Drawing.Point(3, 26);
+      this.comboBox1.Name = "comboBox1";
+      this.comboBox1.Size = new System.Drawing.Size(153, 21);
+      this.comboBox1.TabIndex = 1;
+      this.comboBox1.Text = "Pearson R2";
+      this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
+      this.comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
+      // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Location = new System.Drawing.Point(3, 8);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(85, 13);
+      this.label1.TabIndex = 2;
+      this.label1.Text = "Quality measure:";
+      // 
+      // SlidingWindowBestSolutionsCollectionView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.label1);
+      this.Controls.Add(this.comboBox1);
+      this.Controls.Add(this.heatMapView);
+      this.Name = "SlidingWindowBestSolutionsCollectionView";
+      this.Size = new System.Drawing.Size(818, 593);
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private SlidingWindowBestSolutionsCollectionHeatMapView heatMapView;
+    private System.Windows.Forms.ComboBox comboBox1;
+    private System.Windows.Forms.Label label1;
+  }
+}
Index: branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowBestSolutionsCollectionHeatMapControl.cs
===================================================================
--- branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowBestSolutionsCollectionHeatMapControl.cs	(revision 10724)
+++ branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowBestSolutionsCollectionHeatMapControl.cs	(revision 10724)
@@ -0,0 +1,158 @@
+﻿#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.ComponentModel;
+using System.Linq;
+using System.Windows.Forms;
+using HeuristicLab.Analysis;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+using HeuristicLab.Optimization;
+using HeuristicLab.Optimization.Views;
+
+namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
+  [View("Sliding Window Best Solutions HeatMap Control")]
+  [Content(typeof(SlidingWindowBestSolutionsCollection), false)]
+  public partial class SlidingWindowBestSolutionsCollectionHeatMapControl : ItemView {
+    public new SlidingWindowBestSolutionsCollection Content {
+      get { return (SlidingWindowBestSolutionsCollection)base.Content; }
+      set { base.Content = value; }
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content != null) {
+        // set the dropdown value to the correct value
+        switch (Content.QualityMeasure) {
+          case SlidingWindowBestSolutionsCollection.QualityMeasures.PEARSON:
+            comboBox1.SelectedIndex = comboBox1.Items.IndexOf("Pearson R2");
+            break;
+          case SlidingWindowBestSolutionsCollection.QualityMeasures.MSE:
+            comboBox1.SelectedIndex = comboBox1.Items.IndexOf("Mean Squared Error");
+            break;
+        }
+        if (Content.SlidingWindowQualities != null) {
+          SetHeatmapContent(Content.SlidingWindowQualities);
+        } else if (!Content.QualitiesCalculationInProgress) {
+          Content.CalculateQualities();
+        }
+      }
+    }
+
+    private readonly IProgress progress; // use this to show some progress when the sliding window qualities are calculated for each model
+
+    public SlidingWindowBestSolutionsCollectionHeatMapControl() {
+      InitializeComponent();
+      progress = new Progress();
+      MainFormManager.GetMainForm<MainForm.WindowsForms.MainForm>().AddOperationProgressToView(this, progress);
+    }
+
+    protected override void DeregisterContentEvents() {
+      // TODO: Deregister your event handlers here
+      Content.QualitiesCalculationCompleted -= bestSolutionsCollectionQualitiesCalculated;
+      Content.QualitiesCalculationProgress -= bestSolutionCollectionQualitiesCalculationProgress;
+      Content.QualitiesUpdated -= bestSolutionCollectionQualitiesUpdated;
+      Content.QualitiesCalculationStarted -= bestSolutionsCollectionQualtiesCalculationStarted;
+      base.DeregisterContentEvents();
+    }
+
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      // TODO: Register your event handlers here
+      Content.QualitiesCalculationCompleted += bestSolutionsCollectionQualitiesCalculated;
+      Content.QualitiesCalculationProgress += bestSolutionCollectionQualitiesCalculationProgress;
+      Content.QualitiesUpdated += bestSolutionCollectionQualitiesUpdated;
+      Content.QualitiesCalculationStarted += bestSolutionsCollectionQualtiesCalculationStarted;
+    }
+
+    private void bestSolutionsCollectionQualitiesCalculated(object sender, RunWorkerCompletedEventArgs e) {
+      if (e.Cancelled || e.Error != null) {
+        progress.Cancel();
+        return;
+      }
+      SetHeatmapContent(Content.SlidingWindowQualities);
+      progress.Finish();
+    }
+
+    private void bestSolutionCollectionQualitiesUpdated(object sender, EventArgs e) {
+      SetHeatmapContent(Content.SlidingWindowQualities);
+    }
+
+    private void SetHeatmapContent(double[,] values) {
+      double min = 0, max = 0;
+      if (Content.QualityMeasure == SlidingWindowBestSolutionsCollection.QualityMeasures.PEARSON) {
+        max = 1.0;
+      } else {
+        foreach (var q in values) {
+          if (min > q) min = q;
+          if (max < q) max = q;
+        }
+      }
+
+      heatMapView.Content = new HeatMap(values, "Best Sliding Window Solutions", min, max);
+    }
+
+    private void bestSolutionsCollectionQualtiesCalculationStarted(object sender, EventArgs e) {
+      progress.Start("Calculating best solutions qualities...");
+    }
+
+    private void bestSolutionCollectionQualitiesCalculationProgress(object sender, ProgressChangedEventArgs e) {
+      progress.ProgressValue = e.ProgressPercentage / 100.0;
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      // TODO: Enable or disable controls based on whether the content is null or the view is set readonly
+    }
+
+    #region Event Handlers (child controls)
+    public void heatMapView_cellDoubleClick(object sender, DataGridViewCellEventArgs e) {
+      var dataGridView = (DataGridView)sender;
+      var cell = dataGridView.SelectedCells[0];
+      var bestSolutions = Content.SlidingWindowBestSolutions.Values.ToList();
+      var tree = bestSolutions[cell.RowIndex];
+      var model = Content.CreateModel(tree, Content.Interpreter);
+      var solution = Content.CreateSolution(model, Content.ProblemData);
+      var result = new Result("Sliding Window Solution", solution);
+      var view = MainFormManager.MainForm.ShowContent(result, typeof(ResultView));
+      if (view != null) {
+        view.ReadOnly = ReadOnly;
+        view.Locked = Locked;
+      }
+    }
+
+    private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e) {
+      var combobox = (ComboBox)sender;
+      switch ((string)combobox.SelectedItem) {
+        case "Pearson R2": {
+            Content.QualityMeasure = SlidingWindowBestSolutionsCollection.QualityMeasures.PEARSON;
+            break;
+          }
+        case "Mean Squared Error": {
+            Content.QualityMeasure = SlidingWindowBestSolutionsCollection.QualityMeasures.MSE;
+            break;
+          }
+      }
+    }
+    #endregion
+  }
+}
Index: branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowBestSolutionsCollectionHeatMapView.Designer.cs
===================================================================
--- branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowBestSolutionsCollectionHeatMapView.Designer.cs	(revision 10724)
+++ branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowBestSolutionsCollectionHeatMapView.Designer.cs	(revision 10724)
@@ -0,0 +1,32 @@
+﻿namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
+  partial class SlidingWindowBestSolutionsCollectionHeatMapView {
+    /// <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 Component 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() {
+      components = new System.ComponentModel.Container();
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+    }
+
+    #endregion
+  }
+}
Index: branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowBestSolutionsCollectionHeatMapView.cs
===================================================================
--- branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowBestSolutionsCollectionHeatMapView.cs	(revision 10724)
+++ branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowBestSolutionsCollectionHeatMapView.cs	(revision 10724)
@@ -0,0 +1,21 @@
+﻿using System.Windows.Forms;
+using HeuristicLab.Analysis;
+using HeuristicLab.Analysis.Views;
+using HeuristicLab.MainForm;
+
+namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
+  [View("SlidingWindowBestSolutionCollectionHeatMapView")]
+  [Content(typeof(HeatMap), false)]
+  public partial class SlidingWindowBestSolutionsCollectionHeatMapView : HeatMapView {
+    public SlidingWindowBestSolutionsCollectionHeatMapView() {
+      InitializeComponent();
+
+      var chartArea = chart.ChartAreas[0];
+      chartArea.AxisX.Title = "Sliding window position";
+      chartArea.AxisX.IsStartedFromZero = true;
+      chartArea.AxisY.Title = "Best solution";
+      chartArea.AxisY.IsReversed = true;
+      chartArea.AxisX.IsStartedFromZero = true;
+    }
+  }
+}
Index: branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowBestSolutionsCollectionView.Designer.cs
===================================================================
--- branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowBestSolutionsCollectionView.Designer.cs	(revision 10724)
+++ branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowBestSolutionsCollectionView.Designer.cs	(revision 10724)
@@ -0,0 +1,115 @@
+﻿#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.Windows.Forms;
+
+namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
+
+  public partial class SlidingWindowBestSolutionsCollectionView {
+    /// <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 Component 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.enhancedStringConvertibleMatrixView = new HeuristicLab.Data.Views.EnhancedStringConvertibleMatrixView();
+      this.comboBox1 = new System.Windows.Forms.ComboBox();
+      this.label1 = new System.Windows.Forms.Label();
+      this.SuspendLayout();
+      // 
+      // enhancedStringConvertibleMatrixView
+      // 
+      this.enhancedStringConvertibleMatrixView.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.enhancedStringConvertibleMatrixView.Caption = "HeatMap View";
+      this.enhancedStringConvertibleMatrixView.Content = null;
+      this.enhancedStringConvertibleMatrixView.Location = new System.Drawing.Point(3, 53);
+      this.enhancedStringConvertibleMatrixView.Maximum = 0D;
+      this.enhancedStringConvertibleMatrixView.Minimum = 0D;
+      this.enhancedStringConvertibleMatrixView.Name = "enhancedStringConvertibleMatrixView";
+      this.enhancedStringConvertibleMatrixView.ReadOnly = false;
+      this.enhancedStringConvertibleMatrixView.ShowRowsAndColumnsTextBox = false;
+      this.enhancedStringConvertibleMatrixView.ShowStatisticalInformation = false;
+      this.enhancedStringConvertibleMatrixView.Size = new System.Drawing.Size(812, 537);
+      this.enhancedStringConvertibleMatrixView.TabIndex = 0;
+      // 
+      // comboBox1
+      // 
+      this.comboBox1.FormattingEnabled = true;
+      this.comboBox1.Items.AddRange(new object[] {
+            "Pearson R2",
+            "Mean Squared Error"});
+      this.comboBox1.Location = new System.Drawing.Point(3, 26);
+      this.comboBox1.Name = "comboBox1";
+      this.comboBox1.Size = new System.Drawing.Size(153, 21);
+      this.comboBox1.TabIndex = 1;
+      this.comboBox1.Text = "Pearson R2";
+      this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
+      this.comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
+      // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Location = new System.Drawing.Point(3, 8);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(85, 13);
+      this.label1.TabIndex = 2;
+      this.label1.Text = "Quality measure:";
+      // 
+      // SlidingWindowBestSolutionsCollectionView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.label1);
+      this.Controls.Add(this.comboBox1);
+      this.Controls.Add(this.enhancedStringConvertibleMatrixView);
+      this.Name = "SlidingWindowBestSolutionsCollectionView";
+      this.Size = new System.Drawing.Size(818, 593);
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private Data.Views.EnhancedStringConvertibleMatrixView enhancedStringConvertibleMatrixView;
+    private System.Windows.Forms.ComboBox comboBox1;
+    private System.Windows.Forms.Label label1;
+  }
+}
Index: branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowBestSolutionsCollectionView.cs
===================================================================
--- branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowBestSolutionsCollectionView.cs	(revision 10724)
+++ branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowBestSolutionsCollectionView.cs	(revision 10724)
@@ -0,0 +1,168 @@
+﻿#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.ComponentModel;
+using System.Linq;
+using System.Windows.Forms;
+using HeuristicLab.Core.Views;
+using HeuristicLab.Data;
+using HeuristicLab.MainForm;
+using HeuristicLab.Optimization;
+using HeuristicLab.Optimization.Views;
+
+namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
+  [View("Sliding Window Best Solutions View")]
+  [Content(typeof(SlidingWindowBestSolutionsCollection), true)]
+  public partial class SlidingWindowBestSolutionsCollectionView : ItemView {
+    public new SlidingWindowBestSolutionsCollection Content {
+      get { return (SlidingWindowBestSolutionsCollection)base.Content; }
+      set { base.Content = value; }
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content != null) {
+        switch (Content.QualityMeasure) {
+          case SlidingWindowBestSolutionsCollection.QualityMeasures.PEARSON:
+            comboBox1.SelectedIndex = comboBox1.Items.IndexOf("Pearson R2");
+            break;
+          case SlidingWindowBestSolutionsCollection.QualityMeasures.MSE:
+            comboBox1.SelectedIndex = comboBox1.Items.IndexOf("Mean Squared Error");
+            break;
+        }
+        if (Content.SlidingWindowQualities != null) {
+          SetMatrixContent(Content.SlidingWindowQualities);
+        } else if (!Content.QualitiesCalculationInProgress) {
+          Content.CalculateQualities();
+        }
+      }
+    }
+
+    private readonly Progress progress;
+
+    protected override void DeregisterContentEvents() {
+      // TODO: Deregister your event handlers here
+      enhancedStringConvertibleMatrixView.DataGridView.CellDoubleClick -= enhancedStringConvertibleMatrixView_cellDoubleClick;
+      Content.QualitiesCalculationCompleted -= bestSolutionsCollectionQualitiesCalculated;
+      Content.QualitiesCalculationProgress -= bestSolutionCollectionQualitiesCalculationProgress;
+      Content.QualitiesUpdated -= bestSolutionCollectionQualitiesUpdated;
+      Content.QualitiesCalculationStarted -= bestSolutionsCollectionQualtiesCalculationStarted;
+      base.DeregisterContentEvents();
+    }
+
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      // TODO: Register your event handlers here
+      enhancedStringConvertibleMatrixView.DataGridView.CellDoubleClick += enhancedStringConvertibleMatrixView_cellDoubleClick;
+      Content.QualitiesCalculationCompleted += bestSolutionsCollectionQualitiesCalculated;
+      Content.QualitiesCalculationProgress += bestSolutionCollectionQualitiesCalculationProgress;
+      Content.QualitiesUpdated += bestSolutionCollectionQualitiesUpdated;
+      Content.QualitiesCalculationStarted += bestSolutionsCollectionQualtiesCalculationStarted;
+    }
+
+    public SlidingWindowBestSolutionsCollectionView() {
+      InitializeComponent();
+      progress = new Progress();
+      MainFormManager.GetMainForm<MainForm.WindowsForms.MainForm>().AddOperationProgressToView(this, progress);
+    }
+
+    #region Event Handlers (Content)
+    private void bestSolutionsCollectionQualtiesCalculationStarted(object sender, EventArgs e) {
+      progress.Start("Calculating best solutions qualities...");
+    }
+
+    private void bestSolutionsCollectionQualitiesCalculated(object sender, RunWorkerCompletedEventArgs e) {
+      if (e.Cancelled || e.Error != null) {
+        progress.Cancel();
+        return;
+      }
+
+      SetMatrixContent(Content.SlidingWindowQualities);
+      progress.Finish();
+    }
+
+    private void bestSolutionCollectionQualitiesCalculationProgress(object sender, ProgressChangedEventArgs e) {
+      progress.ProgressValue = e.ProgressPercentage / 100.0;
+    }
+
+    private void bestSolutionCollectionQualitiesUpdated(object sender, EventArgs e) {
+      SetMatrixContent(Content.SlidingWindowQualities);
+    }
+    #endregion
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      // TODO: Enable or disable controls based on whether the content is null or the view is set readonly
+    }
+
+    private void SetMatrixContent(double[,] values) {
+      var qualitiesMap = new DoubleMatrix(values); // add an extra columns for the training data
+      qualitiesMap.ColumnNames = Enumerable.Range(0, qualitiesMap.Columns - 1).Select(x => Content.SlidingWindowRanges[x].Start + " - " + Content.SlidingWindowRanges[x].End).Concat(new List<string> { "Training" });
+      qualitiesMap.RowNames = Enumerable.Range(1, qualitiesMap.Rows).Select(x => "M" + x);
+      double min = 0, max = 0;
+      if (Content.QualityMeasure == SlidingWindowBestSolutionsCollection.QualityMeasures.PEARSON) {
+        max = 1.0;
+      } else {
+        foreach (var q in qualitiesMap) {
+          if (min > q) min = q;
+          if (max < q) max = q;
+        }
+      }
+
+      enhancedStringConvertibleMatrixView.Minimum = min;
+      enhancedStringConvertibleMatrixView.Maximum = max;
+      enhancedStringConvertibleMatrixView.Content = qualitiesMap;
+    }
+
+    #region Event Handlers (child controls)
+    private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e) {
+      var combobox = (ComboBox)sender;
+      switch ((string)combobox.SelectedItem) {
+        case "Pearson R2": {
+            Content.QualityMeasure = SlidingWindowBestSolutionsCollection.QualityMeasures.PEARSON;
+            break;
+          }
+        case "Mean Squared Error": {
+            Content.QualityMeasure = SlidingWindowBestSolutionsCollection.QualityMeasures.MSE;
+            break;
+          }
+      }
+    }
+
+    public void enhancedStringConvertibleMatrixView_cellDoubleClick(object sender, DataGridViewCellEventArgs e) {
+      var dataGridView = (DataGridView)sender;
+      var cell = dataGridView.SelectedCells[0];
+      var bestSolutions = Content.SlidingWindowBestSolutions.Values.ToList();
+      var tree = bestSolutions[cell.RowIndex];
+      var model = Content.CreateModel(tree, Content.Interpreter);
+      var solution = Content.CreateSolution(model, Content.ProblemData);
+      var result = new Result("Sliding Window Solution", solution);
+      var view = MainFormManager.MainForm.ShowContent(result, typeof(ResultView));
+      if (view != null) {
+        view.ReadOnly = ReadOnly;
+        view.Locked = Locked;
+      }
+    }
+    #endregion
+  }
+}
Index: branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowDataView.Designer.cs
===================================================================
--- branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowDataView.Designer.cs	(revision 10724)
+++ branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowDataView.Designer.cs	(revision 10724)
@@ -0,0 +1,79 @@
+﻿#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
+
+namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
+  partial class SlidingWindowDataView {
+    /// <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 Component 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() {
+      System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
+      this.chart = new HeuristicLab.Visualization.ChartControlsExtensions.EnhancedChart();
+      ((System.ComponentModel.ISupportInitialize)(this.chart)).BeginInit();
+      this.SuspendLayout();
+      // 
+      // chart
+      // 
+      chartArea1.Name = "ChartArea1";
+      this.chart.ChartAreas.Add(chartArea1);
+      this.chart.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.chart.Location = new System.Drawing.Point(0, 0);
+      this.chart.Name = "chart";
+      this.chart.Size = new System.Drawing.Size(770, 410);
+      this.chart.TabIndex = 0;
+      // 
+      // SlidingWindowDataView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.chart);
+      this.Name = "SlidingWindowDataView";
+      this.Size = new System.Drawing.Size(770, 410);
+      ((System.ComponentModel.ISupportInitialize)(this.chart)).EndInit();
+      this.ResumeLayout(false);
+
+    }
+
+
+    private HeuristicLab.Visualization.ChartControlsExtensions.EnhancedChart chart;
+
+    #endregion
+  }
+}
Index: branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowDataView.cs
===================================================================
--- branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowDataView.cs	(revision 10724)
+++ branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindow/SlidingWindowDataView.cs	(revision 10724)
@@ -0,0 +1,119 @@
+﻿#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.Drawing;
+using System.Linq;
+using System.Windows.Forms.DataVisualization.Charting;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+
+namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
+  [View("Sliding Window View")]
+  [Content(typeof(SlidingWindowData), IsDefaultView = true)]
+  public partial class SlidingWindowDataView : ItemView {
+    private const string TARGETVARIABLE_SERIES_NAME = "Target Variable";
+    private const string ESTIMATEDVAlUES_SERIES_NAME = "Estimated Values";
+
+    public new SlidingWindowData Content {
+      get { return (SlidingWindowData)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public SlidingWindowDataView() {
+      InitializeComponent();
+      chart.CustomizeAllChartAreas();
+      chart.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
+      chart.ChartAreas[0].AxisX.ScaleView.Zoomable = true;
+      chart.ChartAreas[0].AxisX.IsStartedFromZero = true;
+      chart.ChartAreas[0].CursorX.Interval = 1;
+
+      chart.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;
+      chart.ChartAreas[0].AxisY.ScaleView.Zoomable = true;
+      chart.ChartAreas[0].CursorY.Interval = 0;
+
+      StripLine stripLine = new StripLine();
+      stripLine.BackColor = Color.Gold;
+      stripLine.Font = new Font("Times New Roman", 12, FontStyle.Bold);
+      stripLine.Text = "Sliding Window";
+      chart.ChartAreas[0].AxisX.StripLines.Add(stripLine);
+    }
+
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.SlidingWindowPosition.ValueChanged += new EventHandler(SlidingWindowPosition_ValueChanged);
+      Content.EstimatedValuesChanged += new EventHandler(EstimatedValuesChanged);
+    }
+    protected override void DeregisterContentEvents() {
+      Content.SlidingWindowPosition.ValueChanged -= new EventHandler(SlidingWindowPosition_ValueChanged);
+      Content.EstimatedValuesChanged -= new EventHandler(EstimatedValuesChanged);
+      base.DeregisterContentEvents();
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      RedrawChart();
+    }
+
+    private void SlidingWindowPosition_ValueChanged(object sender, EventArgs e) {
+      if (InvokeRequired) Invoke((Action<object, EventArgs>)SlidingWindowPosition_ValueChanged, sender, e);
+      else UpdateStripLine();
+    }
+    private void EstimatedValuesChanged(object sender, EventArgs e) {
+      if (InvokeRequired) Invoke((Action<object, EventArgs>)EstimatedValuesChanged, sender, e);
+      else RedrawChart();
+    }
+
+    private void RedrawChart() {
+      chart.Series.Clear();
+      if (Content == null) return;
+
+      chart.Series.Add(TARGETVARIABLE_SERIES_NAME);
+      chart.Series[TARGETVARIABLE_SERIES_NAME].ChartType = SeriesChartType.FastLine;
+      var xValues = Enumerable.Range(Content.TrainingPartitionStart + 1, Content.TrainingPartitionEnd - Content.TrainingPartitionStart).ToArray();
+      chart.Series[TARGETVARIABLE_SERIES_NAME].Points.DataBindXY(xValues, Content.TargetValues.ToArray());
+
+      if (Content.EstimatedValues.Any()) {
+        chart.Series.Add(ESTIMATEDVAlUES_SERIES_NAME);
+        chart.Series[ESTIMATEDVAlUES_SERIES_NAME].ChartType = SeriesChartType.FastLine;
+        var yValues = Content.EstimatedValues.ToArray();
+        chart.Series[ESTIMATEDVAlUES_SERIES_NAME].Points.DataBindXY(xValues, yValues);
+      }
+
+      UpdateStripLine();
+      UpdateCursorInterval();
+    }
+
+    private void UpdateStripLine() {
+      chart.ChartAreas[0].AxisX.StripLines[0].StripWidth = Content.SlidingWindowPosition.End - Content.SlidingWindowPosition.Start;
+      chart.ChartAreas[0].AxisX.StripLines[0].IntervalOffset = Content.SlidingWindowPosition.Start - 0.5;
+    }
+
+    private void UpdateCursorInterval() {
+      var targetValues = this.chart.Series[TARGETVARIABLE_SERIES_NAME].Points.Select(x => x.YValues[0]).DefaultIfEmpty(1.0);
+      double targetValuesRange = targetValues.Max() - targetValues.Min();
+      double interestingValuesRange = Math.Max(targetValuesRange, 1.0);
+      double digits = (int)Math.Log10(interestingValuesRange) - 3;
+      double yZoomInterval = Math.Max(Math.Pow(10, digits), 10E-5);
+      this.chart.ChartAreas[0].CursorY.Interval = yZoomInterval;
+    }
+  }
+}
Index: branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindowBestSolutionsCollectionHeatMapControl.Designer.cs
===================================================================
--- branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindowBestSolutionsCollectionHeatMapControl.Designer.cs	(revision 10723)
+++ 	(revision )
@@ -1,111 +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.Windows.Forms;
-
-namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
-
-  public partial class SlidingWindowBestSolutionsCollectionHeatMapControl {
-    /// <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 Component 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.heatMapView = new SlidingWindowBestSolutionsCollectionHeatMapView();
-      this.comboBox1 = new System.Windows.Forms.ComboBox();
-      this.label1 = new System.Windows.Forms.Label();
-      this.SuspendLayout();
-      // 
-      // heatMapView
-      // 
-      this.heatMapView.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.heatMapView.Caption = "HeatMap View";
-      this.heatMapView.Content = null;
-      this.heatMapView.Location = new System.Drawing.Point(3, 53);
-      this.heatMapView.Name = "heatMapView";
-      this.heatMapView.ReadOnly = false;
-      this.heatMapView.Size = new System.Drawing.Size(812, 537);
-      this.heatMapView.TabIndex = 0;
-      // 
-      // comboBox1
-      // 
-      this.comboBox1.FormattingEnabled = true;
-      this.comboBox1.Items.AddRange(new object[] {
-            "Pearson R2",
-            "Mean Squared Error"});
-      this.comboBox1.Location = new System.Drawing.Point(3, 26);
-      this.comboBox1.Name = "comboBox1";
-      this.comboBox1.Size = new System.Drawing.Size(153, 21);
-      this.comboBox1.TabIndex = 1;
-      this.comboBox1.Text = "Pearson R2";
-      this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
-      this.comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
-      // 
-      // label1
-      // 
-      this.label1.AutoSize = true;
-      this.label1.Location = new System.Drawing.Point(3, 8);
-      this.label1.Name = "label1";
-      this.label1.Size = new System.Drawing.Size(85, 13);
-      this.label1.TabIndex = 2;
-      this.label1.Text = "Quality measure:";
-      // 
-      // SlidingWindowBestSolutionsCollectionView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.label1);
-      this.Controls.Add(this.comboBox1);
-      this.Controls.Add(this.heatMapView);
-      this.Name = "SlidingWindowBestSolutionsCollectionView";
-      this.Size = new System.Drawing.Size(818, 593);
-      this.ResumeLayout(false);
-      this.PerformLayout();
-
-    }
-
-    #endregion
-
-    private SlidingWindowBestSolutionsCollectionHeatMapView heatMapView;
-    private System.Windows.Forms.ComboBox comboBox1;
-    private System.Windows.Forms.Label label1;
-  }
-}
Index: branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindowBestSolutionsCollectionHeatMapControl.cs
===================================================================
--- branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindowBestSolutionsCollectionHeatMapControl.cs	(revision 10723)
+++ 	(revision )
@@ -1,158 +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.ComponentModel;
-using System.Linq;
-using System.Windows.Forms;
-using HeuristicLab.Analysis;
-using HeuristicLab.Core.Views;
-using HeuristicLab.MainForm;
-using HeuristicLab.Optimization;
-using HeuristicLab.Optimization.Views;
-
-namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
-  [View("Sliding Window Best Solutions HeatMap Control")]
-  [Content(typeof(SlidingWindowBestSolutionsCollection), false)]
-  public partial class SlidingWindowBestSolutionsCollectionHeatMapControl : ItemView {
-    public new SlidingWindowBestSolutionsCollection Content {
-      get { return (SlidingWindowBestSolutionsCollection)base.Content; }
-      set { base.Content = value; }
-    }
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      if (Content != null) {
-        // set the dropdown value to the correct value
-        switch (Content.QualityMeasure) {
-          case SlidingWindowBestSolutionsCollection.QualityMeasures.PEARSON:
-            comboBox1.SelectedIndex = comboBox1.Items.IndexOf("Pearson R2");
-            break;
-          case SlidingWindowBestSolutionsCollection.QualityMeasures.MSE:
-            comboBox1.SelectedIndex = comboBox1.Items.IndexOf("Mean Squared Error");
-            break;
-        }
-        if (Content.SlidingWindowQualities != null) {
-          SetHeatmapContent(Content.SlidingWindowQualities);
-        } else if (!Content.QualitiesCalculationInProgress) {
-          Content.CalculateQualities();
-        }
-      }
-    }
-
-    private readonly IProgress progress; // use this to show some progress when the sliding window qualities are calculated for each model
-
-    public SlidingWindowBestSolutionsCollectionHeatMapControl() {
-      InitializeComponent();
-      progress = new Progress();
-      MainFormManager.GetMainForm<MainForm.WindowsForms.MainForm>().AddOperationProgressToView(this, progress);
-    }
-
-    protected override void DeregisterContentEvents() {
-      // TODO: Deregister your event handlers here
-      Content.QualitiesCalculationCompleted -= bestSolutionsCollectionQualitiesCalculated;
-      Content.QualitiesCalculationProgress -= bestSolutionCollectionQualitiesCalculationProgress;
-      Content.QualitiesUpdated -= bestSolutionCollectionQualitiesUpdated;
-      Content.QualitiesCalculationStarted -= bestSolutionsCollectionQualtiesCalculationStarted;
-      base.DeregisterContentEvents();
-    }
-
-    protected override void RegisterContentEvents() {
-      base.RegisterContentEvents();
-      // TODO: Register your event handlers here
-      Content.QualitiesCalculationCompleted += bestSolutionsCollectionQualitiesCalculated;
-      Content.QualitiesCalculationProgress += bestSolutionCollectionQualitiesCalculationProgress;
-      Content.QualitiesUpdated += bestSolutionCollectionQualitiesUpdated;
-      Content.QualitiesCalculationStarted += bestSolutionsCollectionQualtiesCalculationStarted;
-    }
-
-    private void bestSolutionsCollectionQualitiesCalculated(object sender, RunWorkerCompletedEventArgs e) {
-      if (e.Cancelled || e.Error != null) {
-        progress.Cancel();
-        return;
-      }
-      SetHeatmapContent(Content.SlidingWindowQualities);
-      progress.Finish();
-    }
-
-    private void bestSolutionCollectionQualitiesUpdated(object sender, EventArgs e) {
-      SetHeatmapContent(Content.SlidingWindowQualities);
-    }
-
-    private void SetHeatmapContent(double[,] values) {
-      double min = 0, max = 0;
-      if (Content.QualityMeasure == SlidingWindowBestSolutionsCollection.QualityMeasures.PEARSON) {
-        max = 1.0;
-      } else {
-        foreach (var q in values) {
-          if (min > q) min = q;
-          if (max < q) max = q;
-        }
-      }
-
-      heatMapView.Content = new HeatMap(values, string.Empty, min, max);
-    }
-
-    private void bestSolutionsCollectionQualtiesCalculationStarted(object sender, EventArgs e) {
-      progress.Start("Calculating best solutions qualities...");
-    }
-
-    private void bestSolutionCollectionQualitiesCalculationProgress(object sender, ProgressChangedEventArgs e) {
-      progress.ProgressValue = e.ProgressPercentage / 100.0;
-    }
-
-    protected override void SetEnabledStateOfControls() {
-      base.SetEnabledStateOfControls();
-      // TODO: Enable or disable controls based on whether the content is null or the view is set readonly
-    }
-
-    #region Event Handlers (child controls)
-    public void heatMapView_cellDoubleClick(object sender, DataGridViewCellEventArgs e) {
-      var dataGridView = (DataGridView)sender;
-      var cell = dataGridView.SelectedCells[0];
-      var bestSolutions = Content.SlidingWindowBestSolutions.Values.ToList();
-      var tree = bestSolutions[cell.RowIndex];
-      var model = Content.CreateModel(tree, Content.Interpreter);
-      var solution = Content.CreateSolution(model, Content.ProblemData);
-      var result = new Result("Sliding Window Solution", solution);
-      var view = MainFormManager.MainForm.ShowContent(result, typeof(ResultView));
-      if (view != null) {
-        view.ReadOnly = ReadOnly;
-        view.Locked = Locked;
-      }
-    }
-
-    private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e) {
-      var combobox = (ComboBox)sender;
-      switch ((string)combobox.SelectedItem) {
-        case "Pearson R2": {
-            Content.QualityMeasure = SlidingWindowBestSolutionsCollection.QualityMeasures.PEARSON;
-            break;
-          }
-        case "Mean Squared Error": {
-            Content.QualityMeasure = SlidingWindowBestSolutionsCollection.QualityMeasures.MSE;
-            break;
-          }
-      }
-    }
-    #endregion
-  }
-}
Index: branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindowBestSolutionsCollectionHeatMapView.Designer.cs
===================================================================
--- branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindowBestSolutionsCollectionHeatMapView.Designer.cs	(revision 10723)
+++ 	(revision )
@@ -1,32 +1,0 @@
-﻿namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
-  partial class SlidingWindowBestSolutionsCollectionHeatMapView {
-    /// <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 Component 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() {
-      components = new System.ComponentModel.Container();
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-    }
-
-    #endregion
-  }
-}
Index: branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindowBestSolutionsCollectionHeatMapView.cs
===================================================================
--- branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindowBestSolutionsCollectionHeatMapView.cs	(revision 10723)
+++ 	(revision )
@@ -1,19 +1,0 @@
-﻿using System.Windows.Forms;
-using HeuristicLab.Analysis;
-using HeuristicLab.Analysis.Views;
-using HeuristicLab.MainForm;
-
-namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
-  [View("SlidingWindowBestSolutionCollectionHeatMapView")]
-  [Content(typeof(HeatMap), false)]
-  public partial class SlidingWindowBestSolutionsCollectionHeatMapView : HeatMapView {
-    public SlidingWindowBestSolutionsCollectionHeatMapView() {
-      InitializeComponent();
-
-      var chartArea = chart.ChartAreas[0];
-      chartArea.AxisX.Title = "Sliding window position";
-      chartArea.AxisY.Title = "Best solution";
-      chartArea.AxisY.IsReversed = true;
-    }
-  }
-}
Index: branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindowBestSolutionsCollectionView.Designer.cs
===================================================================
--- branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindowBestSolutionsCollectionView.Designer.cs	(revision 10723)
+++ 	(revision )
@@ -1,115 +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.Windows.Forms;
-
-namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
-
-  public partial class SlidingWindowBestSolutionsCollectionView {
-    /// <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 Component 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.enhancedStringConvertibleMatrixView = new HeuristicLab.Data.Views.EnhancedStringConvertibleMatrixView();
-      this.comboBox1 = new System.Windows.Forms.ComboBox();
-      this.label1 = new System.Windows.Forms.Label();
-      this.SuspendLayout();
-      // 
-      // enhancedStringConvertibleMatrixView
-      // 
-      this.enhancedStringConvertibleMatrixView.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.enhancedStringConvertibleMatrixView.Caption = "HeatMap View";
-      this.enhancedStringConvertibleMatrixView.Content = null;
-      this.enhancedStringConvertibleMatrixView.Location = new System.Drawing.Point(3, 53);
-      this.enhancedStringConvertibleMatrixView.Maximum = 0D;
-      this.enhancedStringConvertibleMatrixView.Minimum = 0D;
-      this.enhancedStringConvertibleMatrixView.Name = "enhancedStringConvertibleMatrixView";
-      this.enhancedStringConvertibleMatrixView.ReadOnly = false;
-      this.enhancedStringConvertibleMatrixView.ShowRowsAndColumnsTextBox = false;
-      this.enhancedStringConvertibleMatrixView.ShowStatisticalInformation = false;
-      this.enhancedStringConvertibleMatrixView.Size = new System.Drawing.Size(812, 537);
-      this.enhancedStringConvertibleMatrixView.TabIndex = 0;
-      // 
-      // comboBox1
-      // 
-      this.comboBox1.FormattingEnabled = true;
-      this.comboBox1.Items.AddRange(new object[] {
-            "Pearson R2",
-            "Mean Squared Error"});
-      this.comboBox1.Location = new System.Drawing.Point(3, 26);
-      this.comboBox1.Name = "comboBox1";
-      this.comboBox1.Size = new System.Drawing.Size(153, 21);
-      this.comboBox1.TabIndex = 1;
-      this.comboBox1.Text = "Pearson R2";
-      this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
-      this.comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
-      // 
-      // label1
-      // 
-      this.label1.AutoSize = true;
-      this.label1.Location = new System.Drawing.Point(3, 8);
-      this.label1.Name = "label1";
-      this.label1.Size = new System.Drawing.Size(85, 13);
-      this.label1.TabIndex = 2;
-      this.label1.Text = "Quality measure:";
-      // 
-      // SlidingWindowBestSolutionsCollectionView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.label1);
-      this.Controls.Add(this.comboBox1);
-      this.Controls.Add(this.enhancedStringConvertibleMatrixView);
-      this.Name = "SlidingWindowBestSolutionsCollectionView";
-      this.Size = new System.Drawing.Size(818, 593);
-      this.ResumeLayout(false);
-      this.PerformLayout();
-
-    }
-
-    #endregion
-
-    private Data.Views.EnhancedStringConvertibleMatrixView enhancedStringConvertibleMatrixView;
-    private System.Windows.Forms.ComboBox comboBox1;
-    private System.Windows.Forms.Label label1;
-  }
-}
Index: branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindowBestSolutionsCollectionView.cs
===================================================================
--- branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindowBestSolutionsCollectionView.cs	(revision 10723)
+++ 	(revision )
@@ -1,168 +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.ComponentModel;
-using System.Linq;
-using System.Windows.Forms;
-using HeuristicLab.Core.Views;
-using HeuristicLab.Data;
-using HeuristicLab.MainForm;
-using HeuristicLab.Optimization;
-using HeuristicLab.Optimization.Views;
-
-namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
-  [View("Sliding Window Best Solutions View")]
-  [Content(typeof(SlidingWindowBestSolutionsCollection), true)]
-  public partial class SlidingWindowBestSolutionsCollectionView : ItemView {
-    public new SlidingWindowBestSolutionsCollection Content {
-      get { return (SlidingWindowBestSolutionsCollection)base.Content; }
-      set { base.Content = value; }
-    }
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      if (Content != null) {
-        switch (Content.QualityMeasure) {
-          case SlidingWindowBestSolutionsCollection.QualityMeasures.PEARSON:
-            comboBox1.SelectedIndex = comboBox1.Items.IndexOf("Pearson R2");
-            break;
-          case SlidingWindowBestSolutionsCollection.QualityMeasures.MSE:
-            comboBox1.SelectedIndex = comboBox1.Items.IndexOf("Mean Squared Error");
-            break;
-        }
-        if (Content.SlidingWindowQualities != null) {
-          SetMatrixContent(Content.SlidingWindowQualities);
-        } else if (!Content.QualitiesCalculationInProgress) {
-          Content.CalculateQualities();
-        }
-      }
-    }
-
-    private readonly Progress progress;
-
-    protected override void DeregisterContentEvents() {
-      // TODO: Deregister your event handlers here
-      enhancedStringConvertibleMatrixView.DataGridView.CellDoubleClick -= enhancedStringConvertibleMatrixView_cellDoubleClick;
-      Content.QualitiesCalculationCompleted -= bestSolutionsCollectionQualitiesCalculated;
-      Content.QualitiesCalculationProgress -= bestSolutionCollectionQualitiesCalculationProgress;
-      Content.QualitiesUpdated -= bestSolutionCollectionQualitiesUpdated;
-      Content.QualitiesCalculationStarted -= bestSolutionsCollectionQualtiesCalculationStarted;
-      base.DeregisterContentEvents();
-    }
-
-    protected override void RegisterContentEvents() {
-      base.RegisterContentEvents();
-      // TODO: Register your event handlers here
-      enhancedStringConvertibleMatrixView.DataGridView.CellDoubleClick += enhancedStringConvertibleMatrixView_cellDoubleClick;
-      Content.QualitiesCalculationCompleted += bestSolutionsCollectionQualitiesCalculated;
-      Content.QualitiesCalculationProgress += bestSolutionCollectionQualitiesCalculationProgress;
-      Content.QualitiesUpdated += bestSolutionCollectionQualitiesUpdated;
-      Content.QualitiesCalculationStarted += bestSolutionsCollectionQualtiesCalculationStarted;
-    }
-
-    public SlidingWindowBestSolutionsCollectionView() {
-      InitializeComponent();
-      progress = new Progress();
-      MainFormManager.GetMainForm<MainForm.WindowsForms.MainForm>().AddOperationProgressToView(this, progress);
-    }
-
-    #region Event Handlers (Content)
-    private void bestSolutionsCollectionQualtiesCalculationStarted(object sender, EventArgs e) {
-      progress.Start("Calculating best solutions qualities...");
-    }
-
-    private void bestSolutionsCollectionQualitiesCalculated(object sender, RunWorkerCompletedEventArgs e) {
-      if (e.Cancelled || e.Error != null) {
-        progress.Cancel();
-        return;
-      }
-
-      SetMatrixContent(Content.SlidingWindowQualities);
-      progress.Finish();
-    }
-
-    private void bestSolutionCollectionQualitiesCalculationProgress(object sender, ProgressChangedEventArgs e) {
-      progress.ProgressValue = e.ProgressPercentage / 100.0;
-    }
-
-    private void bestSolutionCollectionQualitiesUpdated(object sender, EventArgs e) {
-      SetMatrixContent(Content.SlidingWindowQualities);
-    }
-    #endregion
-
-    protected override void SetEnabledStateOfControls() {
-      base.SetEnabledStateOfControls();
-      // TODO: Enable or disable controls based on whether the content is null or the view is set readonly
-    }
-
-    private void SetMatrixContent(double[,] values) {
-      var qualitiesMap = new DoubleMatrix(values); // add an extra columns for the training data
-      qualitiesMap.ColumnNames = Enumerable.Range(0, qualitiesMap.Columns - 1).Select(x => Content.SlidingWindowRanges[x].Start + " - " + Content.SlidingWindowRanges[x].End).Concat(new List<string> { "Training" });
-      qualitiesMap.RowNames = Enumerable.Range(1, qualitiesMap.Rows).Select(x => "M" + x);
-      double min = 0, max = 0;
-      if (Content.QualityMeasure == SlidingWindowBestSolutionsCollection.QualityMeasures.PEARSON) {
-        max = 1.0;
-      } else {
-        foreach (var q in qualitiesMap) {
-          if (min > q) min = q;
-          if (max < q) max = q;
-        }
-      }
-
-      enhancedStringConvertibleMatrixView.Minimum = min;
-      enhancedStringConvertibleMatrixView.Maximum = max;
-      enhancedStringConvertibleMatrixView.Content = qualitiesMap;
-    }
-
-    #region Event Handlers (child controls)
-    private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e) {
-      var combobox = (ComboBox)sender;
-      switch ((string)combobox.SelectedItem) {
-        case "Pearson R2": {
-            Content.QualityMeasure = SlidingWindowBestSolutionsCollection.QualityMeasures.PEARSON;
-            break;
-          }
-        case "Mean Squared Error": {
-            Content.QualityMeasure = SlidingWindowBestSolutionsCollection.QualityMeasures.MSE;
-            break;
-          }
-      }
-    }
-
-    public void enhancedStringConvertibleMatrixView_cellDoubleClick(object sender, DataGridViewCellEventArgs e) {
-      var dataGridView = (DataGridView)sender;
-      var cell = dataGridView.SelectedCells[0];
-      var bestSolutions = Content.SlidingWindowBestSolutions.Values.ToList();
-      var tree = bestSolutions[cell.RowIndex];
-      var model = Content.CreateModel(tree, Content.Interpreter);
-      var solution = Content.CreateSolution(model, Content.ProblemData);
-      var result = new Result("Sliding Window Solution", solution);
-      var view = MainFormManager.MainForm.ShowContent(result, typeof(ResultView));
-      if (view != null) {
-        view.ReadOnly = ReadOnly;
-        view.Locked = Locked;
-      }
-    }
-    #endregion
-  }
-}
Index: branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindowDataView.Designer.cs
===================================================================
--- branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindowDataView.Designer.cs	(revision 10723)
+++ 	(revision )
@@ -1,79 +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
-
-namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
-  partial class SlidingWindowDataView {
-    /// <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 Component 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() {
-      System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
-      this.chart = new HeuristicLab.Visualization.ChartControlsExtensions.EnhancedChart();
-      ((System.ComponentModel.ISupportInitialize)(this.chart)).BeginInit();
-      this.SuspendLayout();
-      // 
-      // chart
-      // 
-      chartArea1.Name = "ChartArea1";
-      this.chart.ChartAreas.Add(chartArea1);
-      this.chart.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.chart.Location = new System.Drawing.Point(0, 0);
-      this.chart.Name = "chart";
-      this.chart.Size = new System.Drawing.Size(770, 410);
-      this.chart.TabIndex = 0;
-      // 
-      // SlidingWindowDataView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.chart);
-      this.Name = "SlidingWindowDataView";
-      this.Size = new System.Drawing.Size(770, 410);
-      ((System.ComponentModel.ISupportInitialize)(this.chart)).EndInit();
-      this.ResumeLayout(false);
-
-    }
-
-
-    private HeuristicLab.Visualization.ChartControlsExtensions.EnhancedChart chart;
-
-    #endregion
-  }
-}
Index: branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindowDataView.cs
===================================================================
--- branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/SlidingWindowDataView.cs	(revision 10723)
+++ 	(revision )
@@ -1,119 +1,0 @@
-﻿#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.Drawing;
-using System.Linq;
-using System.Windows.Forms.DataVisualization.Charting;
-using HeuristicLab.Core.Views;
-using HeuristicLab.MainForm;
-
-namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
-  [View("Sliding Window View")]
-  [Content(typeof(SlidingWindowData), IsDefaultView = true)]
-  public partial class SlidingWindowDataView : ItemView {
-    private const string TARGETVARIABLE_SERIES_NAME = "Target Variable";
-    private const string ESTIMATEDVAlUES_SERIES_NAME = "Estimated Values";
-
-    public new SlidingWindowData Content {
-      get { return (SlidingWindowData)base.Content; }
-      set { base.Content = value; }
-    }
-
-    public SlidingWindowDataView() {
-      InitializeComponent();
-      chart.CustomizeAllChartAreas();
-      chart.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
-      chart.ChartAreas[0].AxisX.ScaleView.Zoomable = true;
-      chart.ChartAreas[0].AxisX.IsStartedFromZero = true;
-      chart.ChartAreas[0].CursorX.Interval = 1;
-
-      chart.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;
-      chart.ChartAreas[0].AxisY.ScaleView.Zoomable = true;
-      chart.ChartAreas[0].CursorY.Interval = 0;
-
-      StripLine stripLine = new StripLine();
-      stripLine.BackColor = Color.Gold;
-      stripLine.Font = new Font("Times New Roman", 12, FontStyle.Bold);
-      stripLine.Text = "Sliding Window";
-      chart.ChartAreas[0].AxisX.StripLines.Add(stripLine);
-    }
-
-    protected override void RegisterContentEvents() {
-      base.RegisterContentEvents();
-      Content.SlidingWindowPosition.ValueChanged += new EventHandler(SlidingWindowPosition_ValueChanged);
-      Content.EstimatedValuesChanged += new EventHandler(EstimatedValuesChanged);
-    }
-    protected override void DeregisterContentEvents() {
-      Content.SlidingWindowPosition.ValueChanged -= new EventHandler(SlidingWindowPosition_ValueChanged);
-      Content.EstimatedValuesChanged -= new EventHandler(EstimatedValuesChanged);
-      base.DeregisterContentEvents();
-    }
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      RedrawChart();
-    }
-
-    private void SlidingWindowPosition_ValueChanged(object sender, EventArgs e) {
-      if (InvokeRequired) Invoke((Action<object, EventArgs>)SlidingWindowPosition_ValueChanged, sender, e);
-      else UpdateStripLine();
-    }
-    private void EstimatedValuesChanged(object sender, EventArgs e) {
-      if (InvokeRequired) Invoke((Action<object, EventArgs>)EstimatedValuesChanged, sender, e);
-      else RedrawChart();
-    }
-
-    private void RedrawChart() {
-      chart.Series.Clear();
-      if (Content == null) return;
-
-      chart.Series.Add(TARGETVARIABLE_SERIES_NAME);
-      chart.Series[TARGETVARIABLE_SERIES_NAME].ChartType = SeriesChartType.FastLine;
-      var xValues = Enumerable.Range(Content.TrainingPartitionStart + 1, Content.TrainingPartitionEnd - Content.TrainingPartitionStart).ToArray();
-      chart.Series[TARGETVARIABLE_SERIES_NAME].Points.DataBindXY(xValues, Content.TargetValues.ToArray());
-
-      if (Content.EstimatedValues.Any()) {
-        chart.Series.Add(ESTIMATEDVAlUES_SERIES_NAME);
-        chart.Series[ESTIMATEDVAlUES_SERIES_NAME].ChartType = SeriesChartType.FastLine;
-        var yValues = Content.EstimatedValues.ToArray();
-        chart.Series[ESTIMATEDVAlUES_SERIES_NAME].Points.DataBindXY(xValues, yValues);
-      }
-
-      UpdateStripLine();
-      UpdateCursorInterval();
-    }
-
-    private void UpdateStripLine() {
-      chart.ChartAreas[0].AxisX.StripLines[0].StripWidth = Content.SlidingWindowPosition.End - Content.SlidingWindowPosition.Start;
-      chart.ChartAreas[0].AxisX.StripLines[0].IntervalOffset = Content.SlidingWindowPosition.Start - 0.5;
-    }
-
-    private void UpdateCursorInterval() {
-      var targetValues = this.chart.Series[TARGETVARIABLE_SERIES_NAME].Points.Select(x => x.YValues[0]).DefaultIfEmpty(1.0);
-      double targetValuesRange = targetValues.Max() - targetValues.Min();
-      double interestingValuesRange = Math.Max(targetValuesRange, 1.0);
-      double digits = (int)Math.Log10(interestingValuesRange) - 3;
-      double yZoomInterval = Math.Max(Math.Pow(10, digits), 10E-5);
-      this.chart.ChartAreas[0].CursorY.Interval = yZoomInterval;
-    }
-  }
-}
