Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ComparisonFilterView.Designer.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ComparisonFilterView.Designer.cs	(revision 10636)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ComparisonFilterView.Designer.cs	(revision 10637)
@@ -84,4 +84,5 @@
       this.cbAttr.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
             | System.Windows.Forms.AnchorStyles.Right)));
+      this.cbAttr.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
       this.cbAttr.FormattingEnabled = true;
       this.cbAttr.Location = new System.Drawing.Point(92, 12);
@@ -89,4 +90,5 @@
       this.cbAttr.Size = new System.Drawing.Size(247, 21);
       this.cbAttr.TabIndex = 3;
+      this.cbAttr.SelectedIndexChanged += new System.EventHandler(this.cbAttr_SelectedIndexChanged);
       // 
       // cbFilterOperation
@@ -94,4 +96,5 @@
       this.cbFilterOperation.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
             | System.Windows.Forms.AnchorStyles.Right)));
+      this.cbFilterOperation.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
       this.cbFilterOperation.FormattingEnabled = true;
       this.cbFilterOperation.Location = new System.Drawing.Point(92, 39);
@@ -99,4 +102,5 @@
       this.cbFilterOperation.Size = new System.Drawing.Size(247, 21);
       this.cbFilterOperation.TabIndex = 4;
+      this.cbFilterOperation.SelectedIndexChanged += new System.EventHandler(this.cbFilterOperation_SelectedIndexChanged);
       // 
       // tbFilterData
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ComparisonFilterView.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ComparisonFilterView.cs	(revision 10636)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ComparisonFilterView.cs	(revision 10637)
@@ -20,4 +20,5 @@
 #endregion
 
+using System.Linq;
 using HeuristicLab.Core.Views;
 using HeuristicLab.Core;
@@ -26,4 +27,5 @@
 using HeuristicLab.MainForm;
 using System.Collections;
+using System;
 
 namespace HeuristicLab.DataPreprocessing.Views {
@@ -40,32 +42,99 @@
     }
 
-    //protected override void OnContentChanged() {
-    //  base.OnContentChanged();
-    //  cbAttr.Items.Clear();
-    //  cbFilterOperation.Items.Clear();
-    //  if (Content != null)
-    //  {
-    //    cbFilterOperation.Items.AddRange(Content.AllowedConstraintOperations.ToArray());
-    //    if (Content.ConstraintOperation != null)
-    //      cbFilterOperation.SelectedItem = Content.ConstraintOperation;
-    //    else if (cbFilterOperation.Items.Count != 0)
-    //      cbFilterOperation.SelectedIndex = 0;
-    //    UpdateColumnComboBox();
-    //    ReadOnly = Content.Active;
-    //  }
-    //}
 
+    protected override void OnContentChanged()
+    {
+      base.OnContentChanged();
+      cbAttr.Items.Clear(); //cmbConstraintColumn.Items.Clear();
+      cbFilterOperation.Items.Clear(); //cmbConstraintOperation.Items.Clear();
+      tbFilterData.Text = string.Empty;
+      if (Content != null)
+      {
+        cbFilterOperation.Items.AddRange(Content.AllowedConstraintOperations.ToArray());
+        if (Content.ConstraintOperation != null)
+          cbFilterOperation.SelectedItem = Content.ConstraintOperation;
+        else if (cbFilterOperation.Items.Count != 0)
+          cbFilterOperation.SelectedIndex = 0;
+        UpdateColumnComboBox();
+        ReadOnly = Content.Active;
+        if (Content.ConstraintData != null)
+        {
+          tbFilterData.Text = Content.ConstraintData.GetValue();
+        }
+      }
+    }
 
+    protected virtual void UpdateColumnComboBox()
+    {
+      this.cbAttr.Items.Clear();
+      if (Content.ConstrainedValue != null)
+      {
+        this.cbAttr.Items.AddRange(Content.ConstrainedValue.VariableNames.ToArray<string>());
+        //if (!string.IsNullOrEmpty(Content.ConstraintColumn))
+        this.cbAttr.SelectedItem = Content.ConstraintColumn;
+      }
+    }
 
