Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.cs	(revision 10775)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.cs	(revision 10776)
@@ -58,5 +58,5 @@
           new FilterContent(filterLogic),
           new TransformationContent(data),
-          new ManipulationContent(manipulationLogic),
+          new ManipulationContent(manipulationLogic, searchLogic),
           new LineChartContent(lineChartLogic),
           new HistogramContent(histogramLogic)
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ManipulationView.Designer.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ManipulationView.Designer.cs	(revision 10775)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ManipulationView.Designer.cs	(revision 10776)
@@ -27,20 +27,4 @@
       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();
@@ -53,13 +37,31 @@
       this.tabPreviewDeleteRowsInfo = new System.Windows.Forms.TabPage();
       this.lblPreviewRowsInfo = new System.Windows.Forms.Label();
+      this.tabPreviewReplaceMissingValues = new System.Windows.Forms.TabPage();
+      this.lblPreviewReplaceMissingValues = new System.Windows.Forms.Label();
       this.tabPreviewShuffle = new System.Windows.Forms.TabPage();
       this.lblPreviewShuffle = new System.Windows.Forms.Label();
+      this.label9 = new System.Windows.Forms.Label();
+      this.tabDataShuffle = new System.Windows.Forms.TabPage();
+      this.label6 = new System.Windows.Forms.Label();
+      this.tabReplaceMissingValues = new System.Windows.Forms.TabPage();
+      this.label10 = new System.Windows.Forms.Label();
+      this.lblValueColon = new System.Windows.Forms.Label();
+      this.cmbReplaceWith = new System.Windows.Forms.ComboBox();
+      this.txtReplaceValue = new System.Windows.Forms.TextBox();
+      this.tabDataDeleteRowsInfo = new System.Windows.Forms.TabPage();
+      this.label5 = new System.Windows.Forms.Label();
+      this.txtDeleteRowsInfo = new System.Windows.Forms.TextBox();
+      this.label3 = new System.Windows.Forms.Label();
+      this.tabDataDeleteColumnsVariance = new System.Windows.Forms.TabPage();
+      this.label4 = new System.Windows.Forms.Label();
+      this.txtDeleteColumnsVariance = new System.Windows.Forms.TextBox();
+      this.tabDataDeleteColumnsInformation = new System.Windows.Forms.TabPage();
+      this.label1 = new System.Windows.Forms.Label();
+      this.txtDeleteColumnsInfo = new System.Windows.Forms.TextBox();
+      this.label2 = new System.Windows.Forms.Label();
+      this.tabPage1 = new System.Windows.Forms.TabPage();
+      this.label7 = new System.Windows.Forms.Label();
+      this.tabsData = new System.Windows.Forms.TabControl();
       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();
@@ -67,5 +69,13 @@
       this.tabPreviewDeleteColumnsVariance.SuspendLayout();
       this.tabPreviewDeleteRowsInfo.SuspendLayout();
+      this.tabPreviewReplaceMissingValues.SuspendLayout();
       this.tabPreviewShuffle.SuspendLayout();
+      this.tabDataShuffle.SuspendLayout();
+      this.tabReplaceMissingValues.SuspendLayout();
+      this.tabDataDeleteRowsInfo.SuspendLayout();
+      this.tabDataDeleteColumnsVariance.SuspendLayout();
+      this.tabDataDeleteColumnsInformation.SuspendLayout();
+      this.tabPage1.SuspendLayout();
+      this.tabsData.SuspendLayout();
       this.SuspendLayout();
       // 
@@ -79,4 +89,5 @@
             "Delete Columns with insufficient Variance",
             "Delete Rows with insufficient Information",
+            "Replace Missing Values",
             "Shuffle Data"});
       this.lstMethods.Location = new System.Drawing.Point(3, 3);
@@ -111,40 +122,304 @@
       this.grpBoxData.Text = "Properties";
       // 
