Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/DataGridContentView.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/DataGridContentView.cs	(revision 10963)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/DataGridContentView.cs	(revision 10964)
@@ -83,4 +83,5 @@
       searchIterator = null;
     }
+    #region methods which override/modify methods from PreprocessingStringConvertibleMatrixView
 
     protected override void dataGridView_SelectionChanged(object sender, EventArgs e) {
@@ -100,11 +101,47 @@
     }
 
-    private void dataGridView_MouseUp(object sender, MouseEventArgs e) {
-      if (!updateOnMouseUp)
-        return;
-
-      updateOnMouseUp = false;
-      dataGridView_SelectionChanged(sender, e);
-    }
+    protected override void dataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) {
+      if (!dataGridView.ReadOnly) {
+        string errorMessage;
+        if (Content != null) {
+          if (dataGridView.IsCurrentCellInEditMode && Content.FilterLogic.IsFiltered) {
+            errorMessage = "A filter is active, you cannot modify data. Press ESC to exit edit mode.";
+          } else {
+            Content.DataGridLogic.Validate(e.FormattedValue.ToString(), out errorMessage, e.ColumnIndex);
+          }
+
+          if (!String.IsNullOrEmpty(errorMessage)) {
+            e.Cancel = true;
+            dataGridView.Rows[e.RowIndex].ErrorText = errorMessage;
+          }
+        }
+      }
+    }
+
+    protected override void dataGridView_CellParsing(object sender, DataGridViewCellParsingEventArgs e) {
+      triggersOwnEvent(() => base.dataGridView_CellParsing(sender, e));
+    }
+
+    protected override void PasteValuesToDataGridView() {
+      triggersOwnEvent(() => base.PasteValuesToDataGridView());
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      rowsTextBox.ReadOnly = true;
+      columnsTextBox.ReadOnly = true;
+    }
+
+    protected override int[] Sort(IEnumerable<KeyValuePair<int, SortOrder>> sortedColumns) {
+      btnApplySort.Enabled = sortedColumns.Any();
+      return base.Sort(sortedColumns);
+    }
+
+    protected override void ClearSorting() {
+      btnApplySort.Enabled = false;
+      base.ClearSorting();
+    }
+
+    #endregion
 
     protected override void OnContentChanged() {
@@ -137,5 +174,5 @@
     }
 
-    void FilterLogic_FilterChanged(object sender, EventArgs e) {
+    private void FilterLogic_FilterChanged(object sender, EventArgs e) {
       OnContentChanged();
       searchIterator = null;
@@ -150,5 +187,5 @@
     }
 
-    void Content_Changed(object sender, DataPreprocessingChangedEventArgs e) {
+    private void Content_Changed(object sender, DataPreprocessingChangedEventArgs e) {
       if (notOwnEvent) {
         switch (e.Type) {
@@ -161,38 +198,14 @@
             break;
         }
-       }
+      }
       searchIterator = null;
     }
 
-    protected override void dataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) {
-      if (!dataGridView.ReadOnly) {
-        string errorMessage;
-        if (Content != null) {
-          if (dataGridView.IsCurrentCellInEditMode && Content.FilterLogic.IsFiltered) {
-            errorMessage = "A filter is active, you cannot modify data. Press ESC to exit edit mode.";
-          } else {
-            Content.DataGridLogic.Validate(e.FormattedValue.ToString(), out errorMessage, e.ColumnIndex);
-          }
-
-          if (!String.IsNullOrEmpty(errorMessage)) {
-            e.Cancel = true;
-            dataGridView.Rows[e.RowIndex].ErrorText = errorMessage;
-          }
-        }
-      }
-    }
-
-    protected override void dataGridView_CellParsing(object sender, DataGridViewCellParsingEventArgs e) {
-      triggersOwnEvent(() => base.dataGridView_CellParsing(sender, e));
-    }
-
-    protected override void PasteValuesToDataGridView() {
-      triggersOwnEvent(() => base.PasteValuesToDataGridView());
-    }
-
-    protected override void SetEnabledStateOfControls() {
-      base.SetEnabledStateOfControls();
-      rowsTextBox.ReadOnly = true;
-      columnsTextBox.ReadOnly = true;
+    private void dataGridView_MouseUp(object sender, MouseEventArgs e) {
+      if (!updateOnMouseUp)
+        return;
+
+      updateOnMouseUp = false;
+      dataGridView_SelectionChanged(sender, e);
     }
 
@@ -536,5 +549,5 @@
     }
 
