Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ComparisonFilterView.Designer.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ComparisonFilterView.Designer.cs	(revision 10557)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ComparisonFilterView.Designer.cs	(revision 10557)
@@ -0,0 +1,60 @@
+﻿namespace HeuristicLab.DataPreprocessing.Views
+{
+  partial class ComparisonFilterView
+  {
+    /// <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.label1 = new System.Windows.Forms.Label();
+      this.SuspendLayout();
+      // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Location = new System.Drawing.Point(312, 120);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(35, 13);
+      this.label1.TabIndex = 0;
+      this.label1.Text = "label1";
+      // 
+      // ComparisonFilterView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.label1);
+      this.Name = "ComparisonFilterView";
+      this.Size = new System.Drawing.Size(615, 503);
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.Label label1;
+
+  }
+}
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ComparisonFilterView.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ComparisonFilterView.cs	(revision 10557)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ComparisonFilterView.cs	(revision 10557)
@@ -0,0 +1,35 @@
+﻿using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+
+namespace HeuristicLab.DataPreprocessing.Views
+{
+  [View("Comparison Filter View")]
+  [Content(typeof(ComparisonFilter), false)]
+  public partial class ComparisonFilterView : ItemView
+  {
+    public ComparisonFilterView()
+    {
+      InitializeComponent();
+    }
+
+    public new ComparisonFilter Content
+    {
+      get { return (ComparisonFilter)base.Content; }
+      set { base.Content = value; }
+    }
+
+    protected override void OnContentChanged()
+    {
+      base.OnContentChanged();
+    }
+
+  }
+}
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataGridContentView.Designer.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataGridContentView.Designer.cs	(revision 10557)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataGridContentView.Designer.cs	(revision 10557)
@@ -0,0 +1,175 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 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.DataPreprocessing {
+  partial class DataGridContentView {
+    /// <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.components = new System.ComponentModel.Container();
+      this.btnApplySort = new System.Windows.Forms.Button();
+      this.contextMenuCell = new System.Windows.Forms.ContextMenuStrip(this.components);
+      this.replaceValueToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.averageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.medianToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.randomToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.mostCommonToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.interpolationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+      this.contextMenuCell.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // rowsTextBox
+      // 
+      this.rowsTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)));
+      this.rowsTextBox.Enabled = false;
+      this.errorProvider.SetIconAlignment(this.rowsTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.errorProvider.SetIconPadding(this.rowsTextBox, 2);
+      this.rowsTextBox.ReadOnly = true;
+      this.rowsTextBox.Size = new System.Drawing.Size(71, 20);
+      // 
+      // columnsTextBox
+      // 
+      this.columnsTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)));
+      this.columnsTextBox.Enabled = false;
+      this.columnsTextBox.ReadOnly = true;
+      this.columnsTextBox.Size = new System.Drawing.Size(71, 20);
+      // 
+      // statisticsTextBox
+      // 
+      this.statisticsTextBox.Size = new System.Drawing.Size(522, 13);
+      // 
+      // btnApplySort
+      // 
+      this.btnApplySort.Location = new System.Drawing.Point(241, 19);
+      this.btnApplySort.Name = "btnApplySort";
+      this.btnApplySort.Size = new System.Drawing.Size(75, 23);
+      this.btnApplySort.TabIndex = 7;
+      this.btnApplySort.Text = "Apply Sort";
+      this.btnApplySort.UseVisualStyleBackColor = true;
+      this.btnApplySort.Click += new System.EventHandler(this.btnApplySort_Click);
+      // 
+      // contextMenuCell
+      // 
+      this.contextMenuCell.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.replaceValueToolStripMenuItem});
+      this.contextMenuCell.Name = "contextMenuCell";
+      this.contextMenuCell.Size = new System.Drawing.Size(153, 48);
+      // 
+      // replaceValueToolStripMenuItem
+      // 
+      this.replaceValueToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.averageToolStripMenuItem,
+            this.medianToolStripMenuItem,
+            this.randomToolStripMenuItem,
+            this.mostCommonToolStripMenuItem,
+            this.interpolationToolStripMenuItem});
+      this.replaceValueToolStripMenuItem.Name = "replaceValueToolStripMenuItem";
+      this.replaceValueToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
+      this.replaceValueToolStripMenuItem.Text = "Replace Value";
+      // 
+      // averageToolStripMenuItem
+      // 
+      this.averageToolStripMenuItem.Name = "averageToolStripMenuItem";
+      this.averageToolStripMenuItem.Size = new System.Drawing.Size(155, 22);
+      this.averageToolStripMenuItem.Text = "Average";
+      this.averageToolStripMenuItem.Click += new System.EventHandler(this.ReplaceWithAverage_Click);
+      // 
+      // medianToolStripMenuItem
+      // 
+      this.medianToolStripMenuItem.Name = "medianToolStripMenuItem";
+      this.medianToolStripMenuItem.Size = new System.Drawing.Size(155, 22);
+      this.medianToolStripMenuItem.Text = "Median";
+      this.medianToolStripMenuItem.Click += new System.EventHandler(this.ReplaceWithMedian_Click);
+      // 
+      // randomToolStripMenuItem
+      // 
+      this.randomToolStripMenuItem.Name = "randomToolStripMenuItem";
+      this.randomToolStripMenuItem.Size = new System.Drawing.Size(155, 22);
+      this.randomToolStripMenuItem.Text = "Random";
+      this.randomToolStripMenuItem.Click += new System.EventHandler(this.ReplaceWithRandom_Click);
+      // 
+      // mostCommonToolStripMenuItem
+      // 
+      this.mostCommonToolStripMenuItem.Name = "mostCommonToolStripMenuItem";
+      this.mostCommonToolStripMenuItem.Size = new System.Drawing.Size(155, 22);
+      this.mostCommonToolStripMenuItem.Text = "Most Common";
+      this.mostCommonToolStripMenuItem.Click += new System.EventHandler(this.ReplaceWithMostCommon_Click);
+      // 
+      // interpolationToolStripMenuItem
+      // 
+      this.interpolationToolStripMenuItem.Name = "interpolationToolStripMenuItem";
+      this.interpolationToolStripMenuItem.Size = new System.Drawing.Size(155, 22);
+      this.interpolationToolStripMenuItem.Text = "Interpolation";
+      this.interpolationToolStripMenuItem.Click += new System.EventHandler(this.ReplaceWithInterpolation_Click);
+      // 
+      // DataGridContentView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.btnApplySort);
+      this.Name = "DataGridContentView";
+      this.Size = new System.Drawing.Size(528, 404);
+      this.Controls.SetChildIndex(this.statisticsTextBox, 0);
+      this.Controls.SetChildIndex(this.rowsLabel, 0);
+      this.Controls.SetChildIndex(this.columnsLabel, 0);
+      this.Controls.SetChildIndex(this.rowsTextBox, 0);
+      this.Controls.SetChildIndex(this.columnsTextBox, 0);
+      this.Controls.SetChildIndex(this.btnApplySort, 0);
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.contextMenuCell.ResumeLayout(false);
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.Button btnApplySort;
+    private System.Windows.Forms.ContextMenuStrip contextMenuCell;
+    private System.Windows.Forms.ToolStripMenuItem replaceValueToolStripMenuItem;
+    private System.Windows.Forms.ToolStripMenuItem averageToolStripMenuItem;
+    private System.Windows.Forms.ToolStripMenuItem medianToolStripMenuItem;
+    private System.Windows.Forms.ToolStripMenuItem randomToolStripMenuItem;
+    private System.Windows.Forms.ToolStripMenuItem mostCommonToolStripMenuItem;
+    private System.Windows.Forms.ToolStripMenuItem interpolationToolStripMenuItem;
+  }
+}
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataGridContentView.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataGridContentView.cs	(revision 10557)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataGridContentView.cs	(revision 10557)
@@ -0,0 +1,124 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+using HeuristicLab.Data.Views;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+
+namespace HeuristicLab.DataPreprocessing {
+  [View("Data Grid Content View")]
+  [Content(typeof(IDataGridContent), true)]
+  public partial class DataGridContentView : StringConvertibleMatrixView {
+
+    private int lastClickedRow;
+    private int lastClickedColumn;
+
+    public new IDataGridContent Content {
+      get { return (IDataGridContent)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public DataGridContentView() {
+      InitializeComponent();
+      dataGridView.CellMouseClick += dataGridView_CellMouseClick;
+      contextMenuCell.Items.Add(ShowHideColumns);
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+    }
+
+
+    private void dataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) {
+      if (!dataGridView.ReadOnly) {
+        string errorMessage;
+        if (Content != null && !Content.DataGridLogic.Validate(e.FormattedValue.ToString(), out errorMessage, e.ColumnIndex)) {
+          e.Cancel = true;
+          dataGridView.Rows[e.RowIndex].ErrorText = errorMessage;
+        }
+      }
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      rowsTextBox.ReadOnly = true;
+      columnsTextBox.ReadOnly = true;
+    }
+
+    private void btnApplySort_Click(object sender, System.EventArgs e) {
+      Content.PreprocessingDataManipulation.ReOrderToIndices(virtualRowIndices);
+      OnContentChanged();
+    }
+
+    private void dataGridView_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e) {
+      if (Content == null) return;
+      if (e.Button == System.Windows.Forms.MouseButtons.Right) {
+        if (e.ColumnIndex == -1 || e.RowIndex == -1) {
+          contextMenu.Show(MousePosition);
+        } else {
+          interpolationToolStripMenuItem.Enabled = !(e.RowIndex == 0 || e.RowIndex == Content.Rows);
+          contextMenuCell.Show(MousePosition);
+          lastClickedColumn = e.ColumnIndex;
+          lastClickedRow = e.RowIndex;
+        }
+      }
+    }
+
+    protected override int[] Sort(IEnumerable<KeyValuePair<int, SortOrder>> sortedColumns) {
+      btnApplySort.Enabled = sortedColumns.Any();
+      return base.Sort(sortedColumns);
+    }
+
+    protected override void ClearSorting() {
+      btnApplySort.Enabled = false;
+      base.ClearSorting();
+    }
+
+    private void ReplaceWithAverage_Click(object sender, EventArgs e) {
+      Content.PreprocessingDataManipulation.ReplaceIndicesByAverageValue(lastClickedColumn, new List<int>() { lastClickedRow });
+      OnContentChanged();
+    }
+
+    private void ReplaceWithMedian_Click(object sender, EventArgs e) {
+      Content.PreprocessingDataManipulation.ReplaceIndicesByMedianValue(lastClickedColumn, new List<int>() { lastClickedRow });
+      OnContentChanged();
+    }
+
+    private void ReplaceWithRandom_Click(object sender, EventArgs e) {
+      Content.PreprocessingDataManipulation.ReplaceIndicesByRandomValue(lastClickedColumn, new List<int>() { lastClickedRow });
+      OnContentChanged();
+    }
+
+    private void ReplaceWithMostCommon_Click(object sender, EventArgs e) {
+      Content.PreprocessingDataManipulation.ReplaceIndicesByMostCommonValue(lastClickedColumn, new List<int>() { lastClickedRow });
+      OnContentChanged();
+    }
+
+    private void ReplaceWithInterpolation_Click(object sender, EventArgs e) {
+      Content.PreprocessingDataManipulation.ReplaceIndicesByLinearInterpolationOfNeighbours(lastClickedColumn, new List<int>() { lastClickedRow });
+      OnContentChanged();
+    }
+  }
+}
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.cs	(revision 10557)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.cs	(revision 10557)
@@ -0,0 +1,147 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 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.Windows.Forms;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+
+namespace HeuristicLab.DataPreprocessing {
+  [View("DataPreprocessing View")]
+  [Content(typeof(IPreprocessingContext), true)]
+  public partial class DataPreprocessingView : ItemView {
+
+    private DataGridContent dataGridContent;
+    private StatisticsContent statisticsContent;
+    private FilterContent filterContent;
+    private TransformationContent tranformationContent;
+    private LineChartContent lineChartContent;
+    private HistogramContent histogramContent;
+
+    public DataPreprocessingView() {
+      InitializeComponent();
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      InitializeContents();
+    }
+
+    //Create list view item for content list view
+    private ListViewItem CreateListViewItem(IItem item) {
+      ListViewItem listViewItem = new ListViewItem();
+
+      listViewItem.Text = item.ToString();
+      listViewItem.ToolTipText = item.ItemName + ": " + item.ItemDescription;
+      contentListView.SmallImageList.Images.Add(item.ItemImage);
+      listViewItem.ImageIndex = contentListView.SmallImageList.Images.Count - 1;
+      listViewItem.Tag = item;
+
+      return listViewItem;
+    }
+
+    private void InitializeContents() {
+
+      //create content items
+      IPreprocessingData data = Content.Data;
+      ISearchLogic searchLogic = new SearchLogic(data);
+      var dataGridLogic = new DataGridLogic(data);
+      StatisticsLogic statisticsLogic = new StatisticsLogic(data, searchLogic);
+      dataGridContent = new DataGridContent(dataGridLogic, new ManipulationLogic(data, searchLogic, statisticsLogic));
+      statisticsContent = new StatisticsContent(statisticsLogic);
+      filterContent = new FilterContent(new FilterLogic());
+      tranformationContent = new TransformationContent(new TransformationLogic(data, searchLogic, statisticsLogic));
+      lineChartContent = new LineChartContent(new LineChartLogic(data));
+      histogramContent = new HistogramContent(new HistogramLogic(data));
+
+      //create view items
+      contentListView.SmallImageList = new ImageList();
+      ListViewItem contentListViewItem = CreateListViewItem(dataGridContent);
+      ListViewItem statisticsListViewItem = CreateListViewItem(statisticsContent);
+      ListViewItem filterListViewItem = CreateListViewItem(filterContent);
+      ListViewItem transformationListViewItem = CreateListViewItem(tranformationContent);
+      ListViewItem lineChartListViewItem = CreateListViewItem(lineChartContent);
+      ListViewItem histogramListViewItem = CreateListViewItem(histogramContent);
+
+      //add view items to content list view
+      contentListView.Items.Add(statisticsListViewItem);
+      contentListView.Items.Add(contentListViewItem);
+      contentListView.Items.Add(filterListViewItem);
+      contentListView.Items.Add(transformationListViewItem);
+      contentListView.Items.Add(lineChartListViewItem);
+      contentListView.Items.Add(histogramListViewItem);
+
+      //default view -> statistic view
+      contentListView.SelectedIndices.Add(0);
+    }
+
+    public new PreprocessingContext Content {
+      get { return (PreprocessingContext)base.Content; }
+      set {
+        base.Content = value;
+      }
+    }
+
+    private void listView1_SelectedIndexChanged(object sender, EventArgs e) {
+
+      if (contentListView.SelectedItems.Count > 0) {
+        ListViewItem listViewItem = (ListViewItem)contentListView.SelectedItems[0];
+        this.viewHost.Content = (IItem)listViewItem.Tag;
+      }
+    }
+
+    private void listView1_DoubleClick(object sender, EventArgs e) {
+      if (contentListView.SelectedItems.Count > 0) {
+        ListViewItem listViewItem = (ListViewItem)contentListView.SelectedItems[0];
+        MainFormManager.MainForm.ShowContent((IItem)listViewItem.Tag);
+      }
+    }
+
+    private void exportProblemButton_Click(object sender, EventArgs e) {
+      var problem = Content.ExportProblem();
+
+      var saveFileDialog = new SaveFileDialog {
+        Title = "Save Item",
+        DefaultExt = "hl",
+        Filter = "Uncompressed HeuristicLab Files|*.hl|HeuristicLab Files|*.hl|All Files|*.*",
+        FilterIndex = 2
+      };
+
+      var content = problem as IStorableContent;
+      if (saveFileDialog.ShowDialog() == DialogResult.OK) {
+        bool compressed = saveFileDialog.FilterIndex != 1;
+        ContentManager.Save(content, saveFileDialog.FileName, compressed);
+      }
+    }
+
+    private void applyInNewTabButton_Click(object sender, EventArgs e) {
+      var item = Content.ExportAlgorithmOrProblem();
+
+      MainFormManager.MainForm.ShowContent(item);
+    }
+
+    private void undoButton_Click(object sender, EventArgs e) {
+      Content.Data.Undo();
+    }
+  }
+}
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.designer.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.designer.cs	(revision 10557)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.designer.cs	(revision 10557)
@@ -0,0 +1,172 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 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.DataPreprocessing {
+  partial class DataPreprocessingView {
+    /// <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.components = new System.ComponentModel.Container();
+      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DataPreprocessingView));
+      this.splitContainer1 = new System.Windows.Forms.SplitContainer();
+      this.undoButton = new System.Windows.Forms.Button();
+      this.applyInNewTabButton = new System.Windows.Forms.Button();
+      this.exportProblemButton = new System.Windows.Forms.Button();
+      this.contentListView = new System.Windows.Forms.ListView();
+      this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
+      this.splitContainer1.Panel1.SuspendLayout();
+      this.splitContainer1.Panel2.SuspendLayout();
+      this.splitContainer1.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // splitContainer1
+      // 
+      this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
+      this.splitContainer1.Location = new System.Drawing.Point(0, 0);
+      this.splitContainer1.Name = "splitContainer1";
+      // 
+      // splitContainer1.Panel1
+      // 
+      this.splitContainer1.Panel1.Controls.Add(this.undoButton);
+      this.splitContainer1.Panel1.Controls.Add(this.applyInNewTabButton);
+      this.splitContainer1.Panel1.Controls.Add(this.exportProblemButton);
+      this.splitContainer1.Panel1.Controls.Add(this.contentListView);
+      // 
+      // splitContainer1.Panel2
+      // 
+      this.splitContainer1.Panel2.Controls.Add(this.viewHost);
+      this.splitContainer1.Size = new System.Drawing.Size(838, 449);
+      this.splitContainer1.SplitterDistance = 181;
+      this.splitContainer1.TabIndex = 0;
+      // 
+      // undoButton
+      // 
+      this.undoButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Undo;
+      this.undoButton.Location = new System.Drawing.Point(72, 14);
+      this.undoButton.Name = "undoButton";
+      this.undoButton.Size = new System.Drawing.Size(24, 24);
+      this.undoButton.TabIndex = 3;
+      this.toolTip.SetToolTip(this.undoButton, "Undo");
+      this.undoButton.UseVisualStyleBackColor = true;
+      this.undoButton.Click += new System.EventHandler(this.undoButton_Click);
+      // 
+      // applyInNewTabButton
+      // 
+      this.applyInNewTabButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Play;
+      this.applyInNewTabButton.Location = new System.Drawing.Point(42, 14);
+      this.applyInNewTabButton.Name = "applyInNewTabButton";
+      this.applyInNewTabButton.Size = new System.Drawing.Size(24, 24);
+      this.applyInNewTabButton.TabIndex = 2;
+      this.toolTip.SetToolTip(this.applyInNewTabButton, "Apply in new tab");
+      this.applyInNewTabButton.UseVisualStyleBackColor = true;
+      this.applyInNewTabButton.Click += new System.EventHandler(this.applyInNewTabButton_Click);
+      // 
+      // exportProblemButton
+      // 
+      this.exportProblemButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Save;
+      this.exportProblemButton.Location = new System.Drawing.Point(12, 14);
+      this.exportProblemButton.Name = "exportProblemButton";
+      this.exportProblemButton.Size = new System.Drawing.Size(24, 24);
+      this.exportProblemButton.TabIndex = 1;
+      this.toolTip.SetToolTip(this.exportProblemButton, "Export problem");
+      this.exportProblemButton.UseVisualStyleBackColor = true;
+      this.exportProblemButton.Click += new System.EventHandler(this.exportProblemButton_Click);
+      // 
+      // contentListView
+      // 
+      this.contentListView.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.contentListView.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.contentListView.Location = new System.Drawing.Point(12, 44);
+      this.contentListView.Name = "contentListView";
+      this.contentListView.Size = new System.Drawing.Size(157, 391);
+      this.contentListView.TabIndex = 0;
+      this.contentListView.UseCompatibleStateImageBehavior = false;
+      this.contentListView.View = System.Windows.Forms.View.List;
+      this.contentListView.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged);
+      this.contentListView.DoubleClick += new System.EventHandler(this.listView1_DoubleClick);
+      // 
+      // viewHost
+      // 
+      this.viewHost.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.viewHost.Caption = "View";
+      this.viewHost.Content = null;
+      this.viewHost.Enabled = false;
+      this.viewHost.Location = new System.Drawing.Point(16, 44);
+      this.viewHost.Name = "viewHost";
+      this.viewHost.ReadOnly = false;
+      this.viewHost.Size = new System.Drawing.Size(621, 391);
+      this.viewHost.TabIndex = 4;
+      this.viewHost.ViewsLabelVisible = true;
+      this.viewHost.ViewType = null;
+      // 
+      // DataPreprocessingView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.splitContainer1);
+      this.Name = "DataPreprocessingView";
+      this.Size = new System.Drawing.Size(838, 449);
+      this.splitContainer1.Panel1.ResumeLayout(false);
+      this.splitContainer1.Panel2.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+      this.splitContainer1.ResumeLayout(false);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.ListView contentListView;
+    private System.Windows.Forms.Button exportProblemButton;
+    private System.Windows.Forms.Button applyInNewTabButton;
+    private System.Windows.Forms.Button undoButton;
+    private MainForm.WindowsForms.ViewHost viewHost;
+    private System.Windows.Forms.SplitContainer splitContainer1;
+    private System.Windows.Forms.ToolTip toolTip;
+
+  }
+}
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FilterView.Designer.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FilterView.Designer.cs	(revision 10557)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FilterView.Designer.cs	(revision 10557)
@@ -0,0 +1,163 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 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.DataPreprocessing {
+  partial class FilterView {
+    /// <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.splitContainer1 = new System.Windows.Forms.SplitContainer();
+      this.deleteFilter = new System.Windows.Forms.Button();
+      this.newFilter = new System.Windows.Forms.Button();
+      this.listView1 = new System.Windows.Forms.ListView();
+      this.applyFilter = new System.Windows.Forms.Button();
+      this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
+      this.splitContainer1.Panel1.SuspendLayout();
+      this.splitContainer1.Panel2.SuspendLayout();
+      this.splitContainer1.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // splitContainer1
+      // 
+      this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.splitContainer1.Location = new System.Drawing.Point(0, 0);
+      this.splitContainer1.Name = "splitContainer1";
+      // 
+      // splitContainer1.Panel1
+      // 
+      this.splitContainer1.Panel1.AccessibleName = "splitContainer1";
+      this.splitContainer1.Panel1.Controls.Add(this.deleteFilter);
+      this.splitContainer1.Panel1.Controls.Add(this.newFilter);
+      this.splitContainer1.Panel1.Controls.Add(this.listView1);
+      // 
+      // splitContainer1.Panel2
+      // 
+      this.splitContainer1.Panel2.AccessibleName = "splitContainer2";
+      this.splitContainer1.Panel2.Controls.Add(this.applyFilter);
+      this.splitContainer1.Panel2.Controls.Add(this.viewHost);
+      this.splitContainer1.Size = new System.Drawing.Size(697, 490);
+      this.splitContainer1.SplitterDistance = 232;
+      this.splitContainer1.TabIndex = 0;
+      // 
+      // deleteFilter
+      // 
+      this.deleteFilter.Image = HeuristicLab.Common.Resources.VSImageLibrary.Delete;
+      this.deleteFilter.Location = new System.Drawing.Point(45, 24);
+      this.deleteFilter.Name = "deleteFilter";
+      this.deleteFilter.Size = new System.Drawing.Size(24, 24);
+      this.deleteFilter.TabIndex = 6;
+      this.deleteFilter.UseVisualStyleBackColor = true;
+      this.deleteFilter.Click += new System.EventHandler(this.deleteFilter_Click);
+      // 
+      // newFilter
+      // 
+      this.newFilter.Image = HeuristicLab.Common.Resources.VSImageLibrary.Add;
+      this.newFilter.Location = new System.Drawing.Point(15, 24);
+      this.newFilter.Name = "newFilter";
+      this.newFilter.Size = new System.Drawing.Size(24, 24);
+      this.newFilter.TabIndex = 5;
+      this.newFilter.UseVisualStyleBackColor = true;
+      this.newFilter.Click += new System.EventHandler(this.newFilter_Click);
+      // 
+      // listView1
+      // 
+      this.listView1.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.listView1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.listView1.Location = new System.Drawing.Point(14, 54);
+      this.listView1.Name = "listView1";
+      this.listView1.Size = new System.Drawing.Size(157, 391);
+      this.listView1.TabIndex = 4;
+      this.listView1.UseCompatibleStateImageBehavior = false;
+      this.listView1.View = System.Windows.Forms.View.List;
+      this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged);
+      this.listView1.DoubleClick += new System.EventHandler(this.listView1_DoubleClick_1);
+      // 
+      // applyFilter
+      // 
+      this.applyFilter.Location = new System.Drawing.Point(383, 422);
+      this.applyFilter.Name = "applyFilter";
+      this.applyFilter.Size = new System.Drawing.Size(75, 23);
+      this.applyFilter.TabIndex = 1;
+      this.applyFilter.Text = "Apply Filters";
+      this.applyFilter.UseVisualStyleBackColor = true;
+      // 
+      // viewHost
+      // 
+      this.viewHost.Caption = "View";
+      this.viewHost.Content = null;
+      this.viewHost.Enabled = false;
+      this.viewHost.Location = new System.Drawing.Point(4, 4);
+      this.viewHost.Name = "viewHost";
+      this.viewHost.ReadOnly = false;
+      this.viewHost.Size = new System.Drawing.Size(454, 410);
+      this.viewHost.TabIndex = 0;
+      this.viewHost.ViewsLabelVisible = true;
+      this.viewHost.ViewType = null;
+      // 
+      // FilterView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.splitContainer1);
+      this.Name = "FilterView";
+      this.Size = new System.Drawing.Size(697, 490);
+      this.splitContainer1.Panel1.ResumeLayout(false);
+      this.splitContainer1.Panel2.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+      this.splitContainer1.ResumeLayout(false);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.SplitContainer splitContainer1;
+    private System.Windows.Forms.ListView listView1;
+    private System.Windows.Forms.Button deleteFilter;
+    private System.Windows.Forms.Button newFilter;
+    private MainForm.WindowsForms.ViewHost viewHost;
+    private System.Windows.Forms.Button applyFilter;
+  }
+}
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FilterView.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FilterView.cs	(revision 10557)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FilterView.cs	(revision 10557)
@@ -0,0 +1,140 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 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;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+using HeuristicLab.Core;
+using System.Collections.Generic;
+using System;
+using System.ComponentModel;
+
+namespace HeuristicLab.DataPreprocessing
+{
+
+  [View("Filter View")]
+  [Content(typeof(FilterContent), false)]
+  public partial class FilterView : ItemView
+  {
+
+    public new FilterContent Content
+    {
+      get { return (FilterContent)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public FilterView()
+    {
+      InitializeComponent();
+      listView1.SmallImageList = new ImageList();
+    }
+
+    protected override void OnContentChanged()
+    {
+      base.OnContentChanged();
+    }
+
+    // Filter Contents
+    private IDictionary<IFilter, ListViewItem> filters = new Dictionary<IFilter, ListViewItem>();
+
+    private void listView1_DoubleClick(object sender, EventArgs e)
+    {
+
+    }
+
+    private void newFilter_Click(object sender, EventArgs e)
+    {
+      //TODO Filter Choose View...
+      IFilter filter = new ComparisonFilter();
+      //filter.FilterName = "ComparisonFilter" + (i++);
+      //filter.PropertyChanged += filter_PropertyChanged;
+
+      ListViewItem filterViewItem = CreateListViewItem(filter);
+      filters.Add(filter, filterViewItem);
+      //add view items to content list view
+      listView1.Items.Add(filterViewItem);
+      //select top filter
+      listView1.SelectedIndices.Add(0);
+    }
+
+    private void filter_PropertyChanged(object sender, PropertyChangedEventArgs e)
+    {
+      ListViewItem listViewItem;
+      try
+      {
+        IFilter filter = (IFilter)sender;
+        filters.TryGetValue(filter, out listViewItem);
+        listViewItem.Name = filter.ItemName;
+      }
+      catch (KeyNotFoundException)
+      {
+        //nothing to do
+      }
+
+    }
+
+    private ListViewItem CreateListViewItem(IFilter filter)
+    {
+      ListViewItem listViewItem = new ListViewItem();
+
+      listViewItem.Text = filter.ItemName;
+      listView1.SmallImageList.Images.Add(filter.ItemImage);
+      listViewItem.ImageIndex = listView1.SmallImageList.Images.Count - 1;
+      listViewItem.Tag = filter;
+      return listViewItem;
+    }
+
+    private void deleteFilter_Click(object sender, EventArgs e)
+    {
+      //delete view item of filter
+      //listView1.Items.Remove();
+      //select top filter
+      if (listView1.Items.Count > 0)
+      {
+        listView1.SelectedItems[0].Remove();
+      }
+      if (listView1.Items.Count > 0)
+      {
+        listView1.SelectedIndices.Add(0);
+      }
+    }
+
+    private void listView1_SelectedIndexChanged(object sender, EventArgs e)
+    {
+      if (listView1.SelectedItems.Count > 0)
+      {
+        ListViewItem listViewItem = (ListViewItem)listView1.SelectedItems[0];
+        this.viewHost.Content = (IItem)listViewItem.Tag;
+      }
+    }
+
+    private void listView1_DoubleClick_1(object sender, EventArgs e)
+    {
+      if (listView1.SelectedItems.Count > 0)
+      {
+        ListViewItem listViewItem = (ListViewItem)listView1.SelectedItems[0];
+        MainFormManager.MainForm.ShowContent((IItem)listViewItem.Tag);
+      }
+    }
+
+  }
+}
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/HeuristicLab.DataPreprocessing.Views-3.3.csproj
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/HeuristicLab.DataPreprocessing.Views-3.3.csproj	(revision 10555)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/HeuristicLab.DataPreprocessing.Views-3.3.csproj	(revision 10557)
@@ -40,8 +40,65 @@
     <Reference Include="System" />
     <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Windows.Forms.DataVisualization" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="ComparisonFilterView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="ComparisonFilterView.Designer.cs">
+      <DependentUpon>ComparisonFilterView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="DataGridContentView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="DataGridContentView.Designer.cs">
+      <DependentUpon>DataGridContentView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="DataPreprocessingView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="DataPreprocessingView.designer.cs">
+      <DependentUpon>DataPreprocessingView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="FilterView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="FilterView.Designer.cs">
+      <DependentUpon>FilterView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="HistogramView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="HistogramView.Designer.cs">
+      <DependentUpon>HistogramView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="LineChartView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="LineChartView.Designer.cs">
+      <DependentUpon>LineChartView.cs</DependentUpon>
+    </Compile>
     <Compile Include="Plugin.cs" />
+    <Compile Include="PreprocessingDataTableView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="PreprocessingDataTableView.Designer.cs">
+      <DependentUpon>PreprocessingDataTableView.cs</DependentUpon>
+    </Compile>
     <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="StatisticsView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="StatisticsView.Designer.cs">
+      <DependentUpon>StatisticsView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="TransformationView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="TransformationView.Designer.cs">
+      <DependentUpon>TransformationView.cs</DependentUpon>
+    </Compile>
   </ItemGroup>
   <ItemGroup>
@@ -51,7 +108,59 @@
   </ItemGroup>
   <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.Analysis.Views\3.3\HeuristicLab.Analysis.Views-3.3.csproj">
+      <Project>{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}</Project>
+      <Name>HeuristicLab.Analysis.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Analysis\3.3\HeuristicLab.Analysis-3.3.csproj">
+      <Project>{887425B4-4348-49ED-A457-B7D2C26DDBF9}</Project>
+      <Name>HeuristicLab.Analysis-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
+      <Project>{0e27a536-1c4a-4624-a65e-dc4f4f23e3e1}</Project>
+      <Name>HeuristicLab.Common.Resources-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
+      <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
+      <Name>HeuristicLab.Common-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Core.Views\3.3\HeuristicLab.Core.Views-3.3.csproj">
+      <Project>{E226881D-315F-423D-B419-A766FE0D8685}</Project>
+      <Name>HeuristicLab.Core.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
+      <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
+      <Name>HeuristicLab.Core-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Data.Views\3.3\HeuristicLab.Data.Views-3.3.csproj">
+      <Project>{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}</Project>
+      <Name>HeuristicLab.Data.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.DataPreprocessing\3.3\HeuristicLab.DataPreprocessing-3.3.csproj">
+      <Project>{3B90F866-70F8-43EF-A541-51819D255B7B}</Project>
+      <Name>HeuristicLab.DataPreprocessing-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
+      <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>
+      <Name>HeuristicLab.Data-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.MainForm.WindowsForms\3.3\HeuristicLab.MainForm.WindowsForms-3.3.csproj">
+      <Project>{AB687BBE-1BFE-476B-906D-44237135431D}</Project>
+      <Name>HeuristicLab.MainForm.WindowsForms-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.MainForm\3.3\HeuristicLab.MainForm-3.3.csproj">
+      <Project>{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}</Project>
+      <Name>HeuristicLab.MainForm-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">
+      <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project>
+      <Name>HeuristicLab.Optimization-3.3</Name>
+    </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
       <Project>{94186a6a-5176-4402-ae83-886557b53cca}</Project>
       <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Visualization.ChartControlsExtensions\3.3\HeuristicLab.Visualization.ChartControlsExtensions-3.3.csproj">
+      <Project>{315BDA09-3F4F-49B3-9790-B37CFC1C5750}</Project>
+      <Name>HeuristicLab.Visualization.ChartControlsExtensions-3.3</Name>
     </ProjectReference>
   </ItemGroup>
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/HistogramView.Designer.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/HistogramView.Designer.cs	(revision 10557)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/HistogramView.Designer.cs	(revision 10557)
@@ -0,0 +1,104 @@
+﻿namespace HeuristicLab.DataPreprocessing.Views {
+  partial class HistogramView {
+    /// <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.groupBoxAttributs = new System.Windows.Forms.GroupBox();
+      this.variablesListBox = new System.Windows.Forms.CheckedListBox();
+      this.groupBoxOptions = new System.Windows.Forms.GroupBox();
+      this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.groupBoxAttributs.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // groupBoxAttributs
+      // 
+      this.groupBoxAttributs.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left)));
+      this.groupBoxAttributs.Controls.Add(this.variablesListBox);
+      this.groupBoxAttributs.Location = new System.Drawing.Point(3, 4);
+      this.groupBoxAttributs.Name = "groupBoxAttributs";
+      this.groupBoxAttributs.Size = new System.Drawing.Size(153, 252);
+      this.groupBoxAttributs.TabIndex = 3;
+      this.groupBoxAttributs.TabStop = false;
+      this.groupBoxAttributs.Text = "Attributes";
+      // 
+      // variablesListBox
+      // 
+      this.variablesListBox.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.variablesListBox.FormattingEnabled = true;
+      this.variablesListBox.Location = new System.Drawing.Point(6, 19);
+      this.variablesListBox.Name = "variablesListBox";
+      this.variablesListBox.Size = new System.Drawing.Size(141, 229);
+      this.variablesListBox.TabIndex = 1;
+      this.variablesListBox.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.variablesListBox_ItemCheck);
+      // 
+      // groupBoxOptions
+      // 
+      this.groupBoxOptions.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.groupBoxOptions.Location = new System.Drawing.Point(4, 262);
+      this.groupBoxOptions.Name = "groupBoxOptions";
+      this.groupBoxOptions.Size = new System.Drawing.Size(152, 138);
+      this.groupBoxOptions.TabIndex = 4;
+      this.groupBoxOptions.TabStop = false;
+      this.groupBoxOptions.Text = "Options";
+      // 
+      // viewHost
+      // 
+      this.viewHost.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.viewHost.Caption = "View";
+      this.viewHost.Content = null;
+      this.viewHost.Enabled = false;
+      this.viewHost.Location = new System.Drawing.Point(163, 4);
+      this.viewHost.Name = "viewHost";
+      this.viewHost.ReadOnly = false;
+      this.viewHost.Size = new System.Drawing.Size(524, 396);
+      this.viewHost.TabIndex = 5;
+      this.viewHost.ViewsLabelVisible = true;
+      this.viewHost.ViewType = null;
+      // 
+      // HistogramView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.viewHost);
+      this.Controls.Add(this.groupBoxOptions);
+      this.Controls.Add(this.groupBoxAttributs);
+      this.Name = "HistogramView";
+      this.Size = new System.Drawing.Size(690, 403);
+      this.groupBoxAttributs.ResumeLayout(false);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.GroupBox groupBoxAttributs;
+    private System.Windows.Forms.CheckedListBox variablesListBox;
+    private System.Windows.Forms.GroupBox groupBoxOptions;
+    private MainForm.WindowsForms.ViewHost viewHost;
+  }
+}
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/HistogramView.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/HistogramView.cs	(revision 10557)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/HistogramView.cs	(revision 10557)
@@ -0,0 +1,62 @@
+﻿using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+using HeuristicLab.Data.Views;
+
+namespace HeuristicLab.DataPreprocessing.Views {
+
+  [View("Histogram View")]
+  [Content(typeof(HistogramContent), false)]
+  public partial class HistogramView : ItemView {
+    public HistogramView() {
+      InitializeComponent();
+    }
+
+    public new HistogramContent Content {
+      get { return (HistogramContent)base.Content; }
+      set { base.Content = value; }
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content != null) {
+        InitDataTable();
+        InitVariablesListBox();
+      }
+    }
+
+    private void InitVariablesListBox() {
+      IHistogramLogic logic = Content.HistogramLogic;
+
+      foreach (var variableName in logic.GetVariableNames()) {
+        variablesListBox.Items.Add(variableName, true);
+      }
+    }
+
+    private void InitDataTable() {
+      IHistogramLogic logic = Content.HistogramLogic;
+      viewHost.Content = logic.GetDataTable();
+    }
+
+    private void variablesListBox_ItemCheck(object sender, ItemCheckEventArgs e) {
+      string item = variablesListBox.Items[e.Index] as string;
+
+      if (e.NewValue == CheckState.Checked && !Content.HistogramLogic.VariableIsDisplayed(item))
+        Content.HistogramLogic.AddVariable(item);
+      else if (e.NewValue == CheckState.Unchecked && Content.HistogramLogic.VariableIsDisplayed(item))
+        Content.HistogramLogic.RemoveVariable(item);
+    }
+  }
+}
+
+
+
+
+
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/LineChartView.Designer.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/LineChartView.Designer.cs	(revision 10557)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/LineChartView.Designer.cs	(revision 10557)
@@ -0,0 +1,125 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 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.DataPreprocessing.Views {
+  partial class LineChartView {
+    /// <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.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.variablesListBox = new System.Windows.Forms.CheckedListBox();
+      this.groupBoxAttributs = new System.Windows.Forms.GroupBox();
+      this.groupBoxOptions = new System.Windows.Forms.GroupBox();
+      this.groupBoxAttributs.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // viewHost
+      // 
+      this.viewHost.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.viewHost.Caption = "View";
+      this.viewHost.Content = null;
+      this.viewHost.Enabled = false;
+      this.viewHost.Location = new System.Drawing.Point(162, 4);
+      this.viewHost.Name = "viewHost";
+      this.viewHost.ReadOnly = false;
+      this.viewHost.Size = new System.Drawing.Size(489, 396);
+      this.viewHost.TabIndex = 0;
+      this.viewHost.ViewsLabelVisible = true;
+      this.viewHost.ViewType = null;
+      // 
+      // variablesListBox
+      // 
+      this.variablesListBox.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.variablesListBox.FormattingEnabled = true;
+      this.variablesListBox.Location = new System.Drawing.Point(6, 19);
+      this.variablesListBox.Name = "variablesListBox";
+      this.variablesListBox.Size = new System.Drawing.Size(141, 229);
+      this.variablesListBox.TabIndex = 1;
+      this.variablesListBox.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.variablesListBox_ItemCheck);
+      // 
+      // groupBoxAttributs
+      // 
+      this.groupBoxAttributs.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left)));
+      this.groupBoxAttributs.Controls.Add(this.variablesListBox);
+      this.groupBoxAttributs.Location = new System.Drawing.Point(3, 4);
+      this.groupBoxAttributs.Name = "groupBoxAttributs";
+      this.groupBoxAttributs.Size = new System.Drawing.Size(153, 252);
+      this.groupBoxAttributs.TabIndex = 2;
+      this.groupBoxAttributs.TabStop = false;
+      this.groupBoxAttributs.Text = "Attributes";
+      // 
+      // groupBoxOptions
+      // 
+      this.groupBoxOptions.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.groupBoxOptions.Location = new System.Drawing.Point(4, 262);
+      this.groupBoxOptions.Name = "groupBoxOptions";
+      this.groupBoxOptions.Size = new System.Drawing.Size(152, 138);
+      this.groupBoxOptions.TabIndex = 3;
+      this.groupBoxOptions.TabStop = false;
+      this.groupBoxOptions.Text = "Options";
+      // 
+      // LineChartView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.groupBoxOptions);
+      this.Controls.Add(this.groupBoxAttributs);
+      this.Controls.Add(this.viewHost);
+      this.Name = "LineChartView";
+      this.Size = new System.Drawing.Size(654, 403);
+      this.groupBoxAttributs.ResumeLayout(false);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private MainForm.WindowsForms.ViewHost viewHost;
+    private System.Windows.Forms.CheckedListBox variablesListBox;
+    private System.Windows.Forms.GroupBox groupBoxAttributs;
+    private System.Windows.Forms.GroupBox groupBoxOptions;
+  }
+}
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/LineChartView.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/LineChartView.cs	(revision 10557)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/LineChartView.cs	(revision 10557)
@@ -0,0 +1,75 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 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;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+
+namespace HeuristicLab.DataPreprocessing.Views {
+
+  [View("Line Chart View")]
+  [Content(typeof(LineChartContent), false)]
+  public partial class LineChartView : ItemView {
+
+    public LineChartView() {
+      InitializeComponent();
+    }
+
+    private void InitDataTable() { 
+      ILineChartLogic logic = Content.LineChartLogic;
+      viewHost.Content = logic.GetDataTable();
+    }
+
+    public new LineChartContent Content {
+      get { return (LineChartContent)base.Content; }
+      set { base.Content = value; }
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content != null) {
+        InitDataTable();
+        InitVariablesListBox();
+      }
+    }
+
+    private void InitVariablesListBox() {
+      ILineChartLogic logic = Content.LineChartLogic;
+
+      foreach (var variableName in logic.GetVariableNames()) {
+        variablesListBox.Items.Add(variableName, true);
+      }
+    }
+
+    private void variablesListBox_ItemCheck(object sender, ItemCheckEventArgs e) {
+      string item = variablesListBox.Items[e.Index] as string;
+
+
+      if (e.NewValue == CheckState.Checked && !Content.LineChartLogic.VariableIsDisplayed(item))
+        Content.LineChartLogic.AddVariable(item);
+      else if (e.NewValue == CheckState.Unchecked && Content.LineChartLogic.VariableIsDisplayed(item))
+        Content.LineChartLogic.RemoveVariable(item);
+    }
+  }
+}
+
+
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/PreprocessingDataTableView.Designer.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/PreprocessingDataTableView.Designer.cs	(revision 10557)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/PreprocessingDataTableView.Designer.cs	(revision 10557)
@@ -0,0 +1,59 @@
+﻿namespace HeuristicLab.DataPreprocessing.Views {
+  partial class PreprocessingDataTableView {
+    /// <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.ComponentModel.ISupportInitialize)(this.chart)).BeginInit();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+      this.SuspendLayout();
+      // 
+      // chart
+      // 
+      this.chart.Size = new System.Drawing.Size(347, 248);
+      // 
+      // nameTextBox
+      // 
+      this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.errorProvider.SetIconPadding(this.nameTextBox, 2);
+      this.nameTextBox.Size = new System.Drawing.Size(267, 20);
+      // 
+      // infoLabel
+      // 
+      this.infoLabel.Location = new System.Drawing.Point(328, 3);
+      // 
+      // PreprocessingDataTableView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Name = "PreprocessingDataTableView";
+      this.Size = new System.Drawing.Size(347, 274);
+      ((System.ComponentModel.ISupportInitialize)(this.chart)).EndInit();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+  }
+}
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/PreprocessingDataTableView.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/PreprocessingDataTableView.cs	(revision 10557)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/PreprocessingDataTableView.cs	(revision 10557)
@@ -0,0 +1,38 @@
+﻿using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+using HeuristicLab.Data.Views;
+using HeuristicLab.Analysis;
+using HeuristicLab.Analysis.Views;
+
+namespace HeuristicLab.DataPreprocessing.Views {
+
+  [View("Preprocessing Data Table View")]
+  [Content(typeof(DataTable), false)]
+  public partial class PreprocessingDataTableView : DataTableView {
+
+    public new DataTable Content {
+      get { return (DataTable)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public PreprocessingDataTableView() {
+      InitializeComponent();
+
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content != null) {
+      }
+    }
+
+  }
+}
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/StatisticsView.Designer.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/StatisticsView.Designer.cs	(revision 10557)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/StatisticsView.Designer.cs	(revision 10557)
@@ -0,0 +1,206 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 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.DataPreprocessing {
+  partial class StatisticsView {
+    /// <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.lblRows = new System.Windows.Forms.Label();
+      this.txtRows = new System.Windows.Forms.Label();
+      this.lblColumns = new System.Windows.Forms.Label();
+      this.lblMissingValuesTotal = new System.Windows.Forms.Label();
+      this.txtColumns = new System.Windows.Forms.Label();
+      this.txtNumericColumns = new System.Windows.Forms.Label();
+      this.txtNominalColumns = new System.Windows.Forms.Label();
+      this.lblNumericColumns = new System.Windows.Forms.Label();
+      this.lblNominalColumns = new System.Windows.Forms.Label();
+      this.txtMissingValuesTotal = new System.Windows.Forms.Label();
+      this.dataGridView = new System.Windows.Forms.DataGridView();
+      ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit();
+      this.SuspendLayout();
+      // 
+      // lblRows
+      // 
+      this.lblRows.AutoSize = true;
+      this.lblRows.Location = new System.Drawing.Point(3, 11);
+      this.lblRows.Name = "lblRows";
+      this.lblRows.Size = new System.Drawing.Size(34, 13);
+      this.lblRows.TabIndex = 0;
+      this.lblRows.Text = "Rows";
+      // 
+      // txtRows
+      // 
+      this.txtRows.AutoSize = true;
+      this.txtRows.Location = new System.Drawing.Point(115, 11);
+      this.txtRows.Name = "txtRows";
+      this.txtRows.Size = new System.Drawing.Size(19, 13);
+      this.txtRows.TabIndex = 1;
+      this.txtRows.Text = "12";
+      // 
+      // lblColumns
+      // 
+      this.lblColumns.AutoSize = true;
+      this.lblColumns.Location = new System.Drawing.Point(3, 31);
+      this.lblColumns.Name = "lblColumns";
+      this.lblColumns.Size = new System.Drawing.Size(47, 13);
+      this.lblColumns.TabIndex = 2;
+      this.lblColumns.Text = "Columns";
+      // 
+      // lblMissingValuesTotal
+      // 
+      this.lblMissingValuesTotal.AutoSize = true;
+      this.lblMissingValuesTotal.Location = new System.Drawing.Point(3, 92);
+      this.lblMissingValuesTotal.Name = "lblMissingValuesTotal";
+      this.lblMissingValuesTotal.Size = new System.Drawing.Size(100, 13);
+      this.lblMissingValuesTotal.TabIndex = 3;
+      this.lblMissingValuesTotal.Text = "Missing Values total";
+      // 
+      // txtColumns
+      // 
+      this.txtColumns.AutoSize = true;
+      this.txtColumns.Location = new System.Drawing.Point(115, 31);
+      this.txtColumns.Name = "txtColumns";
+      this.txtColumns.Size = new System.Drawing.Size(25, 13);
+      this.txtColumns.TabIndex = 1;
+      this.txtColumns.Text = "123";
+      // 
+      // txtNumericColumns
+      // 
+      this.txtNumericColumns.AutoSize = true;
+      this.txtNumericColumns.Location = new System.Drawing.Point(115, 51);
+      this.txtNumericColumns.Name = "txtNumericColumns";
+      this.txtNumericColumns.Size = new System.Drawing.Size(25, 13);
+      this.txtNumericColumns.TabIndex = 1;
+      this.txtNumericColumns.Text = "456";
+      // 
+      // txtNominalColumns
+      // 
+      this.txtNominalColumns.AutoSize = true;
+      this.txtNominalColumns.Location = new System.Drawing.Point(115, 72);
+      this.txtNominalColumns.Name = "txtNominalColumns";
+      this.txtNominalColumns.Size = new System.Drawing.Size(25, 13);
+      this.txtNominalColumns.TabIndex = 1;
+      this.txtNominalColumns.Text = "789";
+      // 
+      // lblNumericColumns
+      // 
+      this.lblNumericColumns.AutoSize = true;
+      this.lblNumericColumns.Location = new System.Drawing.Point(3, 51);
+      this.lblNumericColumns.Name = "lblNumericColumns";
+      this.lblNumericColumns.Size = new System.Drawing.Size(89, 13);
+      this.lblNumericColumns.TabIndex = 3;
+      this.lblNumericColumns.Text = "Numeric Columns";
+      // 
+      // lblNominalColumns
+      // 
+      this.lblNominalColumns.AutoSize = true;
+      this.lblNominalColumns.Location = new System.Drawing.Point(3, 72);
+      this.lblNominalColumns.Name = "lblNominalColumns";
+      this.lblNominalColumns.Size = new System.Drawing.Size(88, 13);
+      this.lblNominalColumns.TabIndex = 3;
+      this.lblNominalColumns.Text = "Nominal Columns";
+      // 
+      // txtMissingValuesTotal
+      // 
+      this.txtMissingValuesTotal.AutoSize = true;
+      this.txtMissingValuesTotal.Location = new System.Drawing.Point(115, 92);
+      this.txtMissingValuesTotal.Name = "txtMissingValuesTotal";
+      this.txtMissingValuesTotal.Size = new System.Drawing.Size(25, 13);
+      this.txtMissingValuesTotal.TabIndex = 1;
+      this.txtMissingValuesTotal.Text = "102";
+      // 
+      // dataGridView
+      // 
+      this.dataGridView.AllowUserToAddRows = false;
+      this.dataGridView.AllowUserToDeleteRows = false;
+      this.dataGridView.AllowUserToOrderColumns = true;
+      this.dataGridView.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.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+      this.dataGridView.Location = new System.Drawing.Point(5, 117);
+      this.dataGridView.Name = "dataGridView";
+      this.dataGridView.ReadOnly = true;
+      this.dataGridView.RowHeadersWidth = 80;
+      this.dataGridView.Size = new System.Drawing.Size(530, 278);
+      this.dataGridView.TabIndex = 4;
+      this.dataGridView.VirtualMode = true;
+      this.dataGridView.CellValueNeeded += new System.Windows.Forms.DataGridViewCellValueEventHandler(this.dataGridView_CellValueNeeded);
+      // 
+      // StatisticsView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.dataGridView);
+      this.Controls.Add(this.lblNominalColumns);
+      this.Controls.Add(this.lblNumericColumns);
+      this.Controls.Add(this.lblMissingValuesTotal);
+      this.Controls.Add(this.txtMissingValuesTotal);
+      this.Controls.Add(this.txtNominalColumns);
+      this.Controls.Add(this.lblColumns);
+      this.Controls.Add(this.txtNumericColumns);
+      this.Controls.Add(this.txtColumns);
+      this.Controls.Add(this.txtRows);
+      this.Controls.Add(this.lblRows);
+      this.Name = "StatisticsView";
+      this.Size = new System.Drawing.Size(549, 408);
+      ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit();
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.Label lblRows;
+    private System.Windows.Forms.Label txtRows;
+    private System.Windows.Forms.Label lblColumns;
+    private System.Windows.Forms.Label lblMissingValuesTotal;
+    private System.Windows.Forms.Label txtColumns;
+    private System.Windows.Forms.Label txtNumericColumns;
+    private System.Windows.Forms.Label txtNominalColumns;
+    private System.Windows.Forms.Label lblNumericColumns;
+    private System.Windows.Forms.Label lblNominalColumns;
+    private System.Windows.Forms.Label txtMissingValuesTotal;
+    private System.Windows.Forms.DataGridView dataGridView;
+  }
+}
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/StatisticsView.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/StatisticsView.cs	(revision 10557)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/StatisticsView.cs	(revision 10557)
@@ -0,0 +1,215 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 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.Windows.Forms;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+
+namespace HeuristicLab.DataPreprocessing {
+
+  [View("Statistics View")]
+  [Content(typeof(StatisticsContent), false)]
+  public partial class StatisticsView : ItemView {
+
+    private List<List<string>> columnsRowsMatrix;
+    private readonly int COLUMNS = 10;
+
+    public new StatisticsContent Content {
+      get { return (StatisticsContent)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public StatisticsView() {
+      InitializeComponent();
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content == null) {
+        txtRows.Text = "";
+        txtColumns.Text = "";
+        txtNumericColumns.Text = "";
+        txtNominalColumns.Text = "";
+        txtMissingValuesTotal.Text = "";
+        dataGridView.Columns.Clear();
+      } else {
+        UpdateData();
+      }
+    }
+
+    /// <summary>
+    /// Adds eventhandlers to the current instance.
+    /// </summary>
+    protected override void RegisterContentEvents() {
+      Content.Changed += Content_Changed;
+    }
+
+
+    /// <summary>
+    /// Removes the eventhandlers from the current instance.
+    /// </summary>
+    protected override void DeregisterContentEvents() {
+      Content.Changed -= Content_Changed;
+    }
+
+    private void UpdateData() {
+      var logic = Content.StatisticsLogic;
+      txtRows.Text = logic.GetRowCount().ToString();
+      txtColumns.Text = logic.GetColumnCount().ToString();
+      txtNumericColumns.Text = logic.GetNumericColumnCount().ToString();
+      txtNominalColumns.Text = logic.GetNominalColumnCount().ToString();
+      txtMissingValuesTotal.Text = logic.GetMissingValueCount().ToString();
+
+      columnsRowsMatrix = new List<List<string>>();
+      DataGridViewColumn[] columns = new DataGridViewColumn[10];
+      for (int i = 0; i < COLUMNS; ++i) {
+        var column = new DataGridViewTextBoxColumn();
+        column.FillWeight = 1;
+        columns[i] = column;
+      }
+
+      columns[0].HeaderCell.Value = "Type";
+      columns[1].HeaderCell.Value = "Missing Values";
+      columns[2].HeaderCell.Value = "Min";
+      columns[3].HeaderCell.Value = "Max";
+      columns[4].HeaderCell.Value = "Median";
+      columns[5].HeaderCell.Value = "Average";
+      columns[6].HeaderCell.Value = "std. Deviation";
+      columns[7].HeaderCell.Value = "Variance";
+      columns[8].HeaderCell.Value = "Most Common Value";
+      columns[9].HeaderCell.Value = "Num. diff. Values";
+
+      for (int i = 0; i < logic.GetColumnCount(); ++i) {
+        columnsRowsMatrix.Add(GetList(i));
+      }
+
+      dataGridView.Columns.Clear();
+      dataGridView.Columns.AddRange(columns);
+      dataGridView.RowCount = columnsRowsMatrix.Count;
+
+      for (int i = 0; i < columnsRowsMatrix.Count; ++i) {
+        dataGridView.Rows[i].HeaderCell.Value = logic.GetVariableName(i);
+      }
+      dataGridView.AllowUserToResizeColumns = true;
+    }
+
+    private List<string> GetList(int i) {
+      List<string> list;
+      var logic = Content.StatisticsLogic;
+      if (logic.IsType<double>(i)) {
+        list = GetDoubleColumns(i);
+      } else if (logic.IsType<string>(i)) {
+        list = GetStringColumns(i);
+      } else if (logic.IsType<DateTime>(i)) {
+        list = GetDateTimeColumns(i);
+      } else {
+        list = new List<string>();
+        for (int j = 0; j < COLUMNS; ++j) {
+          list.Add("unknown column type");
+        }
+      }
+      return list;
+    }
+
+    private List<string> GetDoubleColumns(int columnIndex) {
+      var logic = Content.StatisticsLogic;
+      return new List<string> {
+        logic.GetColumnTypeAsString(columnIndex),
+        logic.GetMissingValueCount(columnIndex).ToString(),
+        logic.GetMin<double>(columnIndex).ToString(),
+        logic.GetMax<double>(columnIndex).ToString(),
+        logic.GetMedian(columnIndex).ToString(),
+        logic.GetAverage(columnIndex).ToString(),
+        logic.GetStandardDeviation(columnIndex).ToString(),
+        logic.GetVariance(columnIndex).ToString(),
+        logic.GetMostCommonValue<double>(columnIndex).ToString(),
+        logic.GetDifferentValuesCount<double>(columnIndex).ToString()
+      };
+    }
+
+    private List<string> GetStringColumns(int columnIndex) {
+      var logic = Content.StatisticsLogic;
+      return new List<string> {
+        logic.GetColumnTypeAsString(columnIndex),
+        logic.GetMissingValueCount(columnIndex).ToString(),
+        "", //min
+        "", //max
+        "", //median
+        "", //average
+        "", //standard deviation
+        "", //variance
+        logic.GetMostCommonValue<string>(columnIndex).ToString(),
+        logic.GetDifferentValuesCount<string>(columnIndex).ToString()
+      };
+    }
+
+    private List<string> GetDateTimeColumns(int columnIndex) {
+      var logic = Content.StatisticsLogic;
+      return new List<string> {
+        logic.GetColumnTypeAsString(columnIndex),
+        logic.GetMissingValueCount(columnIndex).ToString(),
+        logic.GetMin<DateTime>(columnIndex).ToString(),
+        logic.GetMax<DateTime>(columnIndex).ToString(),
+        logic.GetMedianDateTime(columnIndex).ToString(), 
+        logic.GetAverageDateTime(columnIndex).ToString(),
+        logic.GetStandardDeviation(columnIndex).ToString(),
+        logic.GetVariance(columnIndex).ToString(), //variance
+        logic.GetMostCommonValue<DateTime>(columnIndex).ToString(),
+        logic.GetDifferentValuesCount<DateTime>(columnIndex).ToString()
+      };
+    }
+
+    private List<string> GetDoubleColums(int i) {
+      throw new NotImplementedException();
+    }
+
+    private void dataGridView_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e) {
+      if (Content != null && e.RowIndex < columnsRowsMatrix.Count && e.ColumnIndex < columnsRowsMatrix[0].Count) {
+        e.Value = columnsRowsMatrix[e.RowIndex][e.ColumnIndex];
+      }
+    }
+
+    private void Content_Changed(object sender, DataPreprocessingChangedEventArgs e) {
+      switch (e.Type) {
+        case DataPreprocessingChangedEventType.DeleteColumn:
+          columnsRowsMatrix.RemoveAt(e.Column);
+          break;
+        case DataPreprocessingChangedEventType.AddColumn:
+          columnsRowsMatrix.Insert(e.Row, GetList(e.Column));
+          dataGridView.RowCount++;
+          break;
+        case DataPreprocessingChangedEventType.ChangeItem:
+          columnsRowsMatrix[e.Column] = GetList(e.Column);
+          break;
+        case DataPreprocessingChangedEventType.DeleteRow:
+        case DataPreprocessingChangedEventType.AddRow:
+          for (int i = 0; i < columnsRowsMatrix.Count; ++i) {
+            columnsRowsMatrix[i] = GetList(e.Column);
+          }
+          break;
+      }
+      dataGridView.Refresh();
+    }
+  }
+}
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/TransformationView.Designer.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/TransformationView.Designer.cs	(revision 10557)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/TransformationView.Designer.cs	(revision 10557)
@@ -0,0 +1,53 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 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.DataPreprocessing.Views {
+  partial class TransformationView {
+    /// <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/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/TransformationView.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/TransformationView.cs	(revision 10557)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/TransformationView.cs	(revision 10557)
@@ -0,0 +1,45 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 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;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+
+namespace HeuristicLab.DataPreprocessing.Views {
+
+  [View("Transformation View")]
+  [Content(typeof(TransformationContent), false)]
+  public partial class TransformationView : ItemView {
+    public TransformationView() {
+      InitializeComponent();
+    }
+
+    public new TransformationContent Content {
+      get { return (TransformationContent)base.Content; }
+      set { base.Content = value; }
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+    }
+  }
+}