-      // tabsData
-      // 
-      this.tabsData.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+      // 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.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 = "tabDataInactive";
-      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";
+      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.tabPreviewInactive);
+      this.tabsPreview.Controls.Add(this.tabPreviewDeleteColumnsInfo);
+      this.tabsPreview.Controls.Add(this.tabPreviewDeleteColumnsVariance);
+      this.tabsPreview.Controls.Add(this.tabPreviewDeleteRowsInfo);
+      this.tabsPreview.Controls.Add(this.tabPreviewReplaceMissingValues);
+      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;
+      // 
+      // tabPreviewInactive
+      // 
+      this.tabPreviewInactive.Location = new System.Drawing.Point(4, 22);
+      this.tabPreviewInactive.Name = "tabPreviewInactive";
+      this.tabPreviewInactive.Padding = new System.Windows.Forms.Padding(3);
+      this.tabPreviewInactive.Size = new System.Drawing.Size(711, 142);
+      this.tabPreviewInactive.TabIndex = 5;
+      this.tabPreviewInactive.Text = "inactive";
+      this.tabPreviewInactive.UseVisualStyleBackColor = true;
+      // 
+      // tabPreviewDeleteColumnsInfo
+      // 
+      this.tabPreviewDeleteColumnsInfo.Controls.Add(this.lblPreviewColumnsInfo);
+      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;
+      // 
+      // lblPreviewColumnsInfo
+      // 
+      this.lblPreviewColumnsInfo.AutoSize = true;
+      this.lblPreviewColumnsInfo.Location = new System.Drawing.Point(3, 3);
+      this.lblPreviewColumnsInfo.Name = "lblPreviewColumnsInfo";
+      this.lblPreviewColumnsInfo.Size = new System.Drawing.Size(318, 13);
+      this.lblPreviewColumnsInfo.TabIndex = 1;
+      this.lblPreviewColumnsInfo.Text = "{0} columns with more than {1} % missing values would be deleted";
+      // 
+      // tabPreviewDeleteColumnsVariance
+      // 
+      this.tabPreviewDeleteColumnsVariance.Controls.Add(this.label12);
+      this.tabPreviewDeleteColumnsVariance.Controls.Add(this.lblPreviewColumnsVariance);
+      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;
+      // 
+      // label12
+      // 
+      this.label12.AutoSize = true;
+      this.label12.Location = new System.Drawing.Point(6, 22);
+      this.label12.Name = "label12";
+      this.label12.Size = new System.Drawing.Size(0, 13);
+      this.label12.TabIndex = 2;
+      // 
+      // lblPreviewColumnsVariance
+      // 
+      this.lblPreviewColumnsVariance.AutoSize = true;
+      this.lblPreviewColumnsVariance.Location = new System.Drawing.Point(3, 3);
+      this.lblPreviewColumnsVariance.Name = "lblPreviewColumnsVariance";
+      this.lblPreviewColumnsVariance.Size = new System.Drawing.Size(301, 13);
+      this.lblPreviewColumnsVariance.TabIndex = 2;
+      this.lblPreviewColumnsVariance.Text = "{0} columns with a variance smaller than {1} would be deleted.";
+      // 
+      // tabPreviewDeleteRowsInfo
+      // 
+      this.tabPreviewDeleteRowsInfo.Controls.Add(this.lblPreviewRowsInfo);
+      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;
+      // 
+      // lblPreviewRowsInfo
+      // 
+      this.lblPreviewRowsInfo.AutoSize = true;
+      this.lblPreviewRowsInfo.Location = new System.Drawing.Point(3, 3);
+      this.lblPreviewRowsInfo.Name = "lblPreviewRowsInfo";
+      this.lblPreviewRowsInfo.Size = new System.Drawing.Size(301, 13);
+      this.lblPreviewRowsInfo.TabIndex = 2;
+      this.lblPreviewRowsInfo.Text = "{0} rows with more than {1} % missing values would be deleted";
+      // 
+      // tabPreviewReplaceMissingValues
+      // 
+      this.tabPreviewReplaceMissingValues.Controls.Add(this.lblPreviewReplaceMissingValues);
+      this.tabPreviewReplaceMissingValues.Location = new System.Drawing.Point(4, 22);
+      this.tabPreviewReplaceMissingValues.Name = "tabPreviewReplaceMissingValues";
+      this.tabPreviewReplaceMissingValues.Padding = new System.Windows.Forms.Padding(3);
+      this.tabPreviewReplaceMissingValues.Size = new System.Drawing.Size(711, 142);
+      this.tabPreviewReplaceMissingValues.TabIndex = 6;
+      this.tabPreviewReplaceMissingValues.Text = "repl missing vals";
+      this.tabPreviewReplaceMissingValues.UseVisualStyleBackColor = true;
+      // 
+      // lblPreviewReplaceMissingValues
+      // 
+      this.lblPreviewReplaceMissingValues.AutoSize = true;
+      this.lblPreviewReplaceMissingValues.Location = new System.Drawing.Point(3, 3);
+      this.lblPreviewReplaceMissingValues.Name = "lblPreviewReplaceMissingValues";
+      this.lblPreviewReplaceMissingValues.Size = new System.Drawing.Size(343, 13);
+      this.lblPreviewReplaceMissingValues.TabIndex = 3;
+      this.lblPreviewReplaceMissingValues.Text = "{0} cells detected with missing values which would be replaced with {1}";
+      // 
+      // tabPreviewShuffle
+      // 
+      this.tabPreviewShuffle.Controls.Add(this.lblPreviewShuffle);
+      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;
+      // 
+      // lblPreviewShuffle
+      // 
+      this.lblPreviewShuffle.AutoSize = true;
+      this.lblPreviewShuffle.Location = new System.Drawing.Point(3, 3);
+      this.lblPreviewShuffle.Name = "lblPreviewShuffle";
+      this.lblPreviewShuffle.Size = new System.Drawing.Size(252, 13);
+      this.lblPreviewShuffle.TabIndex = 0;
+      this.lblPreviewShuffle.Text = "Data will be shuffled randomly - preview not possible";
+      // 
+      // label9
+      // 
+      this.label9.Location = new System.Drawing.Point(0, 0);
+      this.label9.Name = "label9";
+      this.label9.Size = new System.Drawing.Size(100, 23);
+      this.label9.TabIndex = 0;
+      // 
+      // 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";
+      // 
+      // tabReplaceMissingValues
+      // 
+      this.tabReplaceMissingValues.Controls.Add(this.txtReplaceValue);
+      this.tabReplaceMissingValues.Controls.Add(this.cmbReplaceWith);
+      this.tabReplaceMissingValues.Controls.Add(this.lblValueColon);
+      this.tabReplaceMissingValues.Controls.Add(this.label10);
+      this.tabReplaceMissingValues.Location = new System.Drawing.Point(4, 22);
+      this.tabReplaceMissingValues.Name = "tabReplaceMissingValues";
+      this.tabReplaceMissingValues.Padding = new System.Windows.Forms.Padding(3);
+      this.tabReplaceMissingValues.Size = new System.Drawing.Size(711, 138);
+      this.tabReplaceMissingValues.TabIndex = 6;
+      this.tabReplaceMissingValues.Text = "repl missing vals";
+      this.tabReplaceMissingValues.UseVisualStyleBackColor = true;
+      // 
+      // label10
+      // 
+      this.label10.AutoSize = true;
+      this.label10.Location = new System.Drawing.Point(3, 3);
+      this.label10.Name = "label10";
+      this.label10.Size = new System.Drawing.Size(140, 13);
+      this.label10.TabIndex = 0;
+      this.label10.Text = "Replace missing values with";
+      // 
+      // lblValueColon
+      // 
+      this.lblValueColon.AutoSize = true;
+      this.lblValueColon.Location = new System.Drawing.Point(271, 3);
+      this.lblValueColon.Name = "lblValueColon";
+      this.lblValueColon.Size = new System.Drawing.Size(10, 13);
+      this.lblValueColon.TabIndex = 0;
+      this.lblValueColon.Text = ":";
+      // 
+      // cmbReplaceWith
+      // 
+      this.cmbReplaceWith.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+      this.cmbReplaceWith.FormattingEnabled = true;
+      this.cmbReplaceWith.Items.AddRange(new object[] {
+            "Value",
+            "Average",
+            "Median",
+            "Most Common",
+            "Random"});
+      this.cmbReplaceWith.Location = new System.Drawing.Point(149, 0);
+      this.cmbReplaceWith.Name = "cmbReplaceWith";
+      this.cmbReplaceWith.Size = new System.Drawing.Size(121, 21);
+      this.cmbReplaceWith.TabIndex = 1;
+      this.cmbReplaceWith.SelectedIndexChanged += new System.EventHandler(this.cmbReplaceWith_SelectedIndexChanged);
+      // 
+      // txtReplaceValue
+      // 
+      this.txtReplaceValue.Location = new System.Drawing.Point(287, 0);
+      this.txtReplaceValue.Name = "txtReplaceValue";
+      this.txtReplaceValue.Size = new System.Drawing.Size(100, 20);
+      this.txtReplaceValue.TabIndex = 2;
+      this.txtReplaceValue.TextChanged += new System.EventHandler(this.txtReplaceValue_TextChanged);
+      // 
+      // 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;
+      // 
+      // 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 ";
+      // 
+      // 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);
+      // 
+      // 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.";
+      // 
+      // tabDataDeleteColumnsVariance
+      // 
+      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;
+      // 
+      // 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(220, 13);
+      this.label4.TabIndex = 3;
+      this.label4.Text = "Delete columns with a variance smaller than  ";
+      // 
+      // txtDeleteColumnsVariance
+      // 
+      this.txtDeleteColumnsVariance.Location = new System.Drawing.Point(229, 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);
       // 
       // tabDataDeleteColumnsInformation
