Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/CheckedFilterCollectionView.Designer.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/CheckedFilterCollectionView.Designer.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/CheckedFilterCollectionView.Designer.cs	(revision 14075)
@@ -1,8 +1,25 @@
-﻿using HeuristicLab.Core.Views;
-using HeuristicLab.DataPreprocessing.Filter;
-namespace HeuristicLab.DataPreprocessing.Views
-{
-  partial class CheckedFilterCollectionView
-  {
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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 CheckedFilterCollectionView {
     /// <summary> 
     /// Required designer variable.
@@ -14,8 +31,6 @@
     /// </summary>
     /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-    protected override void Dispose(bool disposing)
-    {
-      if (disposing && (components != null))
-      {
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
         components.Dispose();
       }
@@ -29,6 +44,5 @@
     /// the contents of this method with the code editor.
     /// </summary>
-    private void InitializeComponent()
-    {
+    private void InitializeComponent() {
       components = new System.ComponentModel.Container();
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/CheckedFilterCollectionView.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/CheckedFilterCollectionView.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/CheckedFilterCollectionView.cs	(revision 14075)
@@ -1,29 +1,40 @@
-﻿using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Linq;
-using System.Text;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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.Core;
 using HeuristicLab.Core.Views;
-using HeuristicLab.Collections;
+using HeuristicLab.DataPreprocessing.Filter;
 using HeuristicLab.MainForm;
-using HeuristicLab.Core;
-using HeuristicLab.DataPreprocessing.Filter;
 
-namespace HeuristicLab.DataPreprocessing.Views
-{
+namespace HeuristicLab.DataPreprocessing.Views {
   [View("CheckedFilterCollection View")]
   [Content(typeof(ICheckedItemCollection<>), false)]
   [Content(typeof(CheckedItemCollection<>), false)]
-  public partial class CheckedFilterCollectionView : CheckedItemCollectionView<IFilter>
-  {
-    public CheckedFilterCollectionView()
-    {
+  public partial class CheckedFilterCollectionView : CheckedItemCollectionView<IFilter> {
+    public CheckedFilterCollectionView() {
       InitializeComponent();
     }
 
-    protected override void addButton_Click(object sender, EventArgs e)
-    {
+    protected override void addButton_Click(object sender, EventArgs e) {
       IFilter filter = new ComparisonFilter();
       Content.Add(filter);
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/DataCompletenessView.Designer.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/DataCompletenessView.Designer.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/DataCompletenessView.Designer.cs	(revision 14075)
@@ -1,5 +1,25 @@
-﻿namespace HeuristicLab.DataPreprocessing.Views {
-  partial class DataCompletenessView
-  {
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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 DataCompletenessView {
     /// <summary> 
     /// Required designer variable.
@@ -34,6 +54,6 @@
       // chart
       // 
-      this.chart.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
+      this.chart.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)));
       chartArea1.Name = "ChartArea1";
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/DataCompletenessView.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/DataCompletenessView.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/DataCompletenessView.cs	(revision 14075)
@@ -1,11 +1,30 @@
-﻿using System;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Drawing;
 using System.Windows.Forms;
-using HeuristicLab.Analysis;
+using System.Windows.Forms.DataVisualization.Charting;
+using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
-using HeuristicLab.Core.Views;
-using System.Collections.Generic;
-using HeuristicLab.DataPreprocessing.Implementations;
-using System.Drawing;
-using System.Windows.Forms.DataVisualization.Charting;
 
 namespace HeuristicLab.DataPreprocessing.Views {
@@ -13,6 +32,5 @@
   [View("Histogram View")]
   [Content(typeof(DataCompletenessChartContent), true)]
-  public partial class DataCompletenessView : ItemView
-  {
+  public partial class DataCompletenessView : ItemView {
 
     //list of columns, bool indicates wether the cell is a missing value or not
@@ -22,6 +40,5 @@
     private static Color colorMissingVal = Color.Orange;
 
-    public new DataCompletenessChartContent Content
-    {
+    public new DataCompletenessChartContent Content {
       get { return (DataCompletenessChartContent)base.Content; }
       set { base.Content = value; }
@@ -29,23 +46,18 @@
 
 
-    public DataCompletenessView()
-    {
+    public DataCompletenessView() {
       InitializeComponent();
     }
 
-    protected override void OnContentChanged()
-    {
+    protected override void OnContentChanged() {
       base.OnContentChanged();
-      if (Content != null)
-      {
+      if (Content != null) {
         InitData();
       }
     }
 
-    private void InitData()
-    {
+    private void InitData() {
       IDictionary<int, IList<int>> missingValueIndices = Content.SearchLogic.GetMissingValueIndices();
-      for (int i = 0; i < Content.SearchLogic.Columns; i++)
-      {
+      for (int i = 0; i < Content.SearchLogic.Columns; i++) {
         //append column
         List<bool> column = new List<bool>();
@@ -60,6 +72,5 @@
     }
 
-    private void PrepareChart()
-    {
+    private void PrepareChart() {
       chart.Titles.Add("DataCompletenessChart");
       chart.EnableDoubleClickResetsZoom = true;
@@ -74,6 +85,5 @@
       //custom x axis label
       double from = 0.5;
-      foreach (String columnName in Content.SearchLogic.VariableNames)
-      {
+      foreach (String columnName in Content.SearchLogic.VariableNames) {
         double to = from + 1;
         chart.ChartAreas[0].AxisX.CustomLabels.Add(from, to, columnName);
@@ -84,10 +94,8 @@
     }
 
-    private void CreateSeries(List<List<int>> yValuesPerColumn)
-    {
+    private void CreateSeries(List<List<int>> yValuesPerColumn) {
       //prepare series
       int seriesCount = DetermineSeriesCount(yValuesPerColumn);
-      for (int i = 0; i < seriesCount; i++)
-      {
+      for (int i = 0; i < seriesCount; i++) {
         chart.Series.Add(CreateSeriesName(i));
         Series series = chart.Series[CreateSeriesName(i)];
@@ -95,12 +103,9 @@
         series.IsVisibleInLegend = false;
         series["PointWidth"] = "1.0";
-        if (i % 2 == 0)
-        {
+        if (i % 2 == 0) {
           if (i == 0) //show legend for non missing values only once
             series.IsVisibleInLegend = true;
           series.Color = colorNonMissingVal;
-        }
-        else
-        {
+        } else {
           if (i == 1) //show legend for missing values only once
             series.IsVisibleInLegend = true;
@@ -109,6 +114,5 @@
       }
       //fill series
-      for (int i = 0; i < yValuesPerColumn.Count; i++)
-      {
+      for (int i = 0; i < yValuesPerColumn.Count; i++) {
         List<int> column = yValuesPerColumn[i];
         for (int j = 0; j < seriesCount; j++) {
@@ -122,6 +126,5 @@
     }
 
-    private String CreateSeriesName(int index)
-    {
+    private String CreateSeriesName(int index) {
       if (index == 0)
         return "non-missing value";
@@ -132,6 +135,5 @@
 
     #region data_preparation_for_chartseries
-    private int DetermineSeriesCount(List<List<int>> yValuesPerColumn)
-    {
+    private int DetermineSeriesCount(List<List<int>> yValuesPerColumn) {
       int highest = 0;
       foreach (List<int> values in yValuesPerColumn) {
@@ -141,8 +143,7 @@
     }
 
-    private List<List<int>> ProcessMatrixForCharting(List<List<bool>> matrix, IDictionary<int, IList<int>> missingValueIndices)
-    {
+    private List<List<int>> ProcessMatrixForCharting(List<List<bool>> matrix, IDictionary<int, IList<int>> missingValueIndices) {
       List<List<int>> columnsYValues = new List<List<int>>();
-      for (int i=0; i < matrix.Count; i++) //column
+      for (int i = 0; i < matrix.Count; i++) //column
       {
         List<int> yValues = new List<int>();
@@ -150,11 +151,8 @@
         bool missingState = false;
         int valueCount = 0;
-        for (int j = 0; j < column.Count; j++ ) {
-          if (missingState == missingValueIndices[i].Contains(j))
-          {
+        for (int j = 0; j < column.Count; j++) {
+          if (missingState == missingValueIndices[i].Contains(j)) {
             valueCount++;
-          }
-          else
-          {
+          } else {
             yValues.Add(valueCount);
             valueCount = 1;
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/DataGridContentView.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/DataGridContentView.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/DataGridContentView.cs	(revision 14075)
@@ -31,5 +31,5 @@
 namespace HeuristicLab.DataPreprocessing.Views {
   [View("Data Grid Content View")]
-  [Content(typeof(IDataGridContent), true)]
+  [Content(typeof(DataGridContent), true)]
   public partial class DataGridContentView : StringConvertibleMatrixView {
 
@@ -42,6 +42,6 @@
     private Tuple<int, int> currentCell;
 
-    public new IDataGridContent Content {
-      get { return (IDataGridContent)base.Content; }
+    public new DataGridContent Content {
+      get { return (DataGridContent)base.Content; }
       set { base.Content = value; }
     }
@@ -145,4 +145,5 @@
     protected override void PasteValuesToDataGridView() {
       string[,] values = SplitClipboardString(Clipboard.GetText());
+      if (values.Length == 0) return;
       int rowIndex = 0;
       int columnIndex = 0;
@@ -151,13 +152,33 @@
         columnIndex = dataGridView.CurrentCell.ColumnIndex;
       }
-      if (Content.Rows < values.GetLength(1) + rowIndex) Content.Rows = values.GetLength(1) + rowIndex;
-      if (Content.Columns < values.GetLength(0) + columnIndex) Content.Columns = values.GetLength(0) + columnIndex;
+
+      bool containsHeader = false;
+      var firstRow = Enumerable.Range(0, values.GetLength(0)).Select(col => values[col, 0]).ToList();
+      if ((Content.Selection.Values.Sum(s => s.Count) == Content.Rows * Content.Columns)
+          || (rowIndex == 0 && columnIndex == 0 && Content.Rows <= values.GetLength(1) && Content.Columns <= values.GetLength(0))) {
+        // All is selected -or- top left selected and everything will be replaced
+        double temp;
+        containsHeader = !firstRow.All(string.IsNullOrEmpty) && firstRow.Any(r => !double.TryParse(r, out temp));
+        if (containsHeader)
+          rowIndex = columnIndex = 0;
+      }
+
+      int newRows = values.GetLength(1) + rowIndex - (containsHeader ? 1 : 0);
+      int newColumns = values.GetLength(0) + columnIndex;
+      if (Content.Rows < newRows) Content.Rows = newRows;
+      if (Content.Columns < newColumns) Content.Columns = newColumns;
 
       ReplaceTransaction(() => {
         Content.PreProcessingData.InTransaction(() => {
-          for (int row = 0; row < values.GetLength(1); row++) {
+          for (int row = containsHeader ? 1 : 0; row < values.GetLength(1); row++) {
             for (int col = 0; col < values.GetLength(0); col++) {
-              Content.SetValue(values[col, row], row + rowIndex, col + columnIndex);
+              Content.SetValue(values[col, row], row + rowIndex - (containsHeader ? 1 : 0), col + columnIndex);
             }
+          }
+          if (containsHeader) {
+            for (int i = 0; i < firstRow.Count; i++)
+              if (string.IsNullOrWhiteSpace(firstRow[i]))
+                firstRow[i] = string.Format("<{0}>", i);
+            Content.PreProcessingData.RenameColumns(firstRow);
           }
         });
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/DataPreprocessingMenuItem.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/DataPreprocessingMenuItem.cs	(revision 14075)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/DataPreprocessingMenuItem.cs	(revision 14075)
@@ -0,0 +1,53 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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.Collections.Generic;
+using System.Windows.Forms;
+using HeuristicLab.MainForm;
+using HeuristicLab.Optimizer;
+using HeuristicLab.Problems.DataAnalysis;
+
+namespace HeuristicLab.DataPreprocessing.Views {
+  public class DataPreprocessingMenuItem {
+    internal class CreateExperimentMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItem, IOptimizerUserInterfaceItemProvider {
+      public override string Name {
+        get { return "Data &Preprocessing"; }
+      }
+      public override IEnumerable<string> Structure {
+        get { return new string[] { "&Edit", "&Data Analysis" }; }
+      }
+      public override int Position {
+        get { return 5500; }
+      }
+      public override string ToolTipText {
+        get { return "Create a new data preprocessing"; }
+      }
+
+      public override void Execute() {
+        MainFormManager.MainForm.ShowContent(new PreprocessingContext(new RegressionProblemData()));
+      }
+
+      public override Keys ShortCutKeys {
+        get { return Keys.Control | Keys.D; }
+      }
+    }
+  }
+}
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/DataPreprocessingView.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/DataPreprocessingView.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/DataPreprocessingView.cs	(revision 14075)
@@ -21,4 +21,6 @@
 
 using System;
+using System.IO;
+using System.Threading.Tasks;
 using System.Windows.Forms;
 using HeuristicLab.Common;
@@ -26,10 +28,12 @@
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
+using HeuristicLab.Problems.DataAnalysis;
+using HeuristicLab.Problems.Instances.DataAnalysis;
+using HeuristicLab.Problems.Instances.DataAnalysis.Views;
 
 namespace HeuristicLab.DataPreprocessing.Views {
   [View("DataPreprocessing View")]
   [Content(typeof(PreprocessingContext), true)]
-  [Content(typeof(IPreprocessingContext), false)]
-  public partial class DataPreprocessingView : ItemView {
+  public partial class DataPreprocessingView : NamedItemView {
 
     public DataPreprocessingView() {
@@ -37,6 +41,6 @@
     }
 
-    public new IPreprocessingContext Content {
-      get { return (IPreprocessingContext)base.Content; }
+    public new PreprocessingContext Content {
+      get { return (PreprocessingContext)base.Content; }
       set { base.Content = value; }
     }
@@ -60,5 +64,5 @@
           new CorrelationMatrixContent(Content),
           new DataCompletenessChartContent(searchLogic),
-          
+
           new FilterContent(filterLogic),
           new ManipulationContent(manipulationLogic, searchLogic, filterLogic),
@@ -67,15 +71,28 @@
 
         viewShortcutListView.Content = viewShortcuts.AsReadOnly();
-
         viewShortcutListView.ItemsListView.Items[0].Selected = true;
         viewShortcutListView.Select();
 
+        applyTypeContextMenuStrip.Items.Clear();
+        exportTypeContextMenuStrip.Items.Clear();
+        foreach (var exportOption in Content.GetSourceExportOptions()) {
+          var applyMenuItem = new ToolStripMenuItem(exportOption.Key) { Tag = exportOption.Value };
+          applyMenuItem.Click += applyToolStripMenuItem_Click;
+          applyTypeContextMenuStrip.Items.Add(applyMenuItem);
+
+          var exportMenuItem = new ToolStripMenuItem(exportOption.Key) { Tag = exportOption.Value };
+          exportMenuItem.Click += exportToolStripMenuItem_Click;
+          exportTypeContextMenuStrip.Items.Add(exportMenuItem);
+        }
+        var exportCsvMenuItem = new ToolStripMenuItem(".csv");
+        exportCsvMenuItem.Click += exportCsvMenuItem_Click;
+        exportTypeContextMenuStrip.Items.Add(exportCsvMenuItem);
       } else {
         viewShortcutListView.Content = null;
       }
     }
-
     protected override void RegisterContentEvents() {
       base.RegisterContentEvents();
+      Content.Reset += Content_Reset;
       Content.Data.FilterChanged += Data_FilterChanged;
     }
@@ -83,5 +100,10 @@
     protected override void DeregisterContentEvents() {
       base.DeregisterContentEvents();
+      Content.Reset -= Content_Reset;
       Content.Data.FilterChanged -= Data_FilterChanged;
+    }
+
+    void Content_Reset(object sender, EventArgs e) {
+      OnContentChanged(); // Reset by setting new content
     }
 
@@ -94,11 +116,91 @@
       viewShortcutListView.Enabled = Content != null;
       applyInNewTabButton.Enabled = Content != null;
-      exportProblemButton.Enabled = Content != null && Content.Problem != null;
+      exportProblemButton.Enabled = Content != null && Content.CanExport;
       undoButton.Enabled = Content != null;
     }
 
+    #region New
+    private void newButton_Click(object sender, EventArgs e) {
+      newProblemDataTypeContextMenuStrip.Show(Cursor.Position);
+    }
+    private void newRegressionToolStripMenuItem_Click(object sender, EventArgs e) {
+      Content.Import(new RegressionProblemData());
+    }
+    private void newClassificationToolStripMenuItem_Click(object sender, EventArgs e) {
+      Content.Import(new ClassificationProblemData());
+    }
+    private void newTimeSeriesToolStripMenuItem_Click(object sender, EventArgs e) {
+      Content.Import(new TimeSeriesPrognosisProblemData());
+    }
+    #endregion
+
+    #region Import
+    private void importButton_Click(object sender, EventArgs e) {
+      importProblemDataTypeContextMenuStrip.Show(Cursor.Position);
+    }
+    private void importRegressionToolStripMenuItem_Click(object sender, EventArgs e) {
+      Import(new RegressionCSVInstanceProvider(), new RegressionImportTypeDialog(),
+        (dialog => ((RegressionImportTypeDialog)dialog).ImportType));
+    }
+    private void importClassificationToolStripMenuItem_Click(object sender, EventArgs e) {
+      Import(new ClassificationCSVInstanceProvider(), new ClassificationImportTypeDialog(),
+        (dialog => ((ClassificationImportTypeDialog)dialog).ImportType));
+    }
+    private void importTimeSeriesToolStripMenuItem_Click(object sender, EventArgs e) {
+      Import(new TimeSeriesPrognosisCSVInstanceProvider(), new TimeSeriesPrognosisImportTypeDialog(),
+        (dialog => ((TimeSeriesPrognosisImportTypeDialog)dialog).ImportType));
+    }
+    private void Import<TProblemData, TImportType>(DataAnalysisInstanceProvider<TProblemData, TImportType> instanceProvider, DataAnalysisImportTypeDialog importTypeDialog,
+      Func<DataAnalysisImportTypeDialog, TImportType> getImportType)
+      where TProblemData : class, IDataAnalysisProblemData
+      where TImportType : DataAnalysisImportType {
+      if (importTypeDialog.ShowDialog() == DialogResult.OK) {
+        Task.Run(() => {
+          TProblemData instance;
+          var mainForm = (MainForm.WindowsForms.MainForm)MainFormManager.MainForm;
+          // lock active view and show progress bar
+          var activeView = (IContentView)MainFormManager.MainForm.ActiveView;
+
+          try {
+            var progress = mainForm.AddOperationProgressToContent(activeView.Content, "Loading problem instance.");
+
+            instanceProvider.ProgressChanged += (o, args) => { progress.ProgressValue = args.ProgressPercentage / 100.0; };
+
+            instance = instanceProvider.ImportData(importTypeDialog.Path, getImportType(importTypeDialog), importTypeDialog.CSVFormat);
+          } catch (IOException ex) {
+            MessageBox.Show(string.Format("There was an error parsing the file: {0}", Environment.NewLine + ex.Message), "Error while parsing", MessageBoxButtons.OK, MessageBoxIcon.Error);
+            mainForm.RemoveOperationProgressFromContent(activeView.Content);
+            return;
+          }
+          try {
+            Content.Import(instance);
+          } catch (IOException ex) {
+            MessageBox.Show(string.Format("This problem does not support loading the instance {0}: {1}", Path.GetFileName(importTypeDialog.Path), Environment.NewLine + ex.Message), "Cannot load instance");
+          } finally {
+            mainForm.RemoveOperationProgressFromContent(activeView.Content);
+          }
+        });
+      }
+    }
+    #endregion
+
+    #region Apply
+    private void applyInNewTabButton_Click(object sender, EventArgs e) {
+      applyTypeContextMenuStrip.Show(Cursor.Position);
+    }
+    private void applyToolStripMenuItem_Click(object sender, EventArgs e) {
+      var menuItem = (ToolStripMenuItem)sender;
+      var itemCreator = (Func<IItem>)menuItem.Tag;
+      MainFormManager.MainForm.ShowContent(itemCreator());
+    }
+    #endregion
+
+    #region Export
     private void exportProblemButton_Click(object sender, EventArgs e) {
-      var problem = Content.ExportProblem();
-
+      exportTypeContextMenuStrip.Show(Cursor.Position);
+    }
+    private void exportToolStripMenuItem_Click(object sender, EventArgs e) {
+      var menuItem = (ToolStripMenuItem)sender;
+      var itemCreator = (Func<IItem>)menuItem.Tag;
       var saveFileDialog = new SaveFileDialog {
         Title = "Save Item",
@@ -108,20 +210,60 @@
       };
 
-      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.Export();
-
-      MainFormManager.MainForm.ShowContent(item);
-    }
-
+        Task.Run(() => {
+          bool compressed = saveFileDialog.FilterIndex != 1;
+          var storable = itemCreator() as IStorableContent;
+          if (storable != null) {
+            var mainForm = (MainForm.WindowsForms.MainForm)MainFormManager.MainForm;
+            var activeView = (IContentView)MainFormManager.MainForm.ActiveView;
+            try {
+              mainForm.AddOperationProgressToContent(activeView.Content, "Exporting data.");
+              ContentManager.Save(storable, saveFileDialog.FileName, compressed);
+            } finally {
+              mainForm.RemoveOperationProgressFromContent(activeView.Content);
+            }
+          }
+        });
+      }
+    }
+    private void exportCsvMenuItem_Click(object sender, EventArgs e) {
+      var saveFileDialog = new SaveFileDialog {
+        Title = "Save Data",
+        DefaultExt = "csv",
+        Filter = "CSV files|*.csv|All files|*.*",
+        FilterIndex = 1
+      };
+
+      if (saveFileDialog.ShowDialog() == DialogResult.OK) {
+        Task.Run(() => {
+          var mainForm = (MainForm.WindowsForms.MainForm)MainFormManager.MainForm;
+          var activeView = (IContentView)MainFormManager.MainForm.ActiveView;
+          try {
+            var problemData = Content.CreateNewProblemData();
+            mainForm.AddOperationProgressToContent(activeView.Content, "Exporting data.");
+            if (problemData is TimeSeriesPrognosisProblemData)
+              Export(new TimeSeriesPrognosisCSVInstanceProvider(), problemData, saveFileDialog.FileName);
+            else if (problemData is RegressionProblemData)
+              Export(new RegressionCSVInstanceProvider(), problemData, saveFileDialog.FileName);
+            else if (problemData is ClassificationProblemData)
+              Export(new ClassificationCSVInstanceProvider(), problemData, saveFileDialog.FileName);
+          } finally {
+            mainForm.RemoveOperationProgressFromContent(activeView.Content);
+          }
+        });
+      }
+    }
+    private void Export<TProblemData, TImportType>(DataAnalysisInstanceProvider<TProblemData, TImportType> instanceProvider,
+      IDataAnalysisProblemData problemData, string path)
+      where TProblemData : class, IDataAnalysisProblemData where TImportType : DataAnalysisImportType {
+      instanceProvider.ExportData((TProblemData)problemData, path);
+    }
+    #endregion
+
+    #region Undo / Redo
     private void undoButton_Click(object sender, EventArgs e) {
       Content.Data.Undo();
     }
+    #endregion
   }
 }
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/DataPreprocessingView.designer.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/DataPreprocessingView.designer.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/DataPreprocessingView.designer.cs	(revision 14075)
@@ -50,16 +50,41 @@
       this.applyInNewTabButton = new System.Windows.Forms.Button();
       this.exportProblemButton = new System.Windows.Forms.Button();
-      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
       this.lblFilterActive = new System.Windows.Forms.Label();
+      this.redoButton = new System.Windows.Forms.Button();
+      this.newButton = new System.Windows.Forms.Button();
+      this.importButton = new System.Windows.Forms.Button();
+      this.newProblemDataTypeContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
+      this.newRegressionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.newClassificationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.newTimeSeriesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.importProblemDataTypeContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
+      this.importRegressionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.importClassificationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.importTimeSeriesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
       this.viewShortcutListView = new HeuristicLab.DataPreprocessing.Views.ViewShortcutListView();
+      this.applyTypeContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
+      this.exportTypeContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+      this.newProblemDataTypeContextMenuStrip.SuspendLayout();
+      this.importProblemDataTypeContextMenuStrip.SuspendLayout();
       this.SuspendLayout();
       // 
+      // nameTextBox
+      // 
+      this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.errorProvider.SetIconPadding(this.nameTextBox, 2);
+      this.nameTextBox.Size = new System.Drawing.Size(755, 20);
+      // 
+      // infoLabel
+      // 
+      this.infoLabel.Location = new System.Drawing.Point(819, 3);
+      // 
       // undoButton
       // 
       this.undoButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Undo;
-      this.undoButton.Location = new System.Drawing.Point(64, 3);
+      this.undoButton.Location = new System.Drawing.Point(131, 26);
       this.undoButton.Name = "undoButton";
       this.undoButton.Size = new System.Drawing.Size(24, 24);
-      this.undoButton.TabIndex = 3;
+      this.undoButton.TabIndex = 5;
       this.toolTip.SetToolTip(this.undoButton, "Undo");
       this.undoButton.UseVisualStyleBackColor = true;
@@ -69,9 +94,9 @@
       // 
       this.applyInNewTabButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Play;
-      this.applyInNewTabButton.Location = new System.Drawing.Point(34, 3);
+      this.applyInNewTabButton.Location = new System.Drawing.Point(69, 26);
       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.toolTip.SetToolTip(this.applyInNewTabButton, "Apply in new Tab");
       this.applyInNewTabButton.UseVisualStyleBackColor = true;
       this.applyInNewTabButton.Click += new System.EventHandler(this.applyInNewTabButton_Click);
@@ -79,10 +104,10 @@
       // exportProblemButton
       // 
-      this.exportProblemButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Save;
-      this.exportProblemButton.Location = new System.Drawing.Point(4, 3);
+      this.exportProblemButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.SaveAs;
+      this.exportProblemButton.Location = new System.Drawing.Point(99, 26);
       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.TabIndex = 3;
+      this.toolTip.SetToolTip(this.exportProblemButton, "Export to File");
       this.exportProblemButton.UseVisualStyleBackColor = true;
       this.exportProblemButton.Click += new System.EventHandler(this.exportProblemButton_Click);
@@ -91,5 +116,5 @@
       // 
       this.lblFilterActive.AutoSize = true;
-      this.lblFilterActive.Location = new System.Drawing.Point(220, 12);
+      this.lblFilterActive.Location = new System.Drawing.Point(203, 31);
       this.lblFilterActive.Name = "lblFilterActive";
       this.lblFilterActive.Size = new System.Drawing.Size(277, 13);
@@ -98,16 +123,117 @@
       this.lblFilterActive.Visible = false;
       // 
+      // redoButton
+      // 
+      this.redoButton.Enabled = false;
+      this.redoButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Redo;
+      this.redoButton.Location = new System.Drawing.Point(161, 26);
+      this.redoButton.Name = "redoButton";
+      this.redoButton.Size = new System.Drawing.Size(24, 24);
+      this.redoButton.TabIndex = 6;
+      this.toolTip.SetToolTip(this.redoButton, "Redo (not implemented yet)");
+      this.redoButton.UseVisualStyleBackColor = true;
+      // 
+      // newButton
+      // 
+      this.newButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.NewDocument;
+      this.newButton.Location = new System.Drawing.Point(6, 26);
+      this.newButton.Name = "newButton";
+      this.newButton.Size = new System.Drawing.Size(24, 24);
+      this.newButton.TabIndex = 3;
+      this.newButton.UseVisualStyleBackColor = true;
+      this.newButton.Click += new System.EventHandler(this.newButton_Click);
+      // 
+      // importButton
+      // 
+      this.importButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Open;
+      this.importButton.Location = new System.Drawing.Point(36, 26);
+      this.importButton.Name = "importButton";
+      this.importButton.Size = new System.Drawing.Size(24, 24);
+      this.importButton.TabIndex = 3;
+      this.importButton.UseVisualStyleBackColor = true;
+      this.importButton.Click += new System.EventHandler(this.importButton_Click);
+      // 
+      // newProblemDataTypeContextMenuStrip
+      // 
+      this.newProblemDataTypeContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.newRegressionToolStripMenuItem,
+            this.newClassificationToolStripMenuItem,
+            this.newTimeSeriesToolStripMenuItem});
+      this.newProblemDataTypeContextMenuStrip.Name = "newProblemDataTypeContextMenuStrip";
+      this.newProblemDataTypeContextMenuStrip.Size = new System.Drawing.Size(190, 70);
+      // 
+      // newRegressionToolStripMenuItem
+      // 
+      this.newRegressionToolStripMenuItem.Name = "newRegressionToolStripMenuItem";
+      this.newRegressionToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
+      this.newRegressionToolStripMenuItem.Text = "Regression";
+      this.newRegressionToolStripMenuItem.Click += new System.EventHandler(this.newRegressionToolStripMenuItem_Click);
+      // 
+      // newClassificationToolStripMenuItem
+      // 
+      this.newClassificationToolStripMenuItem.Name = "newClassificationToolStripMenuItem";
+      this.newClassificationToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
+      this.newClassificationToolStripMenuItem.Text = "Classification";
+      this.newClassificationToolStripMenuItem.Click += new System.EventHandler(this.newClassificationToolStripMenuItem_Click);
+      // 
+      // newTimeSeriesToolStripMenuItem
+      // 
+      this.newTimeSeriesToolStripMenuItem.Name = "newTimeSeriesToolStripMenuItem";
+      this.newTimeSeriesToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
+      this.newTimeSeriesToolStripMenuItem.Text = "Time Series Prognosis";
+      this.newTimeSeriesToolStripMenuItem.Click += new System.EventHandler(this.newTimeSeriesToolStripMenuItem_Click);
+      // 
+      // importProblemDataTypeContextMenuStrip
+      // 
+      this.importProblemDataTypeContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.importRegressionToolStripMenuItem,
+            this.importClassificationToolStripMenuItem,
+            this.importTimeSeriesToolStripMenuItem});
+      this.importProblemDataTypeContextMenuStrip.Name = "newProblemDataTypeContextMenuStrip";
+      this.importProblemDataTypeContextMenuStrip.Size = new System.Drawing.Size(190, 92);
+      // 
+      // importRegressionToolStripMenuItem
+      // 
+      this.importRegressionToolStripMenuItem.Name = "importRegressionToolStripMenuItem";
+      this.importRegressionToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
+      this.importRegressionToolStripMenuItem.Text = "Regression";
+      this.importRegressionToolStripMenuItem.Click += new System.EventHandler(this.importRegressionToolStripMenuItem_Click);
+      // 
+      // importClassificationToolStripMenuItem
+      // 
+      this.importClassificationToolStripMenuItem.Name = "importClassificationToolStripMenuItem";
+      this.importClassificationToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
+      this.importClassificationToolStripMenuItem.Text = "Classification";
+      this.importClassificationToolStripMenuItem.Click += new System.EventHandler(this.importClassificationToolStripMenuItem_Click);
+      // 
+      // importTimeSeriesToolStripMenuItem
+      // 
+      this.importTimeSeriesToolStripMenuItem.Name = "importTimeSeriesToolStripMenuItem";
+      this.importTimeSeriesToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
+      this.importTimeSeriesToolStripMenuItem.Text = "Time Series Prognosis";
+      this.importTimeSeriesToolStripMenuItem.Click += new System.EventHandler(this.importTimeSeriesToolStripMenuItem_Click);
+      // 
       // viewShortcutListView
       // 
-      this.viewShortcutListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
+      this.viewShortcutListView.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.viewShortcutListView.Caption = "ViewShortcutCollection View";
       this.viewShortcutListView.Content = null;
-      this.viewShortcutListView.Location = new System.Drawing.Point(4, 33);
+      this.viewShortcutListView.Location = new System.Drawing.Point(4, 56);
       this.viewShortcutListView.Name = "viewShortcutListView";
       this.viewShortcutListView.ReadOnly = false;
-      this.viewShortcutListView.Size = new System.Drawing.Size(831, 413);
-      this.viewShortcutListView.TabIndex = 4;
+      this.viewShortcutListView.Size = new System.Drawing.Size(831, 390);
+      this.viewShortcutListView.TabIndex = 7;
+      // 
+      // applyTypeContextMenuStrip
+      // 
+      this.applyTypeContextMenuStrip.Name = "newProblemDataTypeContextMenuStrip";
+      this.applyTypeContextMenuStrip.Size = new System.Drawing.Size(61, 4);
+      // 
+      // exportTypeContextMenuStrip
+      // 
+      this.exportTypeContextMenuStrip.Name = "newProblemDataTypeContextMenuStrip";
+      this.exportTypeContextMenuStrip.Size = new System.Drawing.Size(61, 4);
       // 
       // DataPreprocessingView
@@ -115,11 +241,28 @@
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.newButton);
+      this.Controls.Add(this.importButton);
+      this.Controls.Add(this.applyInNewTabButton);
+      this.Controls.Add(this.exportProblemButton);
+      this.Controls.Add(this.undoButton);
+      this.Controls.Add(this.redoButton);
       this.Controls.Add(this.lblFilterActive);
       this.Controls.Add(this.viewShortcutListView);
-      this.Controls.Add(this.undoButton);
-      this.Controls.Add(this.applyInNewTabButton);
-      this.Controls.Add(this.exportProblemButton);
       this.Name = "DataPreprocessingView";
       this.Size = new System.Drawing.Size(838, 449);
+      this.Controls.SetChildIndex(this.viewShortcutListView, 0);
+      this.Controls.SetChildIndex(this.lblFilterActive, 0);
+      this.Controls.SetChildIndex(this.redoButton, 0);
+      this.Controls.SetChildIndex(this.undoButton, 0);
+      this.Controls.SetChildIndex(this.exportProblemButton, 0);
+      this.Controls.SetChildIndex(this.applyInNewTabButton, 0);
+      this.Controls.SetChildIndex(this.importButton, 0);
+      this.Controls.SetChildIndex(this.newButton, 0);
+      this.Controls.SetChildIndex(this.infoLabel, 0);
+      this.Controls.SetChildIndex(this.nameTextBox, 0);
+      this.Controls.SetChildIndex(this.nameLabel, 0);
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.newProblemDataTypeContextMenuStrip.ResumeLayout(false);
+      this.importProblemDataTypeContextMenuStrip.ResumeLayout(false);
       this.ResumeLayout(false);
       this.PerformLayout();
@@ -132,8 +275,19 @@
     private System.Windows.Forms.Button applyInNewTabButton;
     private System.Windows.Forms.Button undoButton;
-    private System.Windows.Forms.ToolTip toolTip;
     private ViewShortcutListView viewShortcutListView;
     private System.Windows.Forms.Label lblFilterActive;
-
+    private System.Windows.Forms.Button redoButton;
+    private System.Windows.Forms.Button newButton;
+    private System.Windows.Forms.Button importButton;
+    private System.Windows.Forms.ContextMenuStrip newProblemDataTypeContextMenuStrip;
+    private System.Windows.Forms.ToolStripMenuItem newRegressionToolStripMenuItem;
+    private System.Windows.Forms.ToolStripMenuItem newClassificationToolStripMenuItem;
+    private System.Windows.Forms.ToolStripMenuItem newTimeSeriesToolStripMenuItem;
+    private System.Windows.Forms.ContextMenuStrip importProblemDataTypeContextMenuStrip;
+    private System.Windows.Forms.ToolStripMenuItem importRegressionToolStripMenuItem;
+    private System.Windows.Forms.ToolStripMenuItem importClassificationToolStripMenuItem;
+    private System.Windows.Forms.ToolStripMenuItem importTimeSeriesToolStripMenuItem;
+    private System.Windows.Forms.ContextMenuStrip applyTypeContextMenuStrip;
+    private System.Windows.Forms.ContextMenuStrip exportTypeContextMenuStrip;
   }
 }
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/DataPreprocessorStarter.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/DataPreprocessorStarter.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/DataPreprocessorStarter.cs	(revision 14075)
@@ -21,4 +21,5 @@
 
 using System.Windows.Forms;
+using HeuristicLab.Core;
 using HeuristicLab.MainForm;
 using HeuristicLab.Optimization;
@@ -33,5 +34,5 @@
       IDataAnalysisProblem problem;
       GetMostOuterContent(currentView as Control, out algorithm, out problem);
-      var context = new PreprocessingContext(problemData, algorithm, problem);
+      var context = new PreprocessingContext(problemData, algorithm ?? problem ?? problemData as IItem);
       MainFormManager.MainForm.ShowContent(context);
     }
@@ -42,5 +43,5 @@
 
       while (control != null) {
-        IContentView contentView = control as IContentView;
+        var contentView = control as IContentView;
         if (contentView != null) {
           var newAlgorithm = contentView.Content as IAlgorithm;
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/FilterView.Designer.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/FilterView.Designer.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/FilterView.Designer.cs	(revision 14075)
@@ -1,6 +1,25 @@
-﻿namespace HeuristicLab.DataPreprocessing.Views
-{
-  partial class FilterView
-  {
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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 FilterView {
     /// <summary> 
     /// Required designer variable.
@@ -12,8 +31,6 @@
     /// </summary>
     /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-    protected override void Dispose(bool disposing)
-    {
-      if (disposing && (components != null))
-      {
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
         components.Dispose();
       }
@@ -27,6 +44,5 @@
     /// the contents of this method with the code editor.
     /// </summary>
-    private void InitializeComponent()
-    {
+    private void InitializeComponent() {
       this.groupBoxFilter = new System.Windows.Forms.GroupBox();
       this.checkedFilterView = new HeuristicLab.DataPreprocessing.Views.CheckedFilterCollectionView();
@@ -53,5 +69,5 @@
       // groupBoxFilter
       // 
-      this.groupBoxFilter.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+      this.groupBoxFilter.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
             | System.Windows.Forms.AnchorStyles.Right)));
       this.groupBoxFilter.Controls.Add(this.checkedFilterView);
@@ -77,5 +93,5 @@
       // groupBoxFilterInfo
       // 
-      this.groupBoxFilterInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+      this.groupBoxFilterInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
             | System.Windows.Forms.AnchorStyles.Right)));
       this.groupBoxFilterInfo.Controls.Add(this.lblPercentage);
@@ -103,5 +119,5 @@
       // tbPercentage
       // 
-      this.tbPercentage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+      this.tbPercentage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
             | System.Windows.Forms.AnchorStyles.Right)));
       this.tbPercentage.Enabled = false;
@@ -113,5 +129,5 @@
       // tbFiltered
       // 
-      this.tbRemaining.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+      this.tbRemaining.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
             | System.Windows.Forms.AnchorStyles.Right)));
       this.tbRemaining.Enabled = false;
@@ -132,5 +148,5 @@
       // tbTotal
       // 
-      this.tbTotal.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+      this.tbTotal.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
             | System.Windows.Forms.AnchorStyles.Right)));
       this.tbTotal.Enabled = false;
@@ -193,5 +209,5 @@
       // groupBox1
       // 
-      this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+      this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
             | System.Windows.Forms.AnchorStyles.Right)));
       this.groupBox1.Controls.Add(this.label4);
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/FilterView.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/FilterView.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/FilterView.cs	(revision 14075)
@@ -1,10 +1,28 @@
-﻿using System;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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.Collections;
-using HeuristicLab.Core;
 using HeuristicLab.Core.Views;
-using HeuristicLab.Data;
 using HeuristicLab.DataPreprocessing.Filter;
 using HeuristicLab.MainForm;
@@ -22,10 +40,9 @@
     }
 
-    private void InitData()
-    {
-        checkedFilterView.Content = Content.Filters;
-        checkedFilterView.Content.ItemsAdded += Content_ItemsAdded;
-        checkedFilterView.Content.ItemsRemoved += Content_ItemsRemoved;
-        checkedFilterView.Content.CheckedItemsChanged += Content_CheckedItemsChanged;
+    private void InitData() {
+      checkedFilterView.Content = Content.Filters;
+      checkedFilterView.Content.ItemsAdded += Content_ItemsAdded;
+      checkedFilterView.Content.ItemsRemoved += Content_ItemsRemoved;
+      checkedFilterView.Content.CheckedItemsChanged += Content_CheckedItemsChanged;
     }
 
@@ -35,9 +52,7 @@
     }
 
-    protected override void OnContentChanged()
-    {
+    protected override void OnContentChanged() {
       base.OnContentChanged();
-      if (Content != null)
-      {
+      if (Content != null) {
         InitData();
         UpdateFilterInfo();
@@ -46,8 +61,6 @@
 
     private void Content_CheckedItemsChanged(object sender, Collections.CollectionItemsChangedEventArgs<IFilter> e) {
-      if (Content != null)
-      {
-        foreach (IFilter filter in e.Items)
-        {
+      if (Content != null) {
+        foreach (IFilter filter in e.Items) {
           filter.Active = checkedFilterView.Content.ItemChecked(filter);
         }
@@ -57,23 +70,22 @@
 
     private void UpdateFilterInfo() {
-        List<IFilter> filters = Content.Filters.ToList();
-        int activeFilters = filters.Count(c => c.Active);
-        applyFilterButton.Enabled = (activeFilters > 0);
-        rBtnAnd.Enabled = (activeFilters > 0);
-        rBtnOr.Enabled = (activeFilters > 0);
-        Content.FilterLogic.Reset();
-        bool[] result = Content.FilterLogic.Preview(filters, rBtnAnd.Checked);
+      List<IFilter> filters = Content.Filters.ToList();
+      int activeFilters = filters.Count(c => c.Active);
+      applyFilterButton.Enabled = (activeFilters > 0);
+      rBtnAnd.Enabled = (activeFilters > 0);
+      rBtnOr.Enabled = (activeFilters > 0);
+      Content.FilterLogic.Reset();
+      bool[] result = Content.FilterLogic.Preview(filters, rBtnAnd.Checked);
 
-        int filteredCnt = result.Count(c => !c);
+      int filteredCnt = result.Count(c => !c);
 
-        tbRemaining.Text = filteredCnt.ToString();
-        double percentage = result.Length == 0 ? 0.0 : filteredCnt * 100 / (double)result.Length;
-        tbPercentage.Text = String.Format("{0:0.0000}%", percentage);
-        tbTotal.Text = result.Length.ToString();
+      tbRemaining.Text = filteredCnt.ToString();
+      double percentage = result.Length == 0 ? 0.0 : filteredCnt * 100 / (double)result.Length;
+      tbPercentage.Text = String.Format("{0:0.0000}%", percentage);
+      tbTotal.Text = result.Length.ToString();
     }
 
     private void applyFilterButton_Click(object sender, EventArgs e) {
-      if (Content != null)
-      {
+      if (Content != null) {
         List<IFilter> filters = Content.Filters.ToList();
         //apply filters
@@ -81,6 +93,5 @@
         //deactivate checked filters
         filters = checkedFilterView.Content.CheckedItems.ToList();
-        foreach (IFilter filter in filters)
-        {
+        foreach (IFilter filter in filters) {
           checkedFilterView.Content.SetItemCheckedState(filter, false);
           filter.Active = false;
@@ -92,8 +103,6 @@
     //whenever a new filter is added the preprocessing data is set to the filter
     private void Content_ItemsAdded(object sender, Collections.CollectionItemsChangedEventArgs<IFilter> e) {
-      if (Content != null)
-      {
-        foreach (IFilter filter in e.Items)
-        {
+      if (Content != null) {
+        foreach (IFilter filter in e.Items) {
           filter.ConstrainedValue = Content.FilterLogic.PreprocessingData;
         }
@@ -102,14 +111,11 @@
 
     private void Content_ItemsRemoved(object sender, CollectionItemsChangedEventArgs<IFilter> e) {
-      if (Content != null)
-      {
+      if (Content != null) {
         UpdateFilterInfo();
       }
     }
 
-    private void rBtnAnd_CheckedChanged(object sender, EventArgs e)
-    {
-      if (Content != null)
-      {
+    private void rBtnAnd_CheckedChanged(object sender, EventArgs e) {
+      if (Content != null) {
         UpdateFilterInfo();
         Content.IsAndCombination = rBtnAnd.Checked;
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/HeuristicLab.DataPreprocessing.Views-3.4.csproj
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/HeuristicLab.DataPreprocessing.Views-3.4.csproj	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/HeuristicLab.DataPreprocessing.Views-3.4.csproj	(revision 14075)
@@ -97,4 +97,5 @@
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="DataPreprocessingMenuItem.cs" />
     <Compile Include="PreprocessingFeatureCorrelationView.cs">
       <SubType>UserControl</SubType>
@@ -254,4 +255,5 @@
       <Project>{958b43bc-cc5c-4fa2-8628-2b3b01d890b6}</Project>
       <Name>HeuristicLab.Collections-3.3</Name>
+      <Private>False</Private>
     </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
@@ -305,4 +307,9 @@
       <Private>False</Private>
     </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Optimizer\3.3\HeuristicLab.Optimizer-3.3.csproj">
+      <Project>{C664305E-497C-4533-A140-967DEDB05C19}</Project>
+      <Name>HeuristicLab.Optimizer-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
       <Project>{94186a6a-5176-4402-ae83-886557b53cca}</Project>
@@ -318,4 +325,19 @@
       <Project>{df87c13e-a889-46ff-8153-66dcaa8c5674}</Project>
       <Name>HeuristicLab.Problems.DataAnalysis-3.4</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.Instances.DataAnalysis.Views\3.3\HeuristicLab.Problems.Instances.DataAnalysis.Views-3.3.csproj">
+      <Project>{72232235-B6CF-4E6C-B086-9E9E11AA0717}</Project>
+      <Name>HeuristicLab.Problems.Instances.DataAnalysis.Views-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.Instances.DataAnalysis\3.3\HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj">
+      <Project>{94C7714E-29D4-4D6D-B213-2C18D627AB75}</Project>
+      <Name>HeuristicLab.Problems.Instances.DataAnalysis-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj">
+      <Project>{3540E29E-4793-49E7-8EE2-FEA7F61C3994}</Project>
+      <Name>HeuristicLab.Problems.Instances-3.3</Name>
       <Private>False</Private>
     </ProjectReference>
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/HistogramView.Designer.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/HistogramView.Designer.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/HistogramView.Designer.cs	(revision 14075)
@@ -1,3 +1,24 @@
-﻿namespace HeuristicLab.DataPreprocessing.Views {
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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 HistogramView {
     /// <summary> 
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/HistogramView.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/HistogramView.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/HistogramView.cs	(revision 14075)
@@ -19,6 +19,6 @@
  */
 #endregion
+
 using System;
-using System.Windows.Forms;
 using HeuristicLab.Analysis;
 using HeuristicLab.MainForm;
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/LineChartView.Designer.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/LineChartView.Designer.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/LineChartView.Designer.cs	(revision 14075)
@@ -1,3 +1,24 @@
-﻿namespace HeuristicLab.DataPreprocessing.Views {
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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> 
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/LineChartView.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/LineChartView.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/LineChartView.cs	(revision 14075)
@@ -21,5 +21,4 @@
 
 using System;
-using System.Windows.Forms;
 using HeuristicLab.Analysis;
 using HeuristicLab.MainForm;
@@ -46,13 +45,11 @@
     private void allInOneCheckBox_CheckedChanged(object sender, EventArgs e) {
       Content.AllInOneMode = allInOneCheckBox.Checked;
- 
+
       GenerateChart();
     }
 
-    protected override void OnContentChanged()
-    {
+    protected override void OnContentChanged() {
       base.OnContentChanged();
-      if (Content != null)
-      {
+      if (Content != null) {
         allInOneCheckBox.Checked = Content.AllInOneMode;
       }
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/ManipulationView.Designer.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/ManipulationView.Designer.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/ManipulationView.Designer.cs	(revision 14075)
@@ -1,3 +1,24 @@
-﻿namespace HeuristicLab.DataPreprocessing.Views {
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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 ManipulationView {
     /// <summary> 
@@ -91,5 +112,5 @@
       // lstMethods
       // 
-      this.lstMethods.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+      this.lstMethods.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
             | System.Windows.Forms.AnchorStyles.Right)));
       this.lstMethods.FormattingEnabled = true;
@@ -124,5 +145,5 @@
       // grpBoxData
       // 
-      this.grpBoxData.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+      this.grpBoxData.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
             | System.Windows.Forms.AnchorStyles.Right)));
       this.grpBoxData.Controls.Add(this.tabsData);
@@ -138,5 +159,5 @@
       // tabsData
       // 
-      this.tabsData.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+      this.tabsData.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
             | System.Windows.Forms.AnchorStyles.Right)));
       this.tabsData.Controls.Add(this.tabPage1);
@@ -416,6 +437,6 @@
       // grpBoxPreview
       // 
-      this.grpBoxPreview.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
+      this.grpBoxPreview.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.grpBoxPreview.Controls.Add(this.tabsPreview);
@@ -431,5 +452,5 @@
       // tabsPreview
       // 
-      this.tabsPreview.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+      this.tabsPreview.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
             | System.Windows.Forms.AnchorStyles.Right)));
       this.tabsPreview.Controls.Add(this.tabPreviewInactive);
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/Plugin.cs.frame
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/Plugin.cs.frame	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/Plugin.cs.frame	(revision 14075)
@@ -41,6 +41,10 @@
   [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")] 
   [PluginDependency("HeuristicLab.Optimization", "3.3")]
+  [PluginDependency("HeuristicLab.Optimizer", "3.3")]
   [PluginDependency("HeuristicLab.Problems.DataAnalysis", "3.4")]
   [PluginDependency("HeuristicLab.Problems.DataAnalysis.Views", "3.4")]
+  [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.Instances.DataAnalysis", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.Instances.DataAnalysis.Views", "3.3")]
   [PluginDependency("HeuristicLab.Visualization.ChartControlsExtensions", "3.3")]
   public class HeuristicLabDataPreprocessingViewPlugin : PluginBase {
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingChartView.Designer.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingChartView.Designer.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingChartView.Designer.cs	(revision 14075)
@@ -20,5 +20,4 @@
 #endregion
 
-using HeuristicLab.Data;
 namespace HeuristicLab.DataPreprocessing.Views {
   partial class PreprocessingChartView {
@@ -65,6 +64,6 @@
       // tableLayoutPanel
       // 
-      this.tableLayoutPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
+      this.tableLayoutPanel.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.tableLayoutPanel.AutoScroll = true;
@@ -82,5 +81,5 @@
       // checkedItemList
       // 
-      this.checkedItemList.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+      this.checkedItemList.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
             | System.Windows.Forms.AnchorStyles.Left)));
       this.checkedItemList.Caption = "View";
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingChartView.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingChartView.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingChartView.cs	(revision 14075)
@@ -28,9 +28,7 @@
 using HeuristicLab.Core.Views;
 using HeuristicLab.Data;
-using HeuristicLab.DataPreprocessing.Implementations;
 using HeuristicLab.MainForm;
 
 namespace HeuristicLab.DataPreprocessing.Views {
-
   [View("Preprocessing Chart View")]
   [Content(typeof(PreprocessingChartContent), false)]
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingCheckedItemListView.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingCheckedItemListView.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingCheckedItemListView.cs	(revision 14075)
@@ -22,5 +22,4 @@
 #endregion
 
-using System.Windows.Forms;
 using HeuristicLab.Core;
 using HeuristicLab.Core.Views;
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingDataTableView.Designer.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingDataTableView.Designer.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingDataTableView.Designer.cs	(revision 14075)
@@ -20,6 +20,5 @@
 #endregion
 
-namespace HeuristicLab.DataPreprocessing.Views
-{
+namespace HeuristicLab.DataPreprocessing.Views {
   partial class PreprocessingDataTableView {
     /// <summary> 
@@ -57,6 +56,6 @@
       // chart
       // 
-      this.chart.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
+      this.chart.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.chart.BorderlineColor = System.Drawing.Color.Black;
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingDataTableView.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingDataTableView.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingDataTableView.cs	(revision 14075)
@@ -26,10 +26,9 @@
 using System.Windows.Forms;
 using System.Windows.Forms.DataVisualization.Charting;
+using HeuristicLab.Analysis;
+using HeuristicLab.Analysis.Views;
 using HeuristicLab.Collections;
 using HeuristicLab.Core.Views;
-using HeuristicLab.DataPreprocessing.Implementations;
 using HeuristicLab.MainForm;
-using HeuristicLab.Analysis;
-using HeuristicLab.Analysis.Views;
 
 namespace HeuristicLab.DataPreprocessing.Views {
@@ -746,5 +745,5 @@
 
       //  shift the chart to the left so the bars are placed on the intervals
-      if (Classification != null || valueFrequencies.First().Item1 < doubleRange.First()) {
+      if (Classification != null || (valueFrequencies.Any() && valueFrequencies.First().Item1 < doubleRange.First())) {
         series.Points.Add(new DataPoint(min - intervalWidth, 0));
         series.Points.Add(new DataPoint(max + intervalWidth, 0));
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingFeatureCorrelationView.Designer.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingFeatureCorrelationView.Designer.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingFeatureCorrelationView.Designer.cs	(revision 14075)
@@ -47,5 +47,5 @@
     /// </summary>
     private void InitializeComponent() {
-      this.components = new System.ComponentModel.Container();     
+      this.components = new System.ComponentModel.Container();
       this.ResumeLayout(false);
     }
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingFeatureCorrelationView.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingFeatureCorrelationView.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingFeatureCorrelationView.cs	(revision 14075)
@@ -20,15 +20,8 @@
 #endregion
 
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
 using System.Windows.Forms;
-using HeuristicLab.Data;
+using HeuristicLab.DataPreprocessing;
 using HeuristicLab.MainForm;
 using HeuristicLab.MainForm.WindowsForms;
-using HeuristicLab.PluginInfrastructure;
-using System;
-using HeuristicLab.DataPreprocessing;
-using HeuristicLab.Problems.DataAnalysis.Views;
 
 namespace HeuristicLab.Problems.DataAnalysis.Views {
@@ -37,7 +30,6 @@
   public partial class PreprocessingFeatureCorrelationView : AsynchronousContentView {
 
-    public new CorrelationMatrixContent Content
-    {
-      get { return (CorrelationMatrixContent) base.Content; }
+    public new CorrelationMatrixContent Content {
+      get { return (CorrelationMatrixContent)base.Content; }
       set { base.Content = value; }
     }
@@ -55,9 +47,9 @@
     protected override void RegisterContentEvents() {
       base.RegisterContentEvents();
-      Content.Changed += Data_Changed;      
+      Content.Changed += Data_Changed;
     }
 
     protected override void DeregisterContentEvents() {
-      Content.Changed -= Data_Changed;      
+      Content.Changed -= Data_Changed;
       base.DeregisterContentEvents();
     }
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingScatterPlotView.Designer.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingScatterPlotView.Designer.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingScatterPlotView.Designer.cs	(revision 14075)
@@ -56,6 +56,6 @@
       // chart
       // 
-      this.chart.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
+      this.chart.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.chart.BorderlineColor = System.Drawing.Color.Black;
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingScatterPlotView.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingScatterPlotView.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingScatterPlotView.cs	(revision 14075)
@@ -462,5 +462,5 @@
       if (chartDoubleClick != null)
         chartDoubleClick(this, e);
-    } 
+    }
   }
 }
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/RenameColumnsDialog.Designer.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/RenameColumnsDialog.Designer.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/RenameColumnsDialog.Designer.cs	(revision 14075)
@@ -78,6 +78,6 @@
       this.dataGridView.AllowUserToAddRows = false;
       this.dataGridView.AllowUserToDeleteRows = false;
-      this.dataGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
+      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;
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotMultiView.Designer.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotMultiView.Designer.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotMultiView.Designer.cs	(revision 14075)
@@ -1,3 +1,24 @@
-﻿namespace HeuristicLab.DataPreprocessing.Views {
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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 ScatterPlotMultiView {
     /// <summary> 
@@ -29,6 +50,6 @@
       // tableLayoutPanel
       // 
-      this.tableLayoutPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
+      this.tableLayoutPanel.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.tableLayoutPanel.AutoScroll = true;
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotMultiView.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotMultiView.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotMultiView.cs	(revision 14075)
@@ -7,9 +7,7 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core.Views;
-using HeuristicLab.DataPreprocessing.Implementations;
 using HeuristicLab.MainForm;
 
 namespace HeuristicLab.DataPreprocessing.Views {
-
   [View("Scatter Plot Multi View")]
   [Content(typeof(ScatterPlotContent), false)]
@@ -81,5 +79,5 @@
           tableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, (tableLayoutPanel.Height - HEADER_HEIGHT) / variables.Count));
         }
-          // fixed size
+        // fixed size
         else {
           tableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, FIXED_CHART_WIDTH));
@@ -111,5 +109,5 @@
             tableLayoutPanel.Controls.Add(pcv, y, x);
           }
-            //scatter plot
+          //scatter plot
           else {
             ScatterPlot scatterPlot = Content.CreateScatterPlot(variables[x - 1], variables[y - 1]);
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotSingleView.Designer.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotSingleView.Designer.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotSingleView.Designer.cs	(revision 14075)
@@ -1,3 +1,24 @@
-﻿namespace HeuristicLab.DataPreprocessing.Views {
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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 ScatterPlotSingleView {
     /// <summary> 
@@ -30,4 +51,6 @@
       this.comboBoxYVariable = new System.Windows.Forms.ComboBox();
       this.comboBoxXVariable = new System.Windows.Forms.ComboBox();
+      this.label3 = new System.Windows.Forms.Label();
+      this.comboBoxColor = new System.Windows.Forms.ComboBox();
       this.groupBox1.SuspendLayout();
       this.SuspendLayout();
@@ -35,6 +58,6 @@
       // scatterPlotView
       // 
-      this.scatterPlotView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
+      this.scatterPlotView.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.scatterPlotView.Caption = "ScatterPlot View";
@@ -48,11 +71,13 @@
       // groupBox1
       // 
+      this.groupBox1.Controls.Add(this.label3);
       this.groupBox1.Controls.Add(this.label2);
       this.groupBox1.Controls.Add(this.label1);
+      this.groupBox1.Controls.Add(this.comboBoxColor);
       this.groupBox1.Controls.Add(this.comboBoxYVariable);
       this.groupBox1.Controls.Add(this.comboBoxXVariable);
       this.groupBox1.Location = new System.Drawing.Point(3, 3);
       this.groupBox1.Name = "groupBox1";
-      this.groupBox1.Size = new System.Drawing.Size(160, 140);
+      this.groupBox1.Size = new System.Drawing.Size(160, 215);
       this.groupBox1.TabIndex = 1;
       this.groupBox1.TabStop = false;
@@ -99,4 +124,24 @@
       this.comboBoxXVariable.SelectedIndexChanged += new System.EventHandler(this.comboBox_SelectedIndexChanged);
       // 
+      // label3
+      // 
+      this.label3.AutoSize = true;
+      this.label3.Location = new System.Drawing.Point(17, 141);
+      this.label3.Name = "label3";
+      this.label3.Size = new System.Drawing.Size(31, 13);
+      this.label3.TabIndex = 3;
+      this.label3.Text = "Color";
+      // 
+      // comboBoxColor
+      // 
+      this.comboBoxColor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+      this.comboBoxColor.FormattingEnabled = true;
+      this.comboBoxColor.Location = new System.Drawing.Point(20, 164);
+      this.comboBoxColor.Margin = new System.Windows.Forms.Padding(3, 10, 3, 3);
+      this.comboBoxColor.Name = "comboBoxColor";
+      this.comboBoxColor.Size = new System.Drawing.Size(121, 21);
+      this.comboBoxColor.TabIndex = 1;
+      this.comboBoxColor.SelectedIndexChanged += new System.EventHandler(this.comboBox_SelectedIndexChanged);
+      // 
       // ScatterPlotSingleView
       // 
@@ -121,4 +166,6 @@
     private System.Windows.Forms.ComboBox comboBoxYVariable;
     private System.Windows.Forms.ComboBox comboBoxXVariable;
+    private System.Windows.Forms.ComboBox comboBoxColor;
+    private System.Windows.Forms.Label label3;
   }
 }
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotSingleView.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotSingleView.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotSingleView.cs	(revision 14075)
@@ -1,6 +1,26 @@
-﻿using System;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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.Analysis;
 using HeuristicLab.Core.Views;
@@ -18,11 +38,9 @@
     }
 
-    public ScatterPlotSingleView()
-    {
+    public ScatterPlotSingleView() {
       InitializeComponent();
     }
 
     public void InitData() {
-
       IEnumerable<string> variables = Content.PreprocessingData.GetDoubleVariableNames();
 
@@ -30,17 +48,27 @@
       comboBoxXVariable.Items.Clear();
       comboBoxYVariable.Items.Clear();
+      comboBoxColor.Items.Clear();
       comboBoxXVariable.Items.AddRange(variables.ToArray());
       comboBoxYVariable.Items.AddRange(variables.ToArray());
+      comboBoxColor.Items.Add("-");
+      for (int i = 0; i < Content.PreprocessingData.Columns; ++i) {
+        if (Content.PreprocessingData.VariableHasType<double>(i)) {
+          double distinctValueCount = Content.PreprocessingData.GetValues<double>(i).GroupBy(x => x).Count();
+          if (distinctValueCount <= 20)
+            comboBoxColor.Items.Add(Content.PreprocessingData.GetVariableName(i));
+        }
+      }
 
       // use x and y variable from content
-      if (Content.SelectedXVariable != null && Content.SelectedYVariable != null) {
+      if (Content.SelectedXVariable != null && Content.SelectedYVariable != null && Content.SelectedColorVariable != null) {
         comboBoxXVariable.SelectedItem = Content.SelectedXVariable;
         comboBoxYVariable.SelectedItem = Content.SelectedYVariable;
+        comboBoxColor.SelectedItem = Content.SelectedColorVariable;
       } else {
         if (variables.Count() >= 2) {
           comboBoxXVariable.SelectedIndex = 0;
           comboBoxYVariable.SelectedIndex = 1;
+          comboBoxColor.SelectedIndex = 0;
           UpdateScatterPlot();
-
         }
       }
@@ -59,7 +87,10 @@
 
     private void UpdateScatterPlot() {
-      if (comboBoxXVariable.SelectedItem != null && comboBoxYVariable.SelectedItem != null) {
+      if (comboBoxXVariable.SelectedItem != null && comboBoxYVariable.SelectedItem != null && comboBoxColor.SelectedItem != null) {
         //get scatter plot with selected x and y variable
-        ScatterPlot scatterPlot = Content.CreateScatterPlot((string)comboBoxXVariable.SelectedItem, (string)comboBoxYVariable.SelectedItem);
+        ScatterPlot scatterPlot = Content.CreateScatterPlot(
+          (string)comboBoxXVariable.SelectedItem,
+          (string)comboBoxYVariable.SelectedItem,
+          (string)comboBoxColor.SelectedItem);
         scatterPlotView.Content = scatterPlot;
 
@@ -67,9 +98,7 @@
         this.Content.SelectedXVariable = (string)comboBoxXVariable.SelectedItem;
         this.Content.SelectedYVariable = (string)comboBoxYVariable.SelectedItem;
+        this.Content.SelectedColorVariable = (string)comboBoxColor.SelectedItem;
       }
     }
-
   }
-
-
 }
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/SearchAndReplaceDialog.Designer.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/SearchAndReplaceDialog.Designer.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/SearchAndReplaceDialog.Designer.cs	(revision 14075)
@@ -1,3 +1,24 @@
-﻿namespace HeuristicLab.DataPreprocessing.Views {
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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 SearchAndReplaceDialog {
     /// <summary>
@@ -44,6 +65,6 @@
       // tabSearchReplace
       // 
-      this.tabSearchReplace.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
+      this.tabSearchReplace.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.tabSearchReplace.Controls.Add(this.tabSearch);
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/SearchAndReplaceDialog.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/SearchAndReplaceDialog.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/SearchAndReplaceDialog.cs	(revision 14075)
@@ -1,3 +1,24 @@
-﻿using System;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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;
 
@@ -20,6 +41,4 @@
     NotEqual
   }
-
-
 
   public partial class SearchAndReplaceDialog : Form {
Index: stable/HeuristicLab.DataPreprocessing.Views/3.4/ViewShortcutListView.Designer.cs
===================================================================
--- stable/HeuristicLab.DataPreprocessing.Views/3.4/ViewShortcutListView.Designer.cs	(revision 14023)
+++ stable/HeuristicLab.DataPreprocessing.Views/3.4/ViewShortcutListView.Designer.cs	(revision 14075)
@@ -19,5 +19,4 @@
  */
 #endregion
-
 
 namespace HeuristicLab.DataPreprocessing.Views {
@@ -46,12 +45,74 @@
     /// </summary>
     private void InitializeComponent() {
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
+      this.splitContainer.Panel1.SuspendLayout();
+      this.splitContainer.Panel2.SuspendLayout();
+      this.splitContainer.SuspendLayout();
+      this.itemsGroupBox.SuspendLayout();
+      this.detailsGroupBox.SuspendLayout();
       this.SuspendLayout();
+      // 
+      // splitContainer
+      // 
+      this.splitContainer.Size = new System.Drawing.Size(526, 364);
+      // 
+      // itemsGroupBox
+      // 
+      this.itemsGroupBox.Size = new System.Drawing.Size(532, 383);
+      // 
+      // itemsListView
+      // 
+      this.itemsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)));
+      this.itemsListView.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.itemsListView.Location = new System.Drawing.Point(0, 0);
+      this.itemsListView.Size = new System.Drawing.Size(200, 364);
+      // 
+      // detailsGroupBox
+      // 
+      this.detailsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)));
+      this.detailsGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.detailsGroupBox.Location = new System.Drawing.Point(0, 0);
+      this.detailsGroupBox.Size = new System.Drawing.Size(322, 364);
+      // 
+      // addButton
+      // 
+      this.toolTip.SetToolTip(this.addButton, "Add");
+      this.addButton.Visible = false;
+      // 
+      // removeButton
+      // 
+      this.toolTip.SetToolTip(this.removeButton, "Remove");
+      this.removeButton.Visible = false;
+      // 
+      // moveUpButton
+      // 
+      this.toolTip.SetToolTip(this.moveUpButton, "Move Up");
+      this.moveUpButton.Visible = false;
+      // 
+      // moveDownButton
+      // 
+      this.toolTip.SetToolTip(this.moveDownButton, "Move Down");
+      this.moveDownButton.Visible = false;
+      // 
+      // viewHost
+      // 
+      this.viewHost.Size = new System.Drawing.Size(310, 339);
+      // 
+      // showDetailsCheckBox
+      // 
+      this.showDetailsCheckBox.Visible = false;
       // 
       // ViewShortcutListView
       // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.Name = "ViewShortcutListView";
       this.Size = new System.Drawing.Size(532, 383);
+      this.splitContainer.Panel1.ResumeLayout(false);
+      this.splitContainer.Panel2.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit();
+      this.splitContainer.ResumeLayout(false);
+      this.itemsGroupBox.ResumeLayout(false);
+      this.detailsGroupBox.ResumeLayout(false);
       this.ResumeLayout(false);
+
     }
 
