Index: branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/OrdinalComparisonDateTimeFilterView.Designer.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/OrdinalComparisonDateTimeFilterView.Designer.cs	(revision 5612)
+++ branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/OrdinalComparisonDateTimeFilterView.Designer.cs	(revision 5612)
@@ -0,0 +1,116 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Clients.OKB.Query {
+  partial class OrdinalComparisonDateTimeFilterView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing) {
+        if (components != null) components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.components = new System.ComponentModel.Container();
+      this.valueTextBox = new System.Windows.Forms.TextBox();
+      this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
+      this.splitContainer1.Panel1.SuspendLayout();
+      this.splitContainer1.Panel2.SuspendLayout();
+      this.splitContainer1.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
+      this.splitContainer2.Panel1.SuspendLayout();
+      this.splitContainer2.Panel2.SuspendLayout();
+      this.splitContainer2.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+      this.SuspendLayout();
+      // 
+      // splitContainer1
+      // 
+      // 
+      // splitContainer2
+      // 
+      // 
+      // splitContainer2.Panel2
+      // 
+      this.splitContainer2.Panel2.Controls.Add(this.valueTextBox);
+      // 
+      // valueTextBox
+      // 
+      this.valueTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+      this.valueTextBox.Location = new System.Drawing.Point(3, 2);
+      this.valueTextBox.Name = "valueTextBox";
+      this.valueTextBox.Size = new System.Drawing.Size(280, 20);
+      this.valueTextBox.TabIndex = 0;
+      this.valueTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.valueTextBox_KeyDown);
+      this.valueTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.valueTextBox_Validating);
+      this.valueTextBox.Validated += new System.EventHandler(this.valueTextBox_Validated);
+      // 
+      // errorProvider
+      // 
+      this.errorProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink;
+      this.errorProvider.ContainerControl = this;
+      // 
+      // NameOrdinalComparisonDateTimeFilterView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Name = "NameOrdinalComparisonDateTimeFilterView";
+      this.splitContainer1.Panel1.ResumeLayout(false);
+      this.splitContainer1.Panel2.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+      this.splitContainer1.ResumeLayout(false);
+      this.splitContainer2.Panel1.ResumeLayout(false);
+      this.splitContainer2.Panel2.ResumeLayout(false);
+      this.splitContainer2.Panel2.PerformLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
+      this.splitContainer2.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.TextBox valueTextBox;
+    private System.Windows.Forms.ErrorProvider errorProvider;
+
+
+
+
+
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/OrdinalComparisonDateTimeFilterView.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/OrdinalComparisonDateTimeFilterView.cs	(revision 5612)
+++ branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/OrdinalComparisonDateTimeFilterView.cs	(revision 5612)
@@ -0,0 +1,76 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Windows.Forms;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+
+namespace HeuristicLab.Clients.OKB.Query {
+  [View("OrdinalComparisonDateTimeFilter View")]
+  [Content(typeof(OrdinalComparisonDateTimeFilter), true)]
+  public partial class OrdinalComparisonDateTimeFilterView : OrdinalComparisonFilterView {
+    public new OrdinalComparisonDateTimeFilter Content {
+      get { return (OrdinalComparisonDateTimeFilter)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public OrdinalComparisonDateTimeFilterView() {
+      InitializeComponent();
+      errorProvider.SetIconAlignment(valueTextBox, ErrorIconAlignment.MiddleLeft);
+      errorProvider.SetIconPadding(valueTextBox, 2);
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      valueTextBox.Text = Content == null ? string.Empty : Content.Value.ToString();
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      valueTextBox.Enabled = Content != null;
+      valueTextBox.ReadOnly = ReadOnly;
+    }
+
+    private void valueTextBox_KeyDown(object sender, KeyEventArgs e) {
+      if ((e.KeyCode == Keys.Enter) || (e.KeyCode == Keys.Return))
+        label.Focus();  // set focus on label to validate data
+      if (e.KeyCode == Keys.Escape) {
+        valueTextBox.Text = Content.Value.ToString();
+        label.Focus();  // set focus on label to validate data
+      }
+    }
+    private void valueTextBox_Validating(object sender, System.ComponentModel.CancelEventArgs e) {
+      DateTime val;
+      if (!DateTime.TryParse(valueTextBox.Text, out val)) {
+        e.Cancel = true;
+        errorProvider.SetError(valueTextBox, "Invalid DateTime Value");
+        valueTextBox.SelectAll();
+      }
+    }
+    private void valueTextBox_Validated(object sender, System.EventArgs e) {
+      if (Content != null) {
+        Content.Value = DateTime.Parse(valueTextBox.Text);
+        errorProvider.SetError(valueTextBox, string.Empty);
+      }
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/OrdinalComparisonFloatFilterView.Designer.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/OrdinalComparisonFloatFilterView.Designer.cs	(revision 5612)
+++ branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/OrdinalComparisonFloatFilterView.Designer.cs	(revision 5612)
@@ -0,0 +1,116 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Clients.OKB.Query {
+  partial class OrdinalComparisonFloatFilterView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing) {
+        if (components != null) components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.components = new System.ComponentModel.Container();
+      this.valueTextBox = new System.Windows.Forms.TextBox();
+      this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
+      this.splitContainer1.Panel1.SuspendLayout();
+      this.splitContainer1.Panel2.SuspendLayout();
+      this.splitContainer1.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
+      this.splitContainer2.Panel1.SuspendLayout();
+      this.splitContainer2.Panel2.SuspendLayout();
+      this.splitContainer2.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+      this.SuspendLayout();
+      // 
+      // splitContainer1
+      // 
+      // 
+      // splitContainer2
+      // 
+      // 
+      // splitContainer2.Panel2
+      // 
+      this.splitContainer2.Panel2.Controls.Add(this.valueTextBox);
+      // 
+      // valueTextBox
+      // 
+      this.valueTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+      this.valueTextBox.Location = new System.Drawing.Point(3, 2);
+      this.valueTextBox.Name = "valueTextBox";
+      this.valueTextBox.Size = new System.Drawing.Size(280, 20);
+      this.valueTextBox.TabIndex = 0;
+      this.valueTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.valueTextBox_KeyDown);
+      this.valueTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.valueTextBox_Validating);
+      this.valueTextBox.Validated += new System.EventHandler(this.valueTextBox_Validated);
+      // 
+      // errorProvider
+      // 
+      this.errorProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink;
+      this.errorProvider.ContainerControl = this;
+      // 
+      // NameOrdinalComparisonFloatFilterView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Name = "NameOrdinalComparisonFloatFilterView";
+      this.splitContainer1.Panel1.ResumeLayout(false);
+      this.splitContainer1.Panel2.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+      this.splitContainer1.ResumeLayout(false);
+      this.splitContainer2.Panel1.ResumeLayout(false);
+      this.splitContainer2.Panel2.ResumeLayout(false);
+      this.splitContainer2.Panel2.PerformLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
+      this.splitContainer2.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.TextBox valueTextBox;
+    private System.Windows.Forms.ErrorProvider errorProvider;
+
+
+
+
+
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/OrdinalComparisonFloatFilterView.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/OrdinalComparisonFloatFilterView.cs	(revision 5612)
+++ branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/OrdinalComparisonFloatFilterView.cs	(revision 5612)
@@ -0,0 +1,75 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Windows.Forms;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+
+namespace HeuristicLab.Clients.OKB.Query {
+  [View("OrdinalComparisonFloatFilter View")]
+  [Content(typeof(OrdinalComparisonFloatFilter), true)]
+  public partial class OrdinalComparisonFloatFilterView : OrdinalComparisonFilterView {
+    public new OrdinalComparisonFloatFilter Content {
+      get { return (OrdinalComparisonFloatFilter)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public OrdinalComparisonFloatFilterView() {
+      InitializeComponent();
+      errorProvider.SetIconAlignment(valueTextBox, ErrorIconAlignment.MiddleLeft);
+      errorProvider.SetIconPadding(valueTextBox, 2);
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      valueTextBox.Text = Content == null ? string.Empty : Content.Value.ToString();
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      valueTextBox.Enabled = Content != null;
+      valueTextBox.ReadOnly = ReadOnly;
+    }
+
+    private void valueTextBox_KeyDown(object sender, KeyEventArgs e) {
+      if ((e.KeyCode == Keys.Enter) || (e.KeyCode == Keys.Return))
+        label.Focus();  // set focus on label to validate data
+      if (e.KeyCode == Keys.Escape) {
+        valueTextBox.Text = Content.Value.ToString();
+        label.Focus();  // set focus on label to validate data
+      }
+    }
+    private void valueTextBox_Validating(object sender, System.ComponentModel.CancelEventArgs e) {
+      float val;
+      if (!float.TryParse(valueTextBox.Text, out val)) {
+        e.Cancel = true;
+        errorProvider.SetError(valueTextBox, "Invalid Float Value");
+        valueTextBox.SelectAll();
+      }
+    }
+    private void valueTextBox_Validated(object sender, System.EventArgs e) {
+      if (Content != null) {
+        Content.Value = float.Parse(valueTextBox.Text);
+        errorProvider.SetError(valueTextBox, string.Empty);
+      }
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/OrdinalComparisonIntFilterView.Designer.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/OrdinalComparisonIntFilterView.Designer.cs	(revision 5612)
+++ branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/OrdinalComparisonIntFilterView.Designer.cs	(revision 5612)
@@ -0,0 +1,116 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Clients.OKB.Query {
+  partial class OrdinalComparisonIntFilterView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing) {
+        if (components != null) components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.components = new System.ComponentModel.Container();
+      this.valueTextBox = new System.Windows.Forms.TextBox();
+      this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
+      this.splitContainer1.Panel1.SuspendLayout();
+      this.splitContainer1.Panel2.SuspendLayout();
+      this.splitContainer1.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
+      this.splitContainer2.Panel1.SuspendLayout();
+      this.splitContainer2.Panel2.SuspendLayout();
+      this.splitContainer2.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+      this.SuspendLayout();
+      // 
+      // splitContainer1
+      // 
+      // 
+      // splitContainer2
+      // 
+      // 
+      // splitContainer2.Panel2
+      // 
+      this.splitContainer2.Panel2.Controls.Add(this.valueTextBox);
+      // 
+      // valueTextBox
+      // 
+      this.valueTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+      this.valueTextBox.Location = new System.Drawing.Point(3, 2);
+      this.valueTextBox.Name = "valueTextBox";
+      this.valueTextBox.Size = new System.Drawing.Size(280, 20);
+      this.valueTextBox.TabIndex = 0;
+      this.valueTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.valueTextBox_KeyDown);
+      this.valueTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.valueTextBox_Validating);
+      this.valueTextBox.Validated += new System.EventHandler(this.valueTextBox_Validated);
+      // 
+      // errorProvider
+      // 
+      this.errorProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink;
+      this.errorProvider.ContainerControl = this;
+      // 
+      // OrdinalComparisonIntFilterView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Name = "OrdinalComparisonIntFilterView";
+      this.splitContainer1.Panel1.ResumeLayout(false);
+      this.splitContainer1.Panel2.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+      this.splitContainer1.ResumeLayout(false);
+      this.splitContainer2.Panel1.ResumeLayout(false);
+      this.splitContainer2.Panel2.ResumeLayout(false);
+      this.splitContainer2.Panel2.PerformLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
+      this.splitContainer2.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.TextBox valueTextBox;
+    private System.Windows.Forms.ErrorProvider errorProvider;
+
+
+
+
+
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/OrdinalComparisonIntFilterView.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/OrdinalComparisonIntFilterView.cs	(revision 5612)
+++ branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/OrdinalComparisonIntFilterView.cs	(revision 5612)
@@ -0,0 +1,75 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Windows.Forms;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+
+namespace HeuristicLab.Clients.OKB.Query {
+  [View("OrdinalComparisonIntFilter View")]
+  [Content(typeof(OrdinalComparisonIntFilter), true)]
+  public partial class OrdinalComparisonIntFilterView : OrdinalComparisonFilterView {
+    public new OrdinalComparisonIntFilter Content {
+      get { return (OrdinalComparisonIntFilter)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public OrdinalComparisonIntFilterView() {
+      InitializeComponent();
+      errorProvider.SetIconAlignment(valueTextBox, ErrorIconAlignment.MiddleLeft);
+      errorProvider.SetIconPadding(valueTextBox, 2);
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      valueTextBox.Text = Content == null ? string.Empty : Content.Value.ToString();
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      valueTextBox.Enabled = Content != null;
+      valueTextBox.ReadOnly = ReadOnly;
+    }
+
+    private void valueTextBox_KeyDown(object sender, KeyEventArgs e) {
+      if ((e.KeyCode == Keys.Enter) || (e.KeyCode == Keys.Return))
+        label.Focus();  // set focus on label to validate data
+      if (e.KeyCode == Keys.Escape) {
+        valueTextBox.Text = Content.Value.ToString();
+        label.Focus();  // set focus on label to validate data
+      }
+    }
+    private void valueTextBox_Validating(object sender, System.ComponentModel.CancelEventArgs e) {
+      int val;
+      if (!int.TryParse(valueTextBox.Text, out val)) {
+        e.Cancel = true;
+        errorProvider.SetError(valueTextBox, "Invalid Int Value");
+        valueTextBox.SelectAll();
+      }
+    }
+    private void valueTextBox_Validated(object sender, System.EventArgs e) {
+      if (Content != null) {
+        Content.Value = int.Parse(valueTextBox.Text);
+        errorProvider.SetError(valueTextBox, string.Empty);
+      }
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/QueryView.Designer.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/QueryView.Designer.cs	(revision 5611)
+++ branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/QueryView.Designer.cs	(revision 5612)
@@ -52,5 +52,7 @@
       this.filtersGroupBox = new System.Windows.Forms.GroupBox();
       this.filterPanel = new System.Windows.Forms.Panel();
+      this.refreshFiltersButton = new System.Windows.Forms.Button();
       this.resultsGroupBox = new System.Windows.Forms.GroupBox();
+      this.includeBinaryValuesCheckBox = new System.Windows.Forms.CheckBox();
       this.deserializeBlobsCheckBox = new System.Windows.Forms.CheckBox();
       this.resultsInfoPanel = new System.Windows.Forms.Panel();
@@ -92,5 +94,5 @@
       this.runCollectionView.ReadOnly = false;
       this.runCollectionView.Size = new System.Drawing.Size(826, 223);
-      this.runCollectionView.TabIndex = 2;
+      this.runCollectionView.TabIndex = 3;
       // 
       // splitContainer
@@ -120,4 +122,5 @@
                   | System.Windows.Forms.AnchorStyles.Right)));
       this.filtersGroupBox.Controls.Add(this.filterPanel);
+      this.filtersGroupBox.Controls.Add(this.refreshFiltersButton);
       this.filtersGroupBox.Location = new System.Drawing.Point(0, 0);
       this.filtersGroupBox.Name = "filtersGroupBox";
@@ -134,6 +137,17 @@
       this.filterPanel.Location = new System.Drawing.Point(6, 19);
       this.filterPanel.Name = "filterPanel";
-      this.filterPanel.Size = new System.Drawing.Size(826, 254);
-      this.filterPanel.TabIndex = 0;
+      this.filterPanel.Size = new System.Drawing.Size(796, 254);
+      this.filterPanel.TabIndex = 1;
+      // 
+      // refreshFiltersButton
+      // 
+      this.refreshFiltersButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+      this.refreshFiltersButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Refresh;
+      this.refreshFiltersButton.Location = new System.Drawing.Point(808, 21);
+      this.refreshFiltersButton.Name = "refreshFiltersButton";
+      this.refreshFiltersButton.Size = new System.Drawing.Size(24, 24);
+      this.refreshFiltersButton.TabIndex = 0;
+      this.refreshFiltersButton.UseVisualStyleBackColor = true;
+      this.refreshFiltersButton.Click += new System.EventHandler(this.refreshFiltersButton_Click);
       // 
       // resultsGroupBox
@@ -142,4 +156,5 @@
                   | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
+      this.resultsGroupBox.Controls.Add(this.includeBinaryValuesCheckBox);
       this.resultsGroupBox.Controls.Add(this.deserializeBlobsCheckBox);
       this.resultsGroupBox.Controls.Add(this.refreshResultsButton);
@@ -152,4 +167,16 @@
       this.resultsGroupBox.Text = "Results";
       // 
+      // includeBinaryValuesCheckBox
+      // 
+      this.includeBinaryValuesCheckBox.AutoSize = true;
+      this.includeBinaryValuesCheckBox.Checked = true;
+      this.includeBinaryValuesCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
+      this.includeBinaryValuesCheckBox.Location = new System.Drawing.Point(74, 24);
+      this.includeBinaryValuesCheckBox.Name = "includeBinaryValuesCheckBox";
+      this.includeBinaryValuesCheckBox.Size = new System.Drawing.Size(128, 17);
+      this.includeBinaryValuesCheckBox.TabIndex = 1;
+      this.includeBinaryValuesCheckBox.Text = "&Include Binary Values";
+      this.includeBinaryValuesCheckBox.UseVisualStyleBackColor = true;
+      // 
       // deserializeBlobsCheckBox
       // 
@@ -157,9 +184,9 @@
       this.deserializeBlobsCheckBox.Checked = true;
       this.deserializeBlobsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
-      this.deserializeBlobsCheckBox.Location = new System.Drawing.Point(62, 24);
+      this.deserializeBlobsCheckBox.Location = new System.Drawing.Point(225, 24);
       this.deserializeBlobsCheckBox.Name = "deserializeBlobsCheckBox";
-      this.deserializeBlobsCheckBox.Size = new System.Drawing.Size(106, 17);
-      this.deserializeBlobsCheckBox.TabIndex = 1;
-      this.deserializeBlobsCheckBox.Text = "&Deserialize Blobs";
+      this.deserializeBlobsCheckBox.Size = new System.Drawing.Size(144, 17);
+      this.deserializeBlobsCheckBox.TabIndex = 2;
+      this.deserializeBlobsCheckBox.Text = "&Deserialize Binary Values";
       this.deserializeBlobsCheckBox.UseVisualStyleBackColor = true;
       // 
@@ -271,4 +298,6 @@
     private System.Windows.Forms.Panel filtersInfoPanel;
     private System.Windows.Forms.Label filtersInfoLabel;
+    private System.Windows.Forms.Button refreshFiltersButton;
+    private System.Windows.Forms.CheckBox includeBinaryValuesCheckBox;
 
   }
Index: branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/QueryView.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/QueryView.cs	(revision 5611)
+++ branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Query/Views/QueryView.cs	(revision 5612)
@@ -31,4 +31,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Persistence.Default.Xml;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Clients.OKB.Query {
@@ -71,27 +72,7 @@
     }
 
-    private void Content_Refreshing(object sender, EventArgs e) {
-      if (InvokeRequired) {
-        Invoke(new EventHandler(Content_Refreshing), sender, e);
-      } else {
-        Cursor = Cursors.AppStarting;
-        filtersInfoPanel.Visible = true;
-        splitContainer.Enabled = false;
-      }
-    }
-    private void Content_Refreshed(object sender, EventArgs e) {
-      if (InvokeRequired) {
-        Invoke(new EventHandler(Content_Refreshed), sender, e);
-      } else {
-        CreateFilterView();
-        filtersInfoPanel.Visible = false;
-        splitContainer.Enabled = true;
-        Cursor = Cursors.Default;
-        SetEnabledStateOfControls();
-      }
-    }
-
     #region Load Results
     private void LoadResultsAsync(int batchSize) {
+      bool includeBinaryValues = includeBinaryValuesCheckBox.Checked;
       bool deserialize = deserializeBlobsCheckBox.Checked;
 
@@ -116,9 +97,8 @@
 
         RunCollection runs = new RunCollection();
-        runs.CollectionReset += new Collections.CollectionItemsChangedEventHandler<IRun>(runs_CollectionReset);
         runCollectionView.Content = runs;
         while (ids.Count() > 0) {
           cancellationToken.ThrowIfCancellationRequested();
-          runs.AddRange(QueryClient.Instance.GetRuns(ids.Take(batchSize), true).Select(x => ConvertToOptimizationRun(x, deserialize)));
+          runs.AddRange(QueryClient.Instance.GetRuns(ids.Take(batchSize), includeBinaryValues).Select(x => ConvertToOptimizationRun(x, deserialize)));
           ids = ids.Skip(batchSize);
           Invoke(new Action(() => {
@@ -139,8 +119,30 @@
       });
     }
-
-    void runs_CollectionReset(object sender, Collections.CollectionItemsChangedEventArgs<IRun> e) {
-    }
     #endregion
+
+    private void Content_Refreshing(object sender, EventArgs e) {
+      if (InvokeRequired) {
+        Invoke(new EventHandler(Content_Refreshing), sender, e);
+      } else {
+        Cursor = Cursors.AppStarting;
+        filtersInfoPanel.Visible = true;
+        splitContainer.Enabled = false;
+      }
+    }
+    private void Content_Refreshed(object sender, EventArgs e) {
+      if (InvokeRequired) {
+        Invoke(new EventHandler(Content_Refreshed), sender, e);
+      } else {
+        CreateFilterView();
+        filtersInfoPanel.Visible = false;
+        splitContainer.Enabled = true;
+        Cursor = Cursors.Default;
+        SetEnabledStateOfControls();
+      }
+    }
+
+    private void refreshFiltersButton_Click(object sender, EventArgs e) {
+      Content.RefreshAsync(new Action<Exception>((Exception ex) => ErrorHandling.ShowErrorDialog(this, "Refresh failed.", ex)));
+    }
 
     private void refreshResultsButton_Click(object sender, EventArgs e) {