@@ -161,4 +436,21 @@
       this.tabDataDeleteColumnsInformation.UseVisualStyleBackColor = true;
       // 
+      // 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 ";
+      // 
+      // 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);
+      // 
       // label2
       // 
@@ -170,237 +462,41 @@
       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.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(229, 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(220, 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) 
+      // 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 = "tabDataInactive";
+      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";
+      // 
+      // tabsData
+      // 
+      this.tabsData.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | 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.tabPreviewInactive);
-      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;
-      // 
-      // tabPreviewInactive
-      // 
-      this.tabPreviewInactive.Location = new System.Drawing.Point(4, 22);
-      this.tabPreviewInactive.Name = "tabPreviewInactive";
-      this.tabPreviewInactive.Padding = new System.Windows.Forms.Padding(3);
-      this.tabPreviewInactive.Size = new System.Drawing.Size(711, 142);
-      this.tabPreviewInactive.TabIndex = 5;
-      this.tabPreviewInactive.Text = "inactive";
-      this.tabPreviewInactive.UseVisualStyleBackColor = true;
-      // 
-      // tabPreviewDeleteColumnsInfo
-      // 
-      this.tabPreviewDeleteColumnsInfo.Controls.Add(this.lblPreviewColumnsInfo);
-      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;
-      // 
-      // lblPreviewColumnsInfo
-      // 
-      this.lblPreviewColumnsInfo.AutoSize = true;
-      this.lblPreviewColumnsInfo.Location = new System.Drawing.Point(3, 3);
-      this.lblPreviewColumnsInfo.Name = "lblPreviewColumnsInfo";
-      this.lblPreviewColumnsInfo.Size = new System.Drawing.Size(318, 13);
-      this.lblPreviewColumnsInfo.TabIndex = 1;
-      this.lblPreviewColumnsInfo.Text = "{0} columns with more than {1} % missing values would be deleted";
-      // 
-      // tabPreviewDeleteColumnsVariance
-      // 
-      this.tabPreviewDeleteColumnsVariance.Controls.Add(this.label12);
-      this.tabPreviewDeleteColumnsVariance.Controls.Add(this.lblPreviewColumnsVariance);
-      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;
-      // 
-      // label12
-      // 
-      this.label12.AutoSize = true;
-      this.label12.Location = new System.Drawing.Point(6, 22);
-      this.label12.Name = "label12";
-      this.label12.Size = new System.Drawing.Size(0, 13);
-      this.label12.TabIndex = 2;
-      // 
-      // lblPreviewColumnsVariance
-      // 
-      this.lblPreviewColumnsVariance.AutoSize = true;
-      this.lblPreviewColumnsVariance.Location = new System.Drawing.Point(3, 3);
-      this.lblPreviewColumnsVariance.Name = "lblPreviewColumnsVariance";
-      this.lblPreviewColumnsVariance.Size = new System.Drawing.Size(301, 13);
-      this.lblPreviewColumnsVariance.TabIndex = 2;
-      this.lblPreviewColumnsVariance.Text = "{0} columns with a variance smaller than {1} would be deleted.";
-      // 
-      // tabPreviewDeleteRowsInfo
-      // 
-      this.tabPreviewDeleteRowsInfo.Controls.Add(this.lblPreviewRowsInfo);
-      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;
-      // 
-      // lblPreviewRowsInfo
-      // 
-      this.lblPreviewRowsInfo.AutoSize = true;
-      this.lblPreviewRowsInfo.Location = new System.Drawing.Point(3, 3);
-      this.lblPreviewRowsInfo.Name = "lblPreviewRowsInfo";
-      this.lblPreviewRowsInfo.Size = new System.Drawing.Size(301, 13);
-      this.lblPreviewRowsInfo.TabIndex = 2;
-      this.lblPreviewRowsInfo.Text = "{0} rows with more than {1} % missing values would be deleted";
-      // 
-      // tabPreviewShuffle
-      // 
-      this.tabPreviewShuffle.Controls.Add(this.lblPreviewShuffle);
-      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;
-      // 
-      // lblPreviewShuffle
-      // 
-      this.lblPreviewShuffle.AutoSize = true;
-      this.lblPreviewShuffle.Location = new System.Drawing.Point(3, 3);
-      this.lblPreviewShuffle.Name = "lblPreviewShuffle";
-      this.lblPreviewShuffle.Size = new System.Drawing.Size(252, 13);
-      this.lblPreviewShuffle.TabIndex = 0;
-      this.lblPreviewShuffle.Text = "Data will be shuffled randomly - preview not possible";
+      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.tabReplaceMissingValues);
+      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;
       // 
       // ManipulationView
