Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataGridContentView.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataGridContentView.cs	(revision 10633)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataGridContentView.cs	(revision 10636)
@@ -33,4 +33,5 @@
 
     private bool notOwnEvent = true;
+    private FindAndReplaceDialog findAndReplaceDialog;
 
     public new IDataGridContent Content {
@@ -149,13 +150,35 @@
         });
       } else if (e.Control && e.KeyCode == Keys.F) {
-        FindAndReplaceDialog findAndReplaceDialog = new FindAndReplaceDialog();
-        findAndReplaceDialog.Show();
+        CreateFindAndReplaceDialog();
         findAndReplaceDialog.ActivateSearch();
-
       } else if (e.Control && e.KeyCode == Keys.R) {
-        FindAndReplaceDialog findAndReplaceDialog = new FindAndReplaceDialog();
-        findAndReplaceDialog.Show();
+        CreateFindAndReplaceDialog();
         findAndReplaceDialog.ActivateReplace();
       }
+    }
+
+    private void CreateFindAndReplaceDialog() {
+      findAndReplaceDialog = new FindAndReplaceDialog();
+      findAndReplaceDialog.Show();
+      findAndReplaceDialog.FindAllEvent += findAndReplaceDialog_FindAllEvent;
+      findAndReplaceDialog.FindNextEvent += findAndReplaceDialog_FindNextEvent;
+      findAndReplaceDialog.ReplaceAllEvent += findAndReplaceDialog_ReplaceAllEvent;
+      findAndReplaceDialog.ReplaceNextEvent += findAndReplaceDialog_ReplaceNextEvent;
+    }
+
+    void findAndReplaceDialog_ReplaceNextEvent(object sender, EventArgs e) {
+      throw new NotImplementedException();
+    }
+
+    void findAndReplaceDialog_ReplaceAllEvent(object sender, EventArgs e) {
+      throw new NotImplementedException();
+    }
+
+    void findAndReplaceDialog_FindNextEvent(object sender, EventArgs e) {
+      throw new NotImplementedException();
+    }
+
+    void findAndReplaceDialog_FindAllEvent(object sender, EventArgs e) {
+      throw new NotImplementedException();
     }
 
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.cs	(revision 10633)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.cs	(revision 10636)
@@ -55,5 +55,5 @@
 
         var viewShortcuts = new ItemCollection<IViewShortcut>() {
-          new DataGridContent(dataGridLogic, manipulationLogic),
+          new DataGridContent(dataGridLogic, manipulationLogic, filterLogic),
           new StatisticsContent(statisticsLogic),
           new FilterContent(filterLogic),
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FindAndReplaceDialog.Designer.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FindAndReplaceDialog.Designer.cs	(revision 10633)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FindAndReplaceDialog.Designer.cs	(revision 10636)
@@ -31,10 +31,19 @@
       this.btnFindNext = new System.Windows.Forms.Button();
       this.tabReplace = new System.Windows.Forms.TabPage();
+      this.lblValue = new System.Windows.Forms.Label();
+      this.btnReplaceAll = new System.Windows.Forms.Button();
+      this.btnReplaceNext = new System.Windows.Forms.Button();
+      this.cmbReplaceWith = new System.Windows.Forms.ComboBox();
+      this.txtValue = new System.Windows.Forms.TextBox();
+      this.label1 = new System.Windows.Forms.Label();
       this.tabSearchReplace.SuspendLayout();
-      this.tabSearch.SuspendLayout();
+      this.tabReplace.SuspendLayout();
       this.SuspendLayout();
       // 
       // tabSearchReplace
       // 
+      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);
       this.tabSearchReplace.Controls.Add(this.tabReplace);
@@ -42,17 +51,13 @@
       this.tabSearchReplace.Name = "tabSearchReplace";
       this.tabSearchReplace.SelectedIndex = 0;
-      this.tabSearchReplace.Size = new System.Drawing.Size(511, 174);
+      this.tabSearchReplace.Size = new System.Drawing.Size(564, 135);
       this.tabSearchReplace.TabIndex = 0;
       // 
       // tabSearch
       // 
-      this.tabSearch.Controls.Add(this.txtSearchString);
-      this.tabSearch.Controls.Add(this.lblSearch);
-      this.tabSearch.Controls.Add(this.btnFindAll);
-      this.tabSearch.Controls.Add(this.btnFindNext);
       this.tabSearch.Location = new System.Drawing.Point(4, 22);
       this.tabSearch.Name = "tabSearch";
       this.tabSearch.Padding = new System.Windows.Forms.Padding(3);
-      this.tabSearch.Size = new System.Drawing.Size(503, 148);
+      this.tabSearch.Size = new System.Drawing.Size(556, 148);
       this.tabSearch.TabIndex = 0;
       this.tabSearch.Text = "Search";
@@ -61,24 +66,24 @@
       // txtSearchString
       // 