-    //protected virtual void UpdateColumnComboBox()
-    //{
-    //  this.cbAttr.Items.Clear();
-    //  if (Content.ConstrainedValue != null)
-    //  {
-    //    this.cbAttr.Items.AddRange(((IStringConvertibleMatrix)Content.ConstrainedValue).ColumnNames.ToArray());
-    //    if (!string.IsNullOrEmpty(Content.ConstraintColumn))
-    //      this.cbAttr.SelectedItem = Content.ConstraintColumn;
-    //  }
-    //}
+    protected override void RegisterContentEvents()
+    {
+      base.RegisterContentEvents();
+      this.Content.ActiveChanged += new EventHandler(Content_ActiveChanged);
+      this.Content.ConstraintOperationChanged += new EventHandler(Content_ComparisonOperationChanged);
+      this.Content.ConstraintColumnChanged += new EventHandler(Content_ConstraintColumnChanged);
+      this.Content.ConstrainedValueChanged += new EventHandler(Content_ConstrainedValueChanged);
+    }
+
+    protected override void DeregisterContentEvents()
+    {
+      base.DeregisterContentEvents();
+      this.Content.ActiveChanged -= new EventHandler(Content_ActiveChanged);
+      this.Content.ConstraintOperationChanged -= new EventHandler(Content_ComparisonOperationChanged);
+      this.Content.ConstraintColumnChanged -= new EventHandler(Content_ConstraintColumnChanged);
+      this.Content.ConstrainedValueChanged += new EventHandler(Content_ConstrainedValueChanged);
+    }
+
+    protected virtual void Content_ConstrainedValueChanged(object sender, EventArgs e)
+    {
+      this.UpdateColumnComboBox();
+    }
+
+    protected virtual void Content_ConstraintColumnChanged(object sender, EventArgs e)
+    {
+      if (Content.ConstrainedValue != null)
+      {
+          cbAttr.SelectedItem = Content.ConstraintColumn;
+      }
+    }
+
+    protected virtual void Content_ComparisonOperationChanged(object sender, EventArgs e)
+    {
+      if (Content.ConstraintOperation != (ConstraintOperation)this.cbFilterOperation.SelectedItem)
+        this.cbFilterOperation.SelectedItem = Content.ConstraintOperation;
+    }
+
+    protected override void SetEnabledStateOfControls()
+    {
+      base.SetEnabledStateOfControls();
+      cbAttr.Enabled = !this.ReadOnly && Content != null;
+      cbFilterOperation.Enabled = !this.ReadOnly && Content != null;
+    }
+
+    private void cbAttr_SelectedIndexChanged(object sender, EventArgs e)
+    {
+      if (Content.ConstrainedValue != null)
+      {
+        Content.ConstraintColumn = Content.ConstrainedValue.GetColumnIndex(cbAttr.SelectedItem.ToString());
+      }
+    }
+
+    private void cbFilterOperation_SelectedIndexChanged(object sender, EventArgs e)
+    {
+      Content.ConstraintOperation = (ConstraintOperation)this.cbFilterOperation.SelectedItem;
+    }
+
+    protected virtual void Content_ActiveChanged(object sender, EventArgs e)
+    {
+      this.ReadOnly = Content.Active;
+    }
 
   }
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.resx
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.resx	(revision 10637)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.resx	(revision 10637)
@@ -0,0 +1,165 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="undoButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
+        JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAB+ElE
+        QVQ4T2P4//8/RRirIAxP3vItZvLmrzvm7f76aPnBr0dWHvw6ZdWhr1LIalA0IOO+DV93APGf7nVfnzeu
+        +PK4fsmXO3N3fn0MNOATsiFwDd2rXv1fduKrAZi97uuy/o3ffqdOevfGpeDEb+vU7X/ME7Z8d6+4+3Hm
+        9q9vgAbcRDEAKMDZuOTl/3kHvl6tX/G1YcKmb3/iep7/cy04/t8uY/cv09g1x13ytz60jF/+J6zj3c+l
+        B77eRzEAhItnPv+fNevz/8I5X/5H9nx8YZW85a9F4oYfprEr80HyAbXbVQwjFr9wLb/9vmHplz0YBiT1
+        Pfvv3fTmf3Tv5/9lc9781/CetNokZoUjTF7BoY7ZLuvQb9eyO68bVn45BBOHGxDU/PS/WfH9/55Nr8Au
+        Sex59L9u8VtLmDzQAFa7zEN/veqefWte+WULTBxugFPF4/8ORdf+W2Ue/28Sv+2/YdTa/xo+U4FSEHmz
+        uPVKtpkH/wW0vP5bMP1xKUwcbgA6BgUsMl/da5K7a9ntP2mT3//r3fCVDSYOV0AIW6TsuxjS8eFfWN35
+        XGRxFEXYcFzfeyWH/Asx/i0f/vlVXvmmFTCbEVkeRTE27FH92Nm/5dMvj5KLP42jVnmhy6NwsOGo3s+R
+        ziXXGk1j1olik8cQIBVjFSQe/2cAAG4MzKZBtgOMAAAAAElFTkSuQmCC
+</value>
+  </data>
+  <metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <data name="applyInNewTabButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
+        JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAAsElE
+        QVQ4T2P4//8/RRirYNn+bDds4tgwVsGEGRH/iTUEqyDIAMsyfaIMwSoYNSXo/4Zbi4kyBKtg8ARvkEai
+        DMEq6NPlDDYAhKMWBeA1BEMAhB2bLf5nbIgFa7Zt1v+vU6zwXyKNG0SroatF4cCweY0eimb+BBasmkEY
+        QwCE9UqVidIMwlgFVfKliNIMwlgFpTMEidIMwlgFRZI5idIMwlgFidUMwlgFScFYBYnH/xkAJP3E6UxO
+        vJ8AAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="exportProblemButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
+        JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsRAAALEQF/ZF+RAAACPklE
+        QVQ4T6WS70uTURTH9y/03jdBL3prU2O4FqvBU66hLB2GFtKvJ9Isfy3TJEXLVHT5A7QVLp20Wk3CiUb+
+        AH8gJmIsJSs1l7TEoabYRDD4ds99dI9Le1MHzvPi3OfzufeeexQA/iv5p7MjAEp32xpaXat45lhGc5Mf
+        j6zzqKv9BkuVF/dLZ1BU+Bn5eR+Qkz2OG9c9DN0SENjbA9TWbFDxr7G+sQl9Yi/OJL7iyUISuF6ucEF5
+        2Q8q7hkE+5fXcdT4GkqlCFOCk8qSwPF0iQuKCr9TcVdsw198K4gwuJF3axanjS20JAlsjQtccNM8TcWQ
+        2Am/n/LjoOBCZsYk4mJttCwJGup9XJB+bZyKwfgTHvL4EKZ1QBRHYTBY6RdJUFM9xwXi5VEq8tgL7hn5
+        in3RTUg+24+YmDr6TRJUlM+iuwvsKYGUC29hOjfIu00NozvTsWlnCe5DvOkNBMEiC0qKp9DuBpsBoMX+
+        i737T5TeW+RNpYbRndNSPUH4VFwbdLoyWXA7fxLO58AT2yYbnAD0SRkhaTxvRtLVAgmOZfBJJ7TaYllg
+        zplgMFD9IMB3JkjBliLUAsY+LWBiZhFi9l0c17dyWH3MDo2mQBbQWFofInhsEhB8JbcSH71L8M6vIuuO
+        BZFaO4ObEXnkMdTRubIgLfUdu/cahw/onNh/SMCL9gG4u4bQ3TeCweExnDCYoNQ0IorB4aoGqFSZIYL4
+        SxcH+HjShNGQ0DvTU1G3qWF0Z9qVkuDDUemy4N8Tit/kKu4LI/ykxwAAAABJRU5ErkJggg==
+</value>
+  </data>
+</root>
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FilterView.Designer.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FilterView.Designer.cs	(revision 10636)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FilterView.Designer.cs	(revision 10637)
@@ -31,5 +31,12 @@
       this.groupBoxFilter = new System.Windows.Forms.GroupBox();
       this.groupBoxFilterInfo = new System.Windows.Forms.GroupBox();