-    void dataGridView_KeyDown(object sender, KeyEventArgs e) {
+    private void dataGridView_KeyDown(object sender, KeyEventArgs e) {
       var selectedRows = dataGridView.SelectedRows;
       if (e.KeyCode == Keys.Delete && selectedRows.Count > 0) {
@@ -556,14 +569,4 @@
     }
 
-    protected override int[] Sort(IEnumerable<KeyValuePair<int, SortOrder>> sortedColumns) {
-      btnApplySort.Enabled = sortedColumns.Any();
-      return base.Sort(sortedColumns);
-    }
-
-    protected override void ClearSorting() {
-      btnApplySort.Enabled = false;
-      base.ClearSorting();
-    }
-
     private IDictionary<int, IList<int>> GetSelectedCells() {
       IDictionary<int, IList<int>> selectedCells = new Dictionary<int, IList<int>>();
@@ -594,60 +597,4 @@
     }
 
-    private void ReplaceWithAverage_Column_Click(object sender, EventArgs e) {
-      ReplaceTransaction(() => {
-        Content.ManipulationLogic.ReplaceIndicesByAverageValue(GetSelectedCells(), false);
-      });
-    }
-    private void ReplaceWithAverage_Selection_Click(object sender, EventArgs e) {
-      ReplaceTransaction(() => {
-        Content.ManipulationLogic.ReplaceIndicesByAverageValue(GetSelectedCells(), true);
-      });
-    }
-
-    private void ReplaceWithMedian_Column_Click(object sender, EventArgs e) {
-      ReplaceTransaction(() => {
-        Content.ManipulationLogic.ReplaceIndicesByMedianValue(GetSelectedCells(), false);
-      });
-    }
-    private void ReplaceWithMedian_Selection_Click(object sender, EventArgs e) {
-      ReplaceTransaction(() => {
-        Content.ManipulationLogic.ReplaceIndicesByMedianValue(GetSelectedCells(), true);
-      });
-    }
-
-    private void ReplaceWithRandom_Column_Click(object sender, EventArgs e) {
-      ReplaceTransaction(() => {
-        Content.ManipulationLogic.ReplaceIndicesByRandomValue(GetSelectedCells(), false);
-      });
-    }
-    private void ReplaceWithRandom_Selection_Click(object sender, EventArgs e) {
-      ReplaceTransaction(() => {
-        Content.ManipulationLogic.ReplaceIndicesByRandomValue(GetSelectedCells(), true);
-      });
-    }
-
-    private void ReplaceWithMostCommon_Column_Click(object sender, EventArgs e) {
-      ReplaceTransaction(() => {
-        Content.ManipulationLogic.ReplaceIndicesByMostCommonValue(GetSelectedCells(), false);
-      });
-    }
-    private void ReplaceWithMostCommon_Selection_Click(object sender, EventArgs e) {
-      ReplaceTransaction(() => {
-        Content.ManipulationLogic.ReplaceIndicesByMostCommonValue(GetSelectedCells(), true);
-      });
-    }
-
-    private void ReplaceWithInterpolation_Column_Click(object sender, EventArgs e) {
-      ReplaceTransaction(() => {
-        Content.ManipulationLogic.ReplaceIndicesByLinearInterpolationOfNeighbours(GetSelectedCells());
-      });
-    }
-
-    private void ReplaceWithSmoothing_Selection_Click(object sender, EventArgs e) {
-      ReplaceTransaction(() => {
-        Content.ManipulationLogic.ReplaceIndicesBySmoothing(GetSelectedCells());
-      });
-    }
-
     private void btnSearch_Click(object sender, EventArgs e) {
       CreateFindAndReplaceDialog();
@@ -659,4 +606,65 @@
       findAndReplaceDialog.ActivateReplace();
     }
+
+    #region ContextMenu Events
+
+    private void ReplaceWithAverage_Column_Click(object sender, EventArgs e) {
+      ReplaceTransaction(() => {
+        Content.ManipulationLogic.ReplaceIndicesByAverageValue(GetSelectedCells(), false);
+      });
+    }
+    private void ReplaceWithAverage_Selection_Click(object sender, EventArgs e) {
+      ReplaceTransaction(() => {
+        Content.ManipulationLogic.ReplaceIndicesByAverageValue(GetSelectedCells(), true);
+      });
+    }
+
+    private void ReplaceWithMedian_Column_Click(object sender, EventArgs e) {
+      ReplaceTransaction(() => {
+        Content.ManipulationLogic.ReplaceIndicesByMedianValue(GetSelectedCells(), false);
+      });
+    }
+    private void ReplaceWithMedian_Selection_Click(object sender, EventArgs e) {
+      ReplaceTransaction(() => {
+        Content.ManipulationLogic.ReplaceIndicesByMedianValue(GetSelectedCells(), true);
+      });
+    }
+
+    private void ReplaceWithRandom_Column_Click(object sender, EventArgs e) {
+      ReplaceTransaction(() => {
+        Content.ManipulationLogic.ReplaceIndicesByRandomValue(GetSelectedCells(), false);
+      });
+    }
+    private void ReplaceWithRandom_Selection_Click(object sender, EventArgs e) {
+      ReplaceTransaction(() => {
+        Content.ManipulationLogic.ReplaceIndicesByRandomValue(GetSelectedCells(), true);
+      });
+    }
+
+    private void ReplaceWithMostCommon_Column_Click(object sender, EventArgs e) {
+      ReplaceTransaction(() => {
+        Content.ManipulationLogic.ReplaceIndicesByMostCommonValue(GetSelectedCells(), false);
+      });
+    }
+    private void ReplaceWithMostCommon_Selection_Click(object sender, EventArgs e) {
+      ReplaceTransaction(() => {
+        Content.ManipulationLogic.ReplaceIndicesByMostCommonValue(GetSelectedCells(), true);
+      });
+    }
+
+    private void ReplaceWithInterpolation_Column_Click(object sender, EventArgs e) {
+      ReplaceTransaction(() => {
+        Content.ManipulationLogic.ReplaceIndicesByLinearInterpolationOfNeighbours(GetSelectedCells());
+      });
+    }
+
+    private void ReplaceWithSmoothing_Selection_Click(object sender, EventArgs e) {
+      ReplaceTransaction(() => {
+        Content.ManipulationLogic.ReplaceIndicesBySmoothing(GetSelectedCells());
+      });
+    }
+    #endregion
+
+
   }
 }
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/DataGridContent.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/DataGridContent.cs	(revision 10963)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/DataGridContent.cs	(revision 10964)
@@ -35,14 +35,4 @@
     private readonly IFilterLogic filterLogic;
 