@@ -415,15 +511,4 @@
       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);
@@ -434,6 +519,21 @@
       this.tabPreviewDeleteRowsInfo.ResumeLayout(false);
       this.tabPreviewDeleteRowsInfo.PerformLayout();
+      this.tabPreviewReplaceMissingValues.ResumeLayout(false);
+      this.tabPreviewReplaceMissingValues.PerformLayout();
       this.tabPreviewShuffle.ResumeLayout(false);
       this.tabPreviewShuffle.PerformLayout();
+      this.tabDataShuffle.ResumeLayout(false);
+      this.tabDataShuffle.PerformLayout();
+      this.tabReplaceMissingValues.ResumeLayout(false);
+      this.tabReplaceMissingValues.PerformLayout();
+      this.tabDataDeleteRowsInfo.ResumeLayout(false);
+      this.tabDataDeleteRowsInfo.PerformLayout();
+      this.tabDataDeleteColumnsVariance.ResumeLayout(false);
+      this.tabDataDeleteColumnsVariance.PerformLayout();
+      this.tabDataDeleteColumnsInformation.ResumeLayout(false);
+      this.tabDataDeleteColumnsInformation.PerformLayout();
+      this.tabPage1.ResumeLayout(false);
+      this.tabPage1.PerformLayout();
+      this.tabsData.ResumeLayout(false);
       this.ResumeLayout(false);
 