-      this.txtSearchString.Location = new System.Drawing.Point(97, 27);
+      this.txtSearchString.Location = new System.Drawing.Point(103, 20);
       this.txtSearchString.Name = "txtSearchString";
       this.txtSearchString.Size = new System.Drawing.Size(254, 20);
-      this.txtSearchString.TabIndex = 3;
+      this.txtSearchString.TabIndex = 23;
       // 
       // lblSearch
       // 
       this.lblSearch.AutoSize = true;
-      this.lblSearch.Location = new System.Drawing.Point(32, 30);
+      this.lblSearch.Location = new System.Drawing.Point(41, 26);
       this.lblSearch.Name = "lblSearch";
-      this.lblSearch.Size = new System.Drawing.Size(59, 13);
-      this.lblSearch.TabIndex = 2;
-      this.lblSearch.Text = "Search for:";
+      this.lblSearch.Size = new System.Drawing.Size(56, 13);
+      this.lblSearch.TabIndex = 22;
+      this.lblSearch.Text = "Search for";
       // 
       // btnFindAll
       // 
-      this.btnFindAll.Location = new System.Drawing.Point(360, 96);
+      this.btnFindAll.Location = new System.Drawing.Point(458, 20);
       this.btnFindAll.Name = "btnFindAll";
-      this.btnFindAll.Size = new System.Drawing.Size(75, 23);
-      this.btnFindAll.TabIndex = 1;
+      this.btnFindAll.Size = new System.Drawing.Size(80, 23);
+      this.btnFindAll.TabIndex = 21;
       this.btnFindAll.Text = "Find All";
       this.btnFindAll.UseVisualStyleBackColor = true;
@@ -86,8 +91,8 @@
       // btnFindNext
       // 
-      this.btnFindNext.Location = new System.Drawing.Point(360, 67);
+      this.btnFindNext.Location = new System.Drawing.Point(372, 20);
       this.btnFindNext.Name = "btnFindNext";
-      this.btnFindNext.Size = new System.Drawing.Size(75, 23);
-      this.btnFindNext.TabIndex = 0;
+      this.btnFindNext.Size = new System.Drawing.Size(80, 23);
+      this.btnFindNext.TabIndex = 20;
       this.btnFindNext.Text = "Find Next";
       this.btnFindNext.UseVisualStyleBackColor = true;
@@ -95,23 +100,84 @@
       // tabReplace
       // 
+      this.tabReplace.Controls.Add(this.txtSearchString);
+      this.tabReplace.Controls.Add(this.lblSearch);
+      this.tabReplace.Controls.Add(this.btnFindAll);
+      this.tabReplace.Controls.Add(this.btnFindNext);
+      this.tabReplace.Controls.Add(this.lblValue);
+      this.tabReplace.Controls.Add(this.btnReplaceAll);
+      this.tabReplace.Controls.Add(this.btnReplaceNext);
+      this.tabReplace.Controls.Add(this.cmbReplaceWith);
+      this.tabReplace.Controls.Add(this.txtValue);
+      this.tabReplace.Controls.Add(this.label1);
       this.tabReplace.Location = new System.Drawing.Point(4, 22);
       this.tabReplace.Name = "tabReplace";
       this.tabReplace.Padding = new System.Windows.Forms.Padding(3);
-      this.tabReplace.Size = new System.Drawing.Size(503, 148);
+      this.tabReplace.Size = new System.Drawing.Size(556, 109);
       this.tabReplace.TabIndex = 1;
       this.tabReplace.Text = "Replace";
       this.tabReplace.UseVisualStyleBackColor = true;
       // 
+      // lblValue
+      // 
+      this.lblValue.AutoSize = true;
+      this.lblValue.Location = new System.Drawing.Point(64, 76);
+      this.lblValue.Name = "lblValue";
+      this.lblValue.Size = new System.Drawing.Size(34, 13);
+      this.lblValue.TabIndex = 19;
+      this.lblValue.Text = "Value";
+      // 
+      // btnReplaceAll
+      // 
+      this.btnReplaceAll.Location = new System.Drawing.Point(458, 47);
+      this.btnReplaceAll.Name = "btnReplaceAll";
+      this.btnReplaceAll.Size = new System.Drawing.Size(80, 23);
+      this.btnReplaceAll.TabIndex = 18;
+      this.btnReplaceAll.Text = "Replace All";
+      this.btnReplaceAll.UseVisualStyleBackColor = true;
+      // 
+      // btnReplaceNext
+      // 
+      this.btnReplaceNext.Location = new System.Drawing.Point(372, 47);
+      this.btnReplaceNext.Name = "btnReplaceNext";
+      this.btnReplaceNext.Size = new System.Drawing.Size(80, 23);
+      this.btnReplaceNext.TabIndex = 17;
+      this.btnReplaceNext.Text = "Replace Next";
+      this.btnReplaceNext.UseVisualStyleBackColor = true;
+      // 
+      // cmbReplaceWith
+      // 
+      this.cmbReplaceWith.FormattingEnabled = true;
+      this.cmbReplaceWith.Location = new System.Drawing.Point(103, 46);
+      this.cmbReplaceWith.Name = "cmbReplaceWith";
+      this.cmbReplaceWith.Size = new System.Drawing.Size(254, 21);
+      this.cmbReplaceWith.TabIndex = 16;
+      // 
+      // txtValue
+      // 
+      this.txtValue.Location = new System.Drawing.Point(103, 73);
+      this.txtValue.Name = "txtValue";
+      this.txtValue.Size = new System.Drawing.Size(254, 20);
+      this.txtValue.TabIndex = 15;
+      // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Location = new System.Drawing.Point(28, 49);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(69, 13);
+      this.label1.TabIndex = 14;
+      this.label1.Text = "Replace with";
+      // 
       // FindAndReplaceDialog
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.ClientSize = new System.Drawing.Size(532, 197);
+      this.ClientSize = new System.Drawing.Size(588, 159);
       this.Controls.Add(this.tabSearchReplace);
       this.Name = "FindAndReplaceDialog";