+      this.lblPercentage = new System.Windows.Forms.Label();
+      this.tbPercentage = new System.Windows.Forms.TextBox();
+      this.tbFiltered = new System.Windows.Forms.TextBox();
+      this.lblFiltered = new System.Windows.Forms.Label();
+      this.tbTotal = new System.Windows.Forms.TextBox();
+      this.lblTotal = new System.Windows.Forms.Label();
       this.applyFilterButton = new System.Windows.Forms.Button();
+      this.groupBoxFilterInfo.SuspendLayout();
       this.SuspendLayout();
       // 
@@ -50,4 +57,10 @@
             | System.Windows.Forms.AnchorStyles.Left) 
             | System.Windows.Forms.AnchorStyles.Right)));
+      this.groupBoxFilterInfo.Controls.Add(this.lblPercentage);
+      this.groupBoxFilterInfo.Controls.Add(this.tbPercentage);
+      this.groupBoxFilterInfo.Controls.Add(this.tbFiltered);
+      this.groupBoxFilterInfo.Controls.Add(this.lblFiltered);
+      this.groupBoxFilterInfo.Controls.Add(this.tbTotal);
+      this.groupBoxFilterInfo.Controls.Add(this.lblTotal);
       this.groupBoxFilterInfo.Location = new System.Drawing.Point(4, 337);
       this.groupBoxFilterInfo.Name = "groupBoxFilterInfo";