-    public DataGridContent(IDataGridLogic theDataGridLogic, IManipulationLogic theManipulationLogic, IFilterLogic theFilterLogic) {
-      dataGridLogic = theDataGridLogic;
-      manipulationLogic = theManipulationLogic;
-      filterLogic = theFilterLogic;
-    }
-
-    public DataGridContent(DataGridContent dataGridContent, Cloner cloner)
-      : base(dataGridContent, cloner) {
-    }
-
     public IManipulationLogic ManipulationLogic {
       get { return manipulationLogic; }
@@ -63,8 +53,4 @@
     public static new Image StaticItemImage {
       get { return HeuristicLab.Common.Resources.VSImageLibrary.Table; }
-    }
-
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new DataGridContent(this, cloner);
     }
 
@@ -118,7 +104,17 @@
     }
 
-    public bool Validate(string value, out string errorMessage) {
-      errorMessage = string.Empty;
-      return true;
+    public DataGridContent(IDataGridLogic theDataGridLogic, IManipulationLogic theManipulationLogic, IFilterLogic theFilterLogic) {
+      dataGridLogic = theDataGridLogic;
+      manipulationLogic = theManipulationLogic;
+      filterLogic = theFilterLogic;
+    }
+
+    public DataGridContent(DataGridContent dataGridContent, Cloner cloner)
+      : base(dataGridContent, cloner) {
+
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new DataGridContent(this, cloner);
     }
 
@@ -129,4 +125,20 @@
     public bool SetValue(string value, int rowIndex, int columnIndex) {
       return dataGridLogic.SetValue(value, columnIndex, rowIndex);
+    }
+
+    public event DataPreprocessingChangedEventHandler Changed {
+      add { dataGridLogic.Changed += value; }
+      remove { dataGridLogic.Changed -= value; }
+    }
+
+
+
+    #region unused stuff/not implemented but necessary due to IStringConvertibleMatrix
+
+    // Is not used since DataGridContentView overrides dataGridView_CellValidating and uses 
+    // DataGridLogic#Validate(string value, out string errorMessage, int columnIndex)
+    public bool Validate(string value, out string errorMessage) {
+      errorMessage = string.Empty;
+      return true;
     }
 
@@ -144,9 +156,6 @@
 
     public event EventHandler Reset;
+    #endregion
 
-    public event DataPreprocessingChangedEventHandler Changed {
-      add { dataGridLogic.Changed += value; }
-      remove { dataGridLogic.Changed -= value; }
-    }
   }
 }
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/FilterContent.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/FilterContent.cs	(revision 10963)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/FilterContent.cs	(revision 10964)
@@ -23,5 +23,4 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using System.Collections.Generic;
 using HeuristicLab.DataPreprocessing.Filter;
 
@@ -40,7 +39,4 @@
     public bool isAndCombination = true;
 
-    public FilterContent(IFilterLogic theFilterLogic) {
-      filterLogic = theFilterLogic;
-    }
 
     public IFilterLogic FilterLogic {
@@ -50,31 +46,28 @@
     }
 
-    public ICheckedItemCollection<IFilter> Filters
-    {
-      get
-      {
+    public ICheckedItemCollection<IFilter> Filters {
+      get {
         return this.filters;
       }
-      set
-      {
+      set {
         this.filters = value;
       }
     }
 
-    public bool IsAndCombination
-    {
-      get
-      {
+    public bool IsAndCombination {
+      get {
         return this.isAndCombination;
       }
-      set
-      {
+      set {
         this.isAndCombination = value;
       }
     }
 
-    public FilterContent(FilterContent content, Cloner cloner)
+    public FilterContent(IFilterLogic theFilterLogic) {
+      filterLogic = theFilterLogic;
+    }
+
+    protected FilterContent(FilterContent content, Cloner cloner)
       : base(content, cloner) {
-
     }
 
@@ -82,7 +75,4 @@
       return new FilterContent(this, cloner);
     }
-
-
-
   }
 }