-      this.Text = "FindAndReplaceDialog";
+      this.Text = "Find and Replace";
       this.tabSearchReplace.ResumeLayout(false);
-      this.tabSearch.ResumeLayout(false);
-      this.tabSearch.PerformLayout();
+      this.tabReplace.ResumeLayout(false);
+      this.tabReplace.PerformLayout();
       this.ResumeLayout(false);
 
@@ -123,8 +189,14 @@
     private System.Windows.Forms.TabPage tabSearch;
     private System.Windows.Forms.TabPage tabReplace;
+    private System.Windows.Forms.TextBox txtSearchString;
+    private System.Windows.Forms.Label lblSearch;
     private System.Windows.Forms.Button btnFindAll;
     private System.Windows.Forms.Button btnFindNext;
-    private System.Windows.Forms.TextBox txtSearchString;
-    private System.Windows.Forms.Label lblSearch;
+    private System.Windows.Forms.Label lblValue;
+    private System.Windows.Forms.Button btnReplaceAll;
+    private System.Windows.Forms.Button btnReplaceNext;
+    private System.Windows.Forms.ComboBox cmbReplaceWith;
+    private System.Windows.Forms.TextBox txtValue;
+    private System.Windows.Forms.Label label1;
   }
 }
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FindAndReplaceDialog.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FindAndReplaceDialog.cs	(revision 10633)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FindAndReplaceDialog.cs	(revision 10636)
@@ -1,3 +1,4 @@
-﻿using System.Windows.Forms;
+﻿using System;
+using System.Windows.Forms;
 
 namespace HeuristicLab.DataPreprocessing.Views {
@@ -5,24 +6,61 @@
     public FindAndReplaceDialog() {
       InitializeComponent();
+      string[] cmbItems = { "Value", "Average", "Median", "Random", "Most Common", "Interpolation" };
+      cmbReplaceWith.Items.AddRange(cmbItems);
     }
 
     public void ActivateSearch() {
       tabSearch.Focus();
+      AddControlsToCurrentTab();
     }
 
     public void ActivateReplace() {
       tabReplace.Focus();
+      AddControlsToCurrentTab();
     }
 
-    private void tabControl1_SelectedIndexChanged(object sender, System.EventArgs e) {
-      if (sender is TabControl) {
-        TabControl tc = (TabControl)sender;
-        tc.SelectedTab.Controls.Add(btnFindAll);
-        tc.SelectedTab.Controls.Add(btnFindNext);
-        tc.SelectedTab.Controls.Add(lblSearch);
-        tc.SelectedTab.Controls.Add(txtSearchString);
-      }
+    private void tabSearchReplace_SelectedIndexChanged(object sender, System.EventArgs e) {
+      AddControlsToCurrentTab();
     }
 
+    private void AddControlsToCurrentTab() {
+      tabSearchReplace.SelectedTab.Controls.Add(btnFindAll);
+      tabSearchReplace.SelectedTab.Controls.Add(btnFindNext);
+      tabSearchReplace.SelectedTab.Controls.Add(lblSearch);
+      tabSearchReplace.SelectedTab.Controls.Add(txtSearchString);
+    }
+
+    public string GetSearchText() {
+      return txtSearchString.Text;
+    }
+
+    public string GetReplaceText() {
+      return txtValue.Text;
+    }
+
+    public string GetReplaceAction() {
+      return cmbReplaceWith.SelectedText;
+    }
+
+    public event EventHandler FindAllEvent {
+      add { btnFindAll.Click += value; }
+      remove { btnFindAll.Click -= value; }
+    }
+
+    public event EventHandler FindNextEvent {
+      add { btnFindNext.Click += value; }
+      remove { btnFindNext.Click -= value; }
+    }
+
+    public event EventHandler ReplaceAllEvent {
+      add { btnReplaceAll.Click += value; }
+      remove { btnReplaceAll.Click -= value; }
+    }
+
+    public event EventHandler ReplaceNextEvent {
+      add { btnReplaceNext.Click += value; }
+      remove { btnReplaceNext.Click -= value; }
+    }
+      
   }
 }