@@ -451,5 +551,16 @@
     private System.Windows.Forms.TabPage tabPreviewDeleteRowsInfo;
     private System.Windows.Forms.TabPage tabPreviewShuffle;
+    private System.Windows.Forms.Label lblPreviewShuffle;
+    private System.Windows.Forms.TabPage tabPreviewInactive;
+    private System.Windows.Forms.Label lblPreviewColumnsInfo;
+    private System.Windows.Forms.Label label12;
+    private System.Windows.Forms.Label lblPreviewColumnsVariance;
+    private System.Windows.Forms.Label lblPreviewRowsInfo;
+    private System.Windows.Forms.TabPage tabPreviewReplaceMissingValues;
+    private System.Windows.Forms.Label lblPreviewReplaceMissingValues;
+    private System.Windows.Forms.Label label9;
     private System.Windows.Forms.TabControl tabsData;
+    private System.Windows.Forms.TabPage tabPage1;
+    private System.Windows.Forms.Label label7;
     private System.Windows.Forms.TabPage tabDataDeleteColumnsInformation;
     private System.Windows.Forms.Label label2;
@@ -463,14 +574,11 @@
     private System.Windows.Forms.TextBox txtDeleteRowsInfo;
     private System.Windows.Forms.Label label5;
+    private System.Windows.Forms.TabPage tabReplaceMissingValues;
+    private System.Windows.Forms.TextBox txtReplaceValue;
+    private System.Windows.Forms.ComboBox cmbReplaceWith;
+    private System.Windows.Forms.Label lblValueColon;
+    private System.Windows.Forms.Label label10;
     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 lblPreviewShuffle;
