Index: /branches/ParameterConfigurationEncoding/HeuristicLab.Encodings.ParameterConfigurationEncoding.Views/3.3/HeuristicLab.Encodings.ParameterConfigurationEncoding.Views-3.3.csproj
===================================================================
--- /branches/ParameterConfigurationEncoding/HeuristicLab.Encodings.ParameterConfigurationEncoding.Views/3.3/HeuristicLab.Encodings.ParameterConfigurationEncoding.Views-3.3.csproj	(revision 8543)
+++ /branches/ParameterConfigurationEncoding/HeuristicLab.Encodings.ParameterConfigurationEncoding.Views/3.3/HeuristicLab.Encodings.ParameterConfigurationEncoding.Views-3.3.csproj	(revision 8544)
@@ -106,10 +106,4 @@
       <SubType>Code</SubType>
     </Compile>
-    <Compile Include="ObjectSelectorDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="ObjectSelectorDialog.Designer.cs">
-      <DependentUpon>ObjectSelectorDialog.cs</DependentUpon>
-    </Compile>
     <Compile Include="OptimizableView.cs">
       <SubType>UserControl</SubType>
Index: anches/ParameterConfigurationEncoding/HeuristicLab.Encodings.ParameterConfigurationEncoding.Views/3.3/ObjectSelectorDialog.Designer.cs
===================================================================
--- /branches/ParameterConfigurationEncoding/HeuristicLab.Encodings.ParameterConfigurationEncoding.Views/3.3/ObjectSelectorDialog.Designer.cs	(revision 8543)
+++ 	(revision )
@@ -1,146 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2012 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.Encodings.ParameterConfigurationEncoding.Views {
-  partial class ObjectSelectorDialog<T> {
-    /// <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 && (components != null)) {
-        components.Dispose();
-      }
-      base.Dispose(disposing);
-    }
-
-    #region Windows Form 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.itemsListView = new System.Windows.Forms.ListView();
-      this.nameColumnHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
-      this.descriptionColumnHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
-      this.typeColumnHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
-      this.cancelButton = new System.Windows.Forms.Button();
-      this.okButton = new System.Windows.Forms.Button();
-      this.SuspendLayout();
-      // 
-      // itemsListView
-      // 
-      this.itemsListView.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.itemsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
-            this.nameColumnHeader,
-            this.descriptionColumnHeader,
-            this.typeColumnHeader});
-      this.itemsListView.FullRowSelect = true;
-      this.itemsListView.HideSelection = false;
-      this.itemsListView.Location = new System.Drawing.Point(12, 12);
-      this.itemsListView.MultiSelect = false;
-      this.itemsListView.Name = "itemsListView";
-      this.itemsListView.Size = new System.Drawing.Size(653, 360);
-      this.itemsListView.TabIndex = 2;
-      this.itemsListView.UseCompatibleStateImageBehavior = false;
-      this.itemsListView.View = System.Windows.Forms.View.Details;
-      this.itemsListView.SelectedIndexChanged += new System.EventHandler(this.itemsListView_SelectedIndexChanged);
-      this.itemsListView.DoubleClick += new System.EventHandler(this.itemsListView_DoubleClick);
-      // 
-      // nameColumnHeader
-      // 
-      this.nameColumnHeader.Text = "Name";
-      this.nameColumnHeader.Width = 91;
-      // 
-      // descriptionColumnHeader
-      // 
-      this.descriptionColumnHeader.Text = "Description";
-      this.descriptionColumnHeader.Width = 187;
-      // 
-      // typeColumnHeader
-      // 
-      this.typeColumnHeader.Text = "Type";
-      this.typeColumnHeader.Width = 240;
-      // 
-      // cancelButton
-      // 
-      this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-      this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
-      this.cancelButton.Location = new System.Drawing.Point(590, 378);
-      this.cancelButton.Name = "cancelButton";
-      this.cancelButton.Size = new System.Drawing.Size(75, 23);
-      this.cancelButton.TabIndex = 5;
-      this.cancelButton.Text = "&Cancel";
-      this.cancelButton.UseVisualStyleBackColor = true;
-      // 
-      // okButton
-      // 
-      this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-      this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK;
-      this.okButton.Enabled = false;
-      this.okButton.Location = new System.Drawing.Point(509, 378);
-      this.okButton.Name = "okButton";
-      this.okButton.Size = new System.Drawing.Size(75, 23);
-      this.okButton.TabIndex = 4;
-      this.okButton.Text = "&OK";
-      this.okButton.UseVisualStyleBackColor = true;
-      this.okButton.Click += new System.EventHandler(this.okButton_Click);
-      // 
-      // ObjectSelectorDialog
-      // 
-      this.AcceptButton = this.okButton;
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
-      this.CancelButton = this.cancelButton;
-      this.ClientSize = new System.Drawing.Size(677, 413);
-      this.Controls.Add(this.cancelButton);
-      this.Controls.Add(this.okButton);
-      this.Controls.Add(this.itemsListView);
-      this.MaximizeBox = false;
-      this.MinimizeBox = false;
-      this.Name = "ObjectSelectorDialog";
-      this.ShowIcon = false;
-      this.ShowInTaskbar = false;
-      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
-      this.Text = "ObjectSelectorDialog";
-      this.Load += new System.EventHandler(this.ObjectSelectorDialog_Load);
-      this.Shown += new System.EventHandler(this.ObjectSelectorDialog_Shown);
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.ListView itemsListView;
-    private System.Windows.Forms.ColumnHeader nameColumnHeader;
-    private System.Windows.Forms.ColumnHeader descriptionColumnHeader;
-    private System.Windows.Forms.ColumnHeader typeColumnHeader;
-    private System.Windows.Forms.Button cancelButton;
-    private System.Windows.Forms.Button okButton;
-  }
-}
Index: anches/ParameterConfigurationEncoding/HeuristicLab.Encodings.ParameterConfigurationEncoding.Views/3.3/ObjectSelectorDialog.cs
===================================================================
--- /branches/ParameterConfigurationEncoding/HeuristicLab.Encodings.ParameterConfigurationEncoding.Views/3.3/ObjectSelectorDialog.cs	(revision 8543)
+++ 	(revision )
@@ -1,102 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2012 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.Collections.Generic;
-using System.Linq;
-using System.Windows.Forms;
-using HeuristicLab.Core;
-
-namespace HeuristicLab.Encodings.ParameterConfigurationEncoding.Views {
-  public partial class ObjectSelectorDialog<T> : Form where T : IItem {
-    private bool initialized;
-    private List<IItem> items;
-    private IEnumerable<IGrouping<string, T>> selectableItems;
-
-    private T item;
-    public T Item {
-      get { return item; }
-    }
-
-    public ObjectSelectorDialog(IEnumerable<IGrouping<string, T>> selectableItems) {
-      this.initialized = false;
-      this.items = new List<IItem>();
-      this.item = default(T);
-      this.selectableItems = selectableItems;
-      InitializeComponent();
-    }
-
-    #region Events
-    private void ObjectSelectorDialog_Load(object sender, EventArgs e) {
-      if (!initialized) {
-        itemsListView.SmallImageList = new ImageList();
-
-        foreach (IGrouping<string, T> item in selectableItems) {
-          ListViewGroup group = new ListViewGroup(item.Key);
-          itemsListView.Groups.Add(group);
-          foreach (T i in item) {
-            items.Add(i);
-            string[] columns;
-            if (i is INamedItem) {
-              INamedItem ni = i as INamedItem;
-              columns = new string[] { ni.Name, ni.Description, ni.GetType().Name };
-            } else {
-              columns = new string[] { i.ItemName, i.ItemDescription, i.GetType().Name };
-            }
-            ListViewItem value = new ListViewItem(columns, group);
-            itemsListView.SmallImageList.Images.Add(i.ItemImage);
-            value.ImageIndex = itemsListView.SmallImageList.Images.Count - 1;
-            value.Tag = i;
-            itemsListView.Items.Add(value);
-          }
-        }
-        for (int i = 0; i < itemsListView.Columns.Count; i++)
-          itemsListView.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
-        initialized = true;
-      }
-    }
-
-    private void ObjectSelectorDialog_Shown(object sender, EventArgs e) {
-      item = default(T);
-    }
-
-    private void okButton_Click(object sender, EventArgs e) {
-      if (itemsListView.SelectedItems.Count == 1) {
-        item = (T)itemsListView.SelectedItems[0].Tag;
-        DialogResult = DialogResult.OK;
-        Close();
-      }
-    }
-
-    private void itemsListView_DoubleClick(object sender, EventArgs e) {
-      if (itemsListView.SelectedItems.Count == 1) {
-        item = (T)itemsListView.SelectedItems[0].Tag;
-        DialogResult = DialogResult.OK;
-        Close();
-      }
-    }
-
-    private void itemsListView_SelectedIndexChanged(object sender, EventArgs e) {
-      okButton.Enabled = itemsListView.SelectedItems.Count == 1;
-    }
-    #endregion
-  }
-}
Index: /branches/ParameterConfigurationEncoding/HeuristicLab.Encodings.ParameterConfigurationEncoding.Views/3.3/ValueConfigurationViews/ValueView.cs
===================================================================
--- /branches/ParameterConfigurationEncoding/HeuristicLab.Encodings.ParameterConfigurationEncoding.Views/3.3/ValueConfigurationViews/ValueView.cs	(revision 8543)
+++ /branches/ParameterConfigurationEncoding/HeuristicLab.Encodings.ParameterConfigurationEncoding.Views/3.3/ValueConfigurationViews/ValueView.cs	(revision 8544)
@@ -23,5 +23,4 @@
 using System.Linq;
 using System.Windows.Forms;
-using HeuristicLab.Core;
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
@@ -66,9 +65,13 @@
 
     private void setValueButton_Click(object sender, EventArgs e) {
+      // TODO: valid values get lost if the value was set to be optimized before
       var withoutNullValue = Content.ValidValues.Where(x => x != null && !(x is NullValue));
-      var objectSelectorDialog = new ObjectSelectorDialog<IItem>(withoutNullValue.GroupBy(x => ApplicationManager.Manager.GetDeclaringPlugin(x.GetType()).Name));
-      if (objectSelectorDialog.ShowDialog(this) == DialogResult.OK) {
+      var typeSelectorDialog = new TypeSelectorDialog();
+      typeSelectorDialog.Caption = "Select Item";
+      typeSelectorDialog.TypeSelector.Caption = "Available Items";
+      typeSelectorDialog.TypeSelector.Configure(withoutNullValue.Select(x => x.GetType()), false, false, false);
+      if (typeSelectorDialog.ShowDialog(this) == DialogResult.OK) {
         try {
-          Content.Value = objectSelectorDialog.Item;
+          Content.Value = withoutNullValue.Single(x => x.GetType() == typeSelectorDialog.TypeSelector.SelectedType);
           valueViewHost.Content = Content.Value;
         }