@@ -56,4 +69,61 @@
       this.groupBoxFilterInfo.TabStop = false;
       this.groupBoxFilterInfo.Text = "Filter Info";
+      // 
+      // lblPercentage
+      // 
+      this.lblPercentage.AutoSize = true;
+      this.lblPercentage.Location = new System.Drawing.Point(15, 74);
+      this.lblPercentage.Name = "lblPercentage";
+      this.lblPercentage.Size = new System.Drawing.Size(65, 13);
+      this.lblPercentage.TabIndex = 11;
+      this.lblPercentage.Text = "Percentage:";
+      // 
+      // tbPercentage
+      // 
+      this.tbPercentage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.tbPercentage.Enabled = false;
+      this.tbPercentage.Location = new System.Drawing.Point(104, 71);
+      this.tbPercentage.Name = "tbPercentage";
+      this.tbPercentage.Size = new System.Drawing.Size(549, 20);
+      this.tbPercentage.TabIndex = 10;
+      // 
+      // tbFiltered
+      // 
+      this.tbFiltered.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.tbFiltered.Enabled = false;
+      this.tbFiltered.Location = new System.Drawing.Point(104, 45);
+      this.tbFiltered.Name = "tbFiltered";
+      this.tbFiltered.Size = new System.Drawing.Size(549, 20);
+      this.tbFiltered.TabIndex = 9;
+      // 
+      // lblFiltered
+      // 
+      this.lblFiltered.AutoSize = true;
+      this.lblFiltered.Location = new System.Drawing.Point(15, 47);
+      this.lblFiltered.Name = "lblFiltered";
+      this.lblFiltered.Size = new System.Drawing.Size(41, 13);
+      this.lblFiltered.TabIndex = 8;
+      this.lblFiltered.Text = "Filtered";
+      // 
+      // tbTotal
+      // 
+      this.tbTotal.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.tbTotal.Enabled = false;
+      this.tbTotal.Location = new System.Drawing.Point(104, 19);
+      this.tbTotal.Name = "tbTotal";
+      this.tbTotal.Size = new System.Drawing.Size(549, 20);
+      this.tbTotal.TabIndex = 7;
+      // 
+      // lblTotal
+      // 
+      this.lblTotal.AutoSize = true;
+      this.lblTotal.Location = new System.Drawing.Point(15, 21);
+      this.lblTotal.Name = "lblTotal";
+      this.lblTotal.Size = new System.Drawing.Size(34, 13);
+      this.lblTotal.TabIndex = 6;
+      this.lblTotal.Text = "Total:";
       // 
       // applyFilterButton