-    private System.Windows.Forms.TabPage tabPreviewInactive;
-    private System.Windows.Forms.Label lblPreviewColumnsInfo;
-    private System.Windows.Forms.Label label12;
-    private System.Windows.Forms.Label lblPreviewColumnsVariance;
-    private System.Windows.Forms.Label lblPreviewRowsInfo;
   }
 }
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ManipulationView.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ManipulationView.cs	(revision 10775)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ManipulationView.cs	(revision 10776)
@@ -37,4 +37,5 @@
     public ManipulationView() {
       InitializeComponent();
+      cmbReplaceWith.SelectedIndex = 0;
       tabsData.Appearance = TabAppearance.FlatButtons;
       tabsData.ItemSize = new Size(0, 1);
@@ -48,4 +49,5 @@
         ()=>validateDeleteColumnsVariance(),
         ()=>validateDeleteRowsInfo(),
+        ()=>validateReplaceWith(),
         ()=>{btnApply.Enabled = true; lblPreviewShuffle.Text = "Data will be shuffled randomly - preview not possible";} //shuffle
       };
@@ -55,4 +57,5 @@
         ()=>Content.ManipulationLogic.DeleteColumnsWithVarianceSmaller(getDeleteColumnsVariance()),
         ()=>Content.ManipulationLogic.DeleteRowsWithMissingValuesGreater(getRowsColumnsInfo()),
+        ()=>replaceMissingValues(),
         ()=>Content.ManipulationLogic.ShuffleWithRanges()
       };
@@ -81,4 +84,25 @@
     }
 
+    private void replaceMissingValues() {
+      var cells = Content.SearchLogic.GetMissingValueIndices();
+      switch (cmbReplaceWith.SelectedIndex) { 
+        case 0: //Value
+          Content.ManipulationLogic.ReplaceIndicesByValue(cells, txtReplaceValue.Text);
+          break;
+        case 1: //Average
+          Content.ManipulationLogic.ReplaceIndicesByAverageValue(cells);
+          break;
+        case 2: //Median
+          Content.ManipulationLogic.ReplaceIndicesByMedianValue(cells);
+          break;
+        case 3: //Most Common
+          Content.ManipulationLogic.ReplaceIndicesByMostCommonValue(cells);
+          break;
+        case 4: //Random
+          Content.ManipulationLogic.ReplaceIndicesByRandomValue(cells);
+          break;
+      }
+    }
+
     private void validateDeleteColumnsInfo() {
       validateDoubleTextBox(txtDeleteColumnsInfo.Text);
@@ -123,4 +147,27 @@
       } else {
         lblPreviewRowsInfo.Text = "Preview not possible yet - please input the limit above.";
+      }
+    }
+
+    private void validateReplaceWith() {
+      btnApply.Enabled = false;
+      string replaceValue = cmbReplaceWith.SelectedText;
+      if (cmbReplaceWith.SelectedIndex == 0) {
+        btnApply.Enabled = !string.IsNullOrEmpty(txtReplaceValue.Text);
+        replaceValue = @"\"+ txtReplaceValue.Text + @"\";
+      } else {
+        btnApply.Enabled = true;
+      }
+      if (btnApply.Enabled) {
+        int count = Content.SearchLogic.GetMissingValueIndices().Count;
+        lblPreviewReplaceMissingValues.Text = count + " cell" + (count > 1 || count == 0 ? "s" : "") 
+          + " were detected with missing values which would be replaced with " + replaceValue;
+        if (count > 0) {
+          lblPreviewReplaceMissingValues.Text += Environment.NewLine + Environment.NewLine + "Please press the button \"Apply Manipulation\" if you wish to perform the replacement.";
+        } else {
+          btnApply.Enabled = false;
+        }
+      } else {
+        lblPreviewReplaceMissingValues.Text = "Preview not possible yet - please input the text which will be used as replacement.";
       }
     }
@@ -132,5 +179,4 @@
 
     private void lstMethods_SelectedIndexChanged(object sender, System.EventArgs e) {
-
       int index = lstMethods.SelectedIndex;
       tabsData.SelectedIndex = index + 1;
@@ -198,4 +244,15 @@
       }
     }
+
+    private void cmbReplaceWith_SelectedIndexChanged(object sender, EventArgs e) {
+      bool isReplaceWithValueSelected = cmbReplaceWith.SelectedIndex == 0;
+      lblValueColon.Visible = isReplaceWithValueSelected;
+      txtReplaceValue.Visible = isReplaceWithValueSelected;
+      validateReplaceWith();
+    }
+
+    private void txtReplaceValue_TextChanged(object sender, EventArgs e) {
+      validateReplaceWith();
+    }
   }
 }
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/ManipulationContent.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/ManipulationContent.cs	(revision 10775)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/ManipulationContent.cs	(revision 10776)
@@ -30,7 +30,9 @@
 
     private IManipulationLogic manipulationLogic;
