Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.cs	(revision 10708)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.cs	(revision 10709)
@@ -59,4 +59,5 @@
           new FilterContent(filterLogic),
           new TransformationContent(transformationLogic),
+          new ManipulationContent(manipulationLogic),
           new LineChartContent(lineChartLogic),
           new HistogramContent(histogramLogic)
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/HeuristicLab.DataPreprocessing.Views-3.3.csproj
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/HeuristicLab.DataPreprocessing.Views-3.3.csproj	(revision 10708)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/HeuristicLab.DataPreprocessing.Views-3.3.csproj	(revision 10709)
@@ -103,4 +103,10 @@
       <DependentUpon>LineChartView.cs</DependentUpon>
     </Compile>
+    <Compile Include="ManipulationView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="ManipulationView.Designer.cs">
+      <DependentUpon>ManipulationView.cs</DependentUpon>
+    </Compile>
     <Compile Include="Plugin.cs" />
     <Compile Include="PreprocessingChartView.cs">
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/LineChartView.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/LineChartView.cs	(revision 10708)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/LineChartView.cs	(revision 10709)
@@ -1,15 +1,25 @@
-﻿using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
 using System.Windows.Forms;
 using HeuristicLab.Analysis;
-using HeuristicLab.Collections;
-using HeuristicLab.Core;
-using HeuristicLab.Core.Views;
-using HeuristicLab.Data;
 using HeuristicLab.MainForm;
 
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ManipulationView.Designer.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ManipulationView.Designer.cs	(revision 10709)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ManipulationView.Designer.cs	(revision 10709)
@@ -0,0 +1,419 @@
+﻿namespace HeuristicLab.DataPreprocessing.Views {
+  partial class ManipulationView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.lstMethods = new System.Windows.Forms.ListBox();
+      this.btnApply = new System.Windows.Forms.Button();
+      this.grpBoxData = new System.Windows.Forms.GroupBox();
+      this.tabsData = new System.Windows.Forms.TabControl();
+      this.tabPage1 = new System.Windows.Forms.TabPage();
+      this.label7 = new System.Windows.Forms.Label();
+      this.tabDataDeleteColumnsInformation = new System.Windows.Forms.TabPage();
+      this.label2 = new System.Windows.Forms.Label();
+      this.txtDeleteColumnsInfo = new System.Windows.Forms.TextBox();
+      this.label1 = new System.Windows.Forms.Label();
+      this.tabDataDeleteColumnsVariance = new System.Windows.Forms.TabPage();
+      this.txtDeleteColumnsVariance = new System.Windows.Forms.TextBox();
+      this.label4 = new System.Windows.Forms.Label();
+      this.tabDataDeleteRowsInfo = new System.Windows.Forms.TabPage();
+      this.label3 = new System.Windows.Forms.Label();
+      this.txtDeleteRowsInfo = new System.Windows.Forms.TextBox();
+      this.label5 = new System.Windows.Forms.Label();
+      this.tabDataShuffle = new System.Windows.Forms.TabPage();
+      this.label6 = new System.Windows.Forms.Label();
+      this.grpBoxPreview = new System.Windows.Forms.GroupBox();
+      this.tabsPreview = new System.Windows.Forms.TabControl();
+      this.tabPreviewDeleteColumnsInfo = new System.Windows.Forms.TabPage();
+      this.tabPreviewDeleteColumnsVariance = new System.Windows.Forms.TabPage();
+      this.tabPreviewDeleteRowsInfo = new System.Windows.Forms.TabPage();
+      this.tabPreviewShuffle = new System.Windows.Forms.TabPage();
+      this.label8 = new System.Windows.Forms.Label();
+      this.label9 = new System.Windows.Forms.Label();
+      this.grpBoxData.SuspendLayout();
+      this.tabsData.SuspendLayout();
+      this.tabPage1.SuspendLayout();
+      this.tabDataDeleteColumnsInformation.SuspendLayout();
+      this.tabDataDeleteColumnsVariance.SuspendLayout();
+      this.tabDataDeleteRowsInfo.SuspendLayout();
+      this.tabDataShuffle.SuspendLayout();
+      this.grpBoxPreview.SuspendLayout();
+      this.tabsPreview.SuspendLayout();
+      this.tabPreviewShuffle.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // lstMethods
+      // 
+      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;
+      this.lstMethods.Items.AddRange(new object[] {
+            "Delete Columns with insufficient Information",
+            "Delete Columns with insufficient Variance",
+            "Delete Rows with insufficient Information",
+            "Shuffle Data"});
+      this.lstMethods.Location = new System.Drawing.Point(3, 3);
+      this.lstMethods.Name = "lstMethods";
+      this.lstMethods.Size = new System.Drawing.Size(733, 95);
+      this.lstMethods.Sorted = true;
+      this.lstMethods.TabIndex = 0;
+      this.lstMethods.SelectedIndexChanged += new System.EventHandler(this.lstMethods_SelectedIndexChanged);
+      // 
+      // btnApply
+      // 
+      this.btnApply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+      this.btnApply.Enabled = false;
+      this.btnApply.Location = new System.Drawing.Point(603, 500);
+      this.btnApply.Name = "btnApply";
+      this.btnApply.Size = new System.Drawing.Size(129, 23);
+      this.btnApply.TabIndex = 2;
+      this.btnApply.Text = "Apply Manipulation";
+      this.btnApply.UseVisualStyleBackColor = true;
+      this.btnApply.Click += new System.EventHandler(this.btnApply_Click);
+      // 
+      // grpBoxData
+      // 
+      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);
+      this.grpBoxData.Location = new System.Drawing.Point(4, 105);
+      this.grpBoxData.Name = "grpBoxData";
+      this.grpBoxData.Size = new System.Drawing.Size(732, 189);
+      this.grpBoxData.TabIndex = 3;
+      this.grpBoxData.TabStop = false;
+      this.grpBoxData.Text = "Properties";
+      // 
+      // tabsData
+      // 
+      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);
+      this.tabsData.Controls.Add(this.tabDataDeleteColumnsInformation);
+      this.tabsData.Controls.Add(this.tabDataDeleteColumnsVariance);
+      this.tabsData.Controls.Add(this.tabDataDeleteRowsInfo);
+      this.tabsData.Controls.Add(this.tabDataShuffle);
+      this.tabsData.ItemSize = new System.Drawing.Size(58, 18);
+      this.tabsData.Location = new System.Drawing.Point(6, 19);
+      this.tabsData.Name = "tabsData";
+      this.tabsData.SelectedIndex = 0;
+      this.tabsData.Size = new System.Drawing.Size(719, 164);
+      this.tabsData.TabIndex = 3;
+      // 
+      // tabPage1
+      // 
+      this.tabPage1.Controls.Add(this.label7);
+      this.tabPage1.Location = new System.Drawing.Point(4, 22);
+      this.tabPage1.Name = "tabPage1";
+      this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
+      this.tabPage1.Size = new System.Drawing.Size(711, 138);
+      this.tabPage1.TabIndex = 5;
+      this.tabPage1.Text = "inactive";
+      this.tabPage1.UseVisualStyleBackColor = true;
+      // 
+      // label7
+      // 
+      this.label7.AutoSize = true;
+      this.label7.Enabled = false;
+      this.label7.Location = new System.Drawing.Point(3, 3);
+      this.label7.Name = "label7";
+      this.label7.Size = new System.Drawing.Size(259, 13);
+      this.label7.TabIndex = 1;
+      this.label7.Text = "Please select one of the manipulation methods above";
+      // 
+      // tabDataDeleteColumnsInformation
+      // 
+      this.tabDataDeleteColumnsInformation.Controls.Add(this.label2);
+      this.tabDataDeleteColumnsInformation.Controls.Add(this.txtDeleteColumnsInfo);
+      this.tabDataDeleteColumnsInformation.Controls.Add(this.label1);
+      this.tabDataDeleteColumnsInformation.Location = new System.Drawing.Point(4, 22);
+      this.tabDataDeleteColumnsInformation.Name = "tabDataDeleteColumnsInformation";
+      this.tabDataDeleteColumnsInformation.Padding = new System.Windows.Forms.Padding(3);
+      this.tabDataDeleteColumnsInformation.Size = new System.Drawing.Size(711, 138);
+      this.tabDataDeleteColumnsInformation.TabIndex = 0;
+      this.tabDataDeleteColumnsInformation.Text = "del columns info";
+      this.tabDataDeleteColumnsInformation.UseVisualStyleBackColor = true;
+      // 
+      // label2
+      // 
+      this.label2.AutoSize = true;
+      this.label2.Location = new System.Drawing.Point(204, 3);
+      this.label2.Name = "label2";
+      this.label2.Size = new System.Drawing.Size(89, 13);
+      this.label2.TabIndex = 5;
+      this.label2.Text = "% missing values.";
+      // 
+      // txtDeleteColumnsInfo
+      // 
+      this.txtDeleteColumnsInfo.Location = new System.Drawing.Point(164, 0);
+      this.txtDeleteColumnsInfo.Name = "txtDeleteColumnsInfo";
+      this.txtDeleteColumnsInfo.Size = new System.Drawing.Size(34, 20);
+      this.txtDeleteColumnsInfo.TabIndex = 4;
+      this.txtDeleteColumnsInfo.TextChanged += new System.EventHandler(this.txtDeleteColumnsInfo_TextChanged);
+      // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Location = new System.Drawing.Point(3, 3);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(155, 13);
+      this.label1.TabIndex = 3;
+      this.label1.Text = "Delete columns with more than ";
+      // 
+      // tabDataDeleteColumnsVariance
+      // 
+      this.tabDataDeleteColumnsVariance.Controls.Add(this.label8);
+      this.tabDataDeleteColumnsVariance.Controls.Add(this.txtDeleteColumnsVariance);
+      this.tabDataDeleteColumnsVariance.Controls.Add(this.label4);
+      this.tabDataDeleteColumnsVariance.Location = new System.Drawing.Point(4, 22);
+      this.tabDataDeleteColumnsVariance.Name = "tabDataDeleteColumnsVariance";
+      this.tabDataDeleteColumnsVariance.Padding = new System.Windows.Forms.Padding(3);
+      this.tabDataDeleteColumnsVariance.Size = new System.Drawing.Size(711, 138);
+      this.tabDataDeleteColumnsVariance.TabIndex = 1;
+      this.tabDataDeleteColumnsVariance.Text = "del columns variance";
+      this.tabDataDeleteColumnsVariance.UseVisualStyleBackColor = true;
+      // 
+      // txtDeleteColumnsVariance
+      // 
+      this.txtDeleteColumnsVariance.Location = new System.Drawing.Point(223, 0);
+      this.txtDeleteColumnsVariance.Name = "txtDeleteColumnsVariance";
+      this.txtDeleteColumnsVariance.Size = new System.Drawing.Size(135, 20);
+      this.txtDeleteColumnsVariance.TabIndex = 4;
+      this.txtDeleteColumnsVariance.TextChanged += new System.EventHandler(this.txtDeleteColumnsVariance_TextChanged);
+      // 
+      // label4
+      // 
+      this.label4.AutoSize = true;
+      this.label4.Location = new System.Drawing.Point(3, 3);
+      this.label4.Name = "label4";
+      this.label4.Size = new System.Drawing.Size(214, 13);
+      this.label4.TabIndex = 3;
+      this.label4.Text = "Delete columns with a variance smaller than";
+      // 
+      // tabDataDeleteRowsInfo
+      // 
+      this.tabDataDeleteRowsInfo.Controls.Add(this.label3);
+      this.tabDataDeleteRowsInfo.Controls.Add(this.txtDeleteRowsInfo);
+      this.tabDataDeleteRowsInfo.Controls.Add(this.label5);
+      this.tabDataDeleteRowsInfo.Location = new System.Drawing.Point(4, 22);
+      this.tabDataDeleteRowsInfo.Name = "tabDataDeleteRowsInfo";
+      this.tabDataDeleteRowsInfo.Padding = new System.Windows.Forms.Padding(3);
+      this.tabDataDeleteRowsInfo.Size = new System.Drawing.Size(711, 138);
+      this.tabDataDeleteRowsInfo.TabIndex = 2;
+      this.tabDataDeleteRowsInfo.Text = "del rows info";
+      this.tabDataDeleteRowsInfo.UseVisualStyleBackColor = true;
+      // 
+      // label3
+      // 
+      this.label3.AutoSize = true;
+      this.label3.Location = new System.Drawing.Point(189, 3);
+      this.label3.Name = "label3";
+      this.label3.Size = new System.Drawing.Size(89, 13);
+      this.label3.TabIndex = 8;
+      this.label3.Text = "% missing values.";
+      // 
+      // txtDeleteRowsInfo
+      // 
+      this.txtDeleteRowsInfo.Location = new System.Drawing.Point(147, 0);
+      this.txtDeleteRowsInfo.Name = "txtDeleteRowsInfo";
+      this.txtDeleteRowsInfo.Size = new System.Drawing.Size(34, 20);
+      this.txtDeleteRowsInfo.TabIndex = 7;
+      this.txtDeleteRowsInfo.TextChanged += new System.EventHandler(this.txtDeleteRowsInfo_TextChanged);
+      // 
+      // label5
+      // 
+      this.label5.AutoSize = true;
+      this.label5.Location = new System.Drawing.Point(3, 3);
+      this.label5.Name = "label5";
+      this.label5.Size = new System.Drawing.Size(138, 13);
+      this.label5.TabIndex = 6;
+      this.label5.Text = "Delete rows with more than ";
+      // 
+      // tabDataShuffle
+      // 
+      this.tabDataShuffle.Controls.Add(this.label6);
+      this.tabDataShuffle.Location = new System.Drawing.Point(4, 22);
+      this.tabDataShuffle.Name = "tabDataShuffle";
+      this.tabDataShuffle.Padding = new System.Windows.Forms.Padding(3);
+      this.tabDataShuffle.Size = new System.Drawing.Size(711, 138);
+      this.tabDataShuffle.TabIndex = 4;
+      this.tabDataShuffle.Text = "shuffle";
+      this.tabDataShuffle.UseVisualStyleBackColor = true;
+      // 
+      // label6
+      // 
+      this.label6.AutoSize = true;
+      this.label6.Enabled = false;
+      this.label6.Location = new System.Drawing.Point(3, 3);
+      this.label6.Name = "label6";
+      this.label6.Size = new System.Drawing.Size(115, 13);
+      this.label6.TabIndex = 0;
+      this.label6.Text = "No properties available";
+      // 
+      // grpBoxPreview
+      // 
+      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);
+      this.grpBoxPreview.Location = new System.Drawing.Point(4, 301);
+      this.grpBoxPreview.Name = "grpBoxPreview";
+      this.grpBoxPreview.Size = new System.Drawing.Size(732, 193);
+      this.grpBoxPreview.TabIndex = 4;
+      this.grpBoxPreview.TabStop = false;
+      this.grpBoxPreview.Text = "Preview";
+      // 
+      // tabsPreview
+      // 
+      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.tabPreviewDeleteColumnsInfo);
+      this.tabsPreview.Controls.Add(this.tabPreviewDeleteColumnsVariance);
+      this.tabsPreview.Controls.Add(this.tabPreviewDeleteRowsInfo);
+      this.tabsPreview.Controls.Add(this.tabPreviewShuffle);
+      this.tabsPreview.ItemSize = new System.Drawing.Size(58, 18);
+      this.tabsPreview.Location = new System.Drawing.Point(6, 19);
+      this.tabsPreview.Name = "tabsPreview";
+      this.tabsPreview.SelectedIndex = 0;
+      this.tabsPreview.Size = new System.Drawing.Size(719, 168);
+      this.tabsPreview.TabIndex = 3;
+      // 
+      // tabPreviewDeleteColumnsInfo
+      // 
+      this.tabPreviewDeleteColumnsInfo.Location = new System.Drawing.Point(4, 22);
+      this.tabPreviewDeleteColumnsInfo.Name = "tabPreviewDeleteColumnsInfo";
+      this.tabPreviewDeleteColumnsInfo.Padding = new System.Windows.Forms.Padding(3);
+      this.tabPreviewDeleteColumnsInfo.Size = new System.Drawing.Size(711, 142);
+      this.tabPreviewDeleteColumnsInfo.TabIndex = 0;
+      this.tabPreviewDeleteColumnsInfo.Text = "del columns info";
+      this.tabPreviewDeleteColumnsInfo.UseVisualStyleBackColor = true;
+      // 
+      // tabPreviewDeleteColumnsVariance
+      // 
+      this.tabPreviewDeleteColumnsVariance.Location = new System.Drawing.Point(4, 22);
+      this.tabPreviewDeleteColumnsVariance.Name = "tabPreviewDeleteColumnsVariance";
+      this.tabPreviewDeleteColumnsVariance.Padding = new System.Windows.Forms.Padding(3);
+      this.tabPreviewDeleteColumnsVariance.Size = new System.Drawing.Size(711, 142);
+      this.tabPreviewDeleteColumnsVariance.TabIndex = 1;
+      this.tabPreviewDeleteColumnsVariance.Text = "del columns variance";
+      this.tabPreviewDeleteColumnsVariance.UseVisualStyleBackColor = true;
+      // 
+      // tabPreviewDeleteRowsInfo
+      // 
+      this.tabPreviewDeleteRowsInfo.Location = new System.Drawing.Point(4, 22);
+      this.tabPreviewDeleteRowsInfo.Name = "tabPreviewDeleteRowsInfo";
+      this.tabPreviewDeleteRowsInfo.Padding = new System.Windows.Forms.Padding(3);
+      this.tabPreviewDeleteRowsInfo.Size = new System.Drawing.Size(711, 142);
+      this.tabPreviewDeleteRowsInfo.TabIndex = 2;
+      this.tabPreviewDeleteRowsInfo.Text = "del rows info";
+      this.tabPreviewDeleteRowsInfo.UseVisualStyleBackColor = true;
+      // 
+      // tabPreviewShuffle
+      // 
+      this.tabPreviewShuffle.Controls.Add(this.label9);
+      this.tabPreviewShuffle.Location = new System.Drawing.Point(4, 22);
+      this.tabPreviewShuffle.Name = "tabPreviewShuffle";
+      this.tabPreviewShuffle.Padding = new System.Windows.Forms.Padding(3);
+      this.tabPreviewShuffle.Size = new System.Drawing.Size(711, 142);
+      this.tabPreviewShuffle.TabIndex = 4;
+      this.tabPreviewShuffle.Text = "shuffle";
+      this.tabPreviewShuffle.UseVisualStyleBackColor = true;
+      // 
+      // label8
+      // 
+      this.label8.AutoSize = true;
+      this.label8.Location = new System.Drawing.Point(364, 3);
+      this.label8.Name = "label8";
+      this.label8.Size = new System.Drawing.Size(89, 13);
+      this.label8.TabIndex = 6;
+      this.label8.Text = "% missing values.";
+      // 
+      // label9
+      // 
+      this.label9.AutoSize = true;
+      this.label9.Location = new System.Drawing.Point(3, 3);
+      this.label9.Name = "label9";
+      this.label9.Size = new System.Drawing.Size(252, 13);
+      this.label9.TabIndex = 0;
+      this.label9.Text = "Data will be shuffled randomly - preview not possible";
+      // 
+      // ManipulationView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.btnApply);
+      this.Controls.Add(this.grpBoxPreview);
+      this.Controls.Add(this.grpBoxData);
+      this.Controls.Add(this.lstMethods);
+      this.Name = "ManipulationView";
+      this.Size = new System.Drawing.Size(739, 529);
+      this.grpBoxData.ResumeLayout(false);
+      this.tabsData.ResumeLayout(false);
+      this.tabPage1.ResumeLayout(false);
+      this.tabPage1.PerformLayout();
+      this.tabDataDeleteColumnsInformation.ResumeLayout(false);
+      this.tabDataDeleteColumnsInformation.PerformLayout();
+      this.tabDataDeleteColumnsVariance.ResumeLayout(false);
+      this.tabDataDeleteColumnsVariance.PerformLayout();
+      this.tabDataDeleteRowsInfo.ResumeLayout(false);
+      this.tabDataDeleteRowsInfo.PerformLayout();
+      this.tabDataShuffle.ResumeLayout(false);
+      this.tabDataShuffle.PerformLayout();
+      this.grpBoxPreview.ResumeLayout(false);
+      this.tabsPreview.ResumeLayout(false);
+      this.tabPreviewShuffle.ResumeLayout(false);
+      this.tabPreviewShuffle.PerformLayout();
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.ListBox lstMethods;
+    private System.Windows.Forms.Button btnApply;
+    private System.Windows.Forms.GroupBox grpBoxData;
+    private System.Windows.Forms.GroupBox grpBoxPreview;
+    private System.Windows.Forms.TabControl tabsPreview;
+    private System.Windows.Forms.TabPage tabPreviewDeleteColumnsInfo;
+    private System.Windows.Forms.TabPage tabPreviewDeleteColumnsVariance;
+    private System.Windows.Forms.TabPage tabPreviewDeleteRowsInfo;
+    private System.Windows.Forms.TabPage tabPreviewShuffle;
+    private System.Windows.Forms.TabControl tabsData;
+    private System.Windows.Forms.TabPage tabDataDeleteColumnsInformation;
+    private System.Windows.Forms.Label label2;
+    private System.Windows.Forms.TextBox txtDeleteColumnsInfo;
+    private System.Windows.Forms.Label label1;
+    private System.Windows.Forms.TabPage tabDataDeleteColumnsVariance;
+    private System.Windows.Forms.TextBox txtDeleteColumnsVariance;
+    private System.Windows.Forms.Label label4;
+    private System.Windows.Forms.TabPage tabDataDeleteRowsInfo;
+    private System.Windows.Forms.Label label3;
+    private System.Windows.Forms.TextBox txtDeleteRowsInfo;
+    private System.Windows.Forms.Label label5;
+    private System.Windows.Forms.TabPage tabDataShuffle;
+    private System.Windows.Forms.Label label6;
+    private System.Windows.Forms.TabPage tabPage1;
+    private System.Windows.Forms.Label label7;
+    private System.Windows.Forms.Label label8;
+    private System.Windows.Forms.Label label9;
+  }
+}
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ManipulationView.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ManipulationView.cs	(revision 10709)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ManipulationView.cs	(revision 10709)
@@ -0,0 +1,102 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Drawing;
+using System.Windows.Forms;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+
+namespace HeuristicLab.DataPreprocessing.Views {
+
+  [View("Manipulation Chart View")]
+  [Content(typeof(ManipulationContent), false)]
+  public partial class ManipulationView : ItemView {
+
+    private Action[] validators;
+    private Action[] manipulations;
+
+    public ManipulationView() {
+      InitializeComponent();
+      tabsData.Appearance = TabAppearance.FlatButtons;
+      tabsData.ItemSize = new Size(0, 1);
+      tabsData.SizeMode = TabSizeMode.Fixed;
+      tabsPreview.Appearance = TabAppearance.FlatButtons;
+      tabsPreview.ItemSize = new Size(0, 1);
+      tabsPreview.SizeMode = TabSizeMode.Fixed;
+
+      validators = new Action[] { 
+        ()=>validateDoubleTextBox(txtDeleteColumnsInfo.Text),
+        ()=>validateDoubleTextBox(txtDeleteColumnsVariance.Text),
+        ()=>validateDoubleTextBox(txtDeleteRowsInfo.Text),
+        ()=>{btnApply.Enabled = true;} //shuffle
+      };
+      manipulations = new Action[] { 
+        ()=>{},
+        ()=>{},
+        ()=>{},
+        ()=>Content.ManipulationLogic.ShuffleWithRanges()
+      };
+    }
+
+    public new ManipulationContent Content {
+      get { return (ManipulationContent)base.Content; }
+      set { base.Content = value; }
+    }
+
+    private void lstMethods_SelectedIndexChanged(object sender, System.EventArgs e) {
+      int index = lstMethods.SelectedIndex;
+      tabsData.SelectedIndex = index + 1;
+      tabsPreview.SelectedIndex = index + 1;
+      btnApply.Enabled = false;
+
+      //in order that button will be enabled if text is already valid
+
+      validators[index]();
+    }
+
+    private void btnApply_Click(object sender, System.EventArgs e) {
+      manipulations[lstMethods.SelectedIndex]();
+    }
+
+    private void validateDoubleTextBox(String text) {
+      btnApply.Enabled = false;
+      if (!string.IsNullOrEmpty(text)) {
+        double percent;
+        if (Double.TryParse(text, out percent)) {
+          btnApply.Enabled = true;
+        }
+      }
+    }
+
+    private void txtDeleteColumnsInfo_TextChanged(object sender, EventArgs e) {
+      validateDoubleTextBox(txtDeleteColumnsInfo.Text);
+    }
+
+    private void txtDeleteColumnsVariance_TextChanged(object sender, EventArgs e) {
+      validateDoubleTextBox(txtDeleteColumnsVariance.Text);
+    }
+
+    private void txtDeleteRowsInfo_TextChanged(object sender, EventArgs e) {
+      validateDoubleTextBox(txtDeleteRowsInfo.Text);
+    }
+  }
+}
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/HeuristicLab.DataPreprocessing-3.3.csproj
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/HeuristicLab.DataPreprocessing-3.3.csproj	(revision 10708)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/HeuristicLab.DataPreprocessing-3.3.csproj	(revision 10709)
@@ -72,4 +72,5 @@
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="Implementations\ManipulationContent.cs" />
     <Compile Include="Implementations\PreprocessingChartContent.cs" />
     <Compile Include="Implementations\PreprocessingData.cs" />
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/LineChartContent.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/LineChartContent.cs	(revision 10708)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/LineChartContent.cs	(revision 10709)
@@ -25,8 +25,10 @@
 
 namespace HeuristicLab.DataPreprocessing {
+
   [Item("LineChart", "Represents the line chart grid.")]
   public class LineChartContent : PreprocessingChartContent {
 
-    public LineChartContent(IChartLogic chartlogic) :base(chartlogic) {
+    public LineChartContent(IChartLogic chartlogic)
+      : base(chartlogic) {
     }
 
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/ManipulationContent.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/ManipulationContent.cs	(revision 10709)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/ManipulationContent.cs	(revision 10709)
@@ -0,0 +1,54 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Drawing;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+
+namespace HeuristicLab.DataPreprocessing {
+
+  [Item("Manipulation", "Represents the available manipulations on a data set.")]
+  public class ManipulationContent : Item, IViewShortcut {
+
+    private IManipulationLogic manipulationLogic;
+
+    public ManipulationContent(IManipulationLogic theManipulationLogic) {
+      manipulationLogic = theManipulationLogic;
+    }
+
+    public ManipulationContent(ManipulationContent content, Cloner cloner) : base(content, cloner) { }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new ManipulationContent(this, cloner);
+    }
+
+    public IManipulationLogic ManipulationLogic {
+      get {
+        return manipulationLogic;
+      }
+    }
+
+
+    public static new Image StaticItemImage {
+      get { return HeuristicLab.Common.Resources.VSImageLibrary.Method; }
+    }
+  }
+}
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/ManipulationLogic.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/ManipulationLogic.cs	(revision 10708)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/ManipulationLogic.cs	(revision 10709)
@@ -181,4 +181,11 @@
     }
 
+    public void ShuffleWithRanges() {
+      ShuffleWithRanges(new[] {
+        preprocessingData.TestPartition,
+        preprocessingData.TrainingPartition
+      });
+    }
+
     public void ShuffleWithRanges(IEnumerable<IntRange> ranges) {
       // init random outside loop
@@ -186,10 +193,10 @@
 
       preprocessingData.InTransaction(() => {
-        // process all given ranges - e.g. TrainingPartition, Trainingpartition
+        // process all given ranges - e.g. TrainingPartition, TestPartition
         foreach (IntRange range in ranges) {
           List<Tuple<int, int>> shuffledIndices = new List<Tuple<int, int>>();
 
           // generate random indices used for shuffeling each column
-          for (int i = range.End; i > range.Start; --i) {
+          for (int i = range.End - 1; i >= range.Start; --i) {
             int rand = random.Next(range.Start, i);
             shuffledIndices.Add(new Tuple<int, int>(i, rand));
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IManipulationLogic.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IManipulationLogic.cs	(revision 10708)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IManipulationLogic.cs	(revision 10709)
@@ -34,4 +34,5 @@
     void ReplaceIndicesByValue(IDictionary<int, IList<int>> cells, string value);
     void ReplaceIndicesByValue<T>(int columnIndex, IEnumerable<int> rowIndices, T value);
+    void ShuffleWithRanges();
     void ShuffleWithRanges(IEnumerable<HeuristicLab.Data.IntRange> ranges);
   }