@@ -77,4 +147,6 @@
       this.Name = "FilterView";
       this.Size = new System.Drawing.Size(670, 506);
+      this.groupBoxFilterInfo.ResumeLayout(false);
+      this.groupBoxFilterInfo.PerformLayout();
       this.ResumeLayout(false);
 
@@ -86,4 +158,10 @@
     private System.Windows.Forms.GroupBox groupBoxFilterInfo;
     private System.Windows.Forms.Button applyFilterButton;
+    private System.Windows.Forms.TextBox tbTotal;
+    private System.Windows.Forms.Label lblTotal;
+    private System.Windows.Forms.Label lblPercentage;
+    private System.Windows.Forms.TextBox tbPercentage;
+    private System.Windows.Forms.TextBox tbFiltered;
+    private System.Windows.Forms.Label lblFiltered;
 
 
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FilterView.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FilterView.cs	(revision 10636)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FilterView.cs	(revision 10637)
@@ -23,9 +23,14 @@
     {
       InitializeComponent();
+      tbTotal.Text = "0";
+      tbFiltered.Text = "0";
+      tbPercentage.Text = "0%";
       filterView = new CheckedItemCollectionView<IFilter>();
       filterView.Dock = DockStyle.Fill;
+      filterView.Content = new CheckedItemCollection<IFilter>();
+      filterView.Content.ItemsAdded += Content_ItemsAdded;
+      filterView.Content.CheckedItemsChanged += Content_CheckedItemsChanged;
+      //filterView.ReadOnly = false;
       groupBoxFilter.Controls.Add(filterView);
-      filterView.Content = new CheckedItemCollection<IFilter>();
-      filterView.Content.CheckedItemsChanged += Content_CheckedItemsChanged;
     }
 
@@ -33,9 +38,16 @@
     {
       get { return (FilterContent)base.Content; }
-      set { base.Content = value; }
+      set { base.Content = value; tbTotal.Text = Content.FilterLogic.PreprocessingData.Rows.ToString(); }
     }
 
     private void Content_CheckedItemsChanged(object sender, Collections.CollectionItemsChangedEventArgs<IFilter> e)
     {
+      //change active state of filters
+      foreach (IFilter filter in e.Items)
+      {
+        filter.Active = !filter.Active;
+      }
+      List<IFilter> filters = filterView.ItemCollection.ToList<IFilter>();
+      bool[] result = Content.FilterLogic.Preview(filters);
       //todo: inform Logic for new filter
     }
@@ -46,4 +58,13 @@
     }
 
+    //whenever a new filter is added the preprocessing data is set to the filter
+    private void Content_ItemsAdded(object sender, Collections.CollectionItemsChangedEventArgs<IFilter> e)
+    {
+      foreach (IFilter filter in e.Items)
+      {
+        filter.ConstrainedValue = Content.FilterLogic.PreprocessingData;
+      }
+    }
+
   }
 }
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 10636)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/HeuristicLab.DataPreprocessing.Views-3.3.csproj	(revision 10637)
@@ -22,4 +22,5 @@
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
+    <UseVSHostingProcess>false</UseVSHostingProcess>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
@@ -220,4 +221,15 @@
     </ProjectReference>
   </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="ComparisonFilterView.resx">
+      <DependentUpon>ComparisonFilterView.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="DataPreprocessingView.resx">
+      <DependentUpon>DataPreprocessingView.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="FilterView.resx">
+      <DependentUpon>FilterView.cs</DependentUpon>
+    </EmbeddedResource>
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <PropertyGroup>