+    private ISearchLogic searchLogic;
 
-    public ManipulationContent(IManipulationLogic theManipulationLogic) {
+    public ManipulationContent(IManipulationLogic theManipulationLogic, ISearchLogic theSearchLogic) {
       manipulationLogic = theManipulationLogic;
+      searchLogic = theSearchLogic;
     }
 
@@ -47,4 +49,9 @@
     }
 
+    public ISearchLogic SearchLogic {
+      get {
+        return searchLogic;
+      }
+    }
 
     public static new Image StaticItemImage {
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/SearchLogic.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/SearchLogic.cs	(revision 10775)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/SearchLogic.cs	(revision 10776)
@@ -29,5 +29,5 @@
     private readonly ITransactionalPreprocessingData preprocessingData;
 
-    private Dictionary<int, IEnumerable<int>> MissingValueIndicies { get; set; }
+    private Dictionary<int, IList<int>> MissingValueIndicies { get; set; }
     private Dictionary<int, IEnumerable> ValuesWithoutNaN { get; set; }
 
@@ -35,5 +35,5 @@
       preprocessingData = thePreprocessingData;
 
-      MissingValueIndicies = new Dictionary<int, IEnumerable<int>>();
+      MissingValueIndicies = new Dictionary<int, IList<int>>();
       ValuesWithoutNaN = new Dictionary<int, IEnumerable>();
 
@@ -57,5 +57,5 @@
         case DataPreprocessingChangedEventType.Any:
         case DataPreprocessingChangedEventType.Transformation:
-          MissingValueIndicies = new Dictionary<int, IEnumerable<int>>();
+          MissingValueIndicies = new Dictionary<int, IList<int>>();
           ValuesWithoutNaN = new Dictionary<int, IEnumerable>();
           break;
@@ -63,8 +63,8 @@
     }
 
-    public IDictionary<string, IEnumerable<int>> GetMissingValueIndices() {
-      var dic = new Dictionary<string, IEnumerable<int>>();
-      foreach (string variableName in preprocessingData.VariableNames) {
-        dic.Add(variableName, GetMissingValueIndices(preprocessingData.GetColumnIndex(variableName)));
+    public IDictionary<int, IList<int>> GetMissingValueIndices() {
+      var dic = new Dictionary<int, IList<int>>();
+      for (int i = 0; i < preprocessingData.Columns; ++i) {
+        dic.Add(i, GetMissingValueIndices(i));
       }
       return dic;
@@ -83,5 +83,5 @@
     }
 
-    public IEnumerable<int> GetMissingValueIndices(int columnIndex) {
+    public IList<int> GetMissingValueIndices(int columnIndex) {
       if (!MissingValueIndicies.ContainsKey(columnIndex)){        
           if (preprocessingData.IsType<double>(columnIndex)) {
@@ -98,5 +98,5 @@
       return MissingValueIndicies[columnIndex];
    }
-    private IEnumerable<int> GetMissingValueIndices<T>(int columnIndex) {
+    private IList<int> GetMissingValueIndices<T>(int columnIndex) {
       List<int> missingIndices = new List<int>();
      
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/ISearchLogic.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/ISearchLogic.cs	(revision 10775)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/ISearchLogic.cs	(revision 10776)
@@ -26,8 +26,8 @@
     /// <summary>
     /// Return the indices of the missing values where the key 
-    /// correspdonds to the variable name and the values to the row indices
+    /// correspdonds to the columbn index and the values to the row indices
     /// </summary>
     /// <returns></returns>
-    IDictionary<string, IEnumerable<int>> GetMissingValueIndices();
+    IDictionary<int, IList<int>> GetMissingValueIndices();
 
     /// <summary>
@@ -35,5 +35,5 @@
     /// </summary>
     /// <returns></returns>
-    IEnumerable<int> GetMissingValueIndices(int columnIndex);
+    IList<int> GetMissingValueIndices(int columnIndex);
 
     bool IsMissingValue(int columnIndex, int rowIndex);
