Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionView.Designer.cs	(revision 3276)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionView.Designer.cs	(revision 3277)
@@ -20,12 +20,16 @@
 #endregion
 
+using System;
+using System.Windows.Forms;
+using System.ComponentModel;
+
 namespace HeuristicLab.Optimization.Views {
   partial class RunCollectionView {
-    /// <summary> 
+    /// <summary>
     /// Required designer variable.
     /// </summary>
     private System.ComponentModel.IContainer components = null;
 
-    /// <summary> 
+    /// <summary>
     /// Clean up any resources being used.
     /// </summary>
@@ -33,4 +37,6 @@
     protected override void Dispose(bool disposing) {
       if (disposing) {
+        foreach (ListViewItem item in itemsListView.Items)
+          ((Run)item.Tag).ToStringChanged -= new EventHandler(Item_ToStringChanged);
         if (components != null) components.Dispose();
       }
@@ -38,16 +44,155 @@
     }
 
-    #region Component Designer generated code
+    #region Windows Form Designer generated code
 
-    /// <summary> 
-    /// Required method for Designer support - do not modify 
+    /// <summary>
+    /// Required method for Designer support - do not modify
     /// the contents of this method with the code editor.
     /// </summary>
     private void InitializeComponent() {
-      components = new System.ComponentModel.Container();
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.components = new System.ComponentModel.Container();
+      this.splitContainer = new System.Windows.Forms.SplitContainer();
+      this.itemsListView = new System.Windows.Forms.ListView();
+      this.columnHeader1 = new System.Windows.Forms.ColumnHeader();
+      this.imageList = new System.Windows.Forms.ImageList(this.components);
+      this.removeButton = new System.Windows.Forms.Button();
+      this.detailsGroupBox = new System.Windows.Forms.GroupBox();
+      this.viewHost = new HeuristicLab.Core.Views.ViewHost();
+      this.itemsGroupBox = new System.Windows.Forms.GroupBox();
+      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
+      this.splitContainer.Panel1.SuspendLayout();
+      this.splitContainer.Panel2.SuspendLayout();
+      this.splitContainer.SuspendLayout();
+      this.detailsGroupBox.SuspendLayout();
+      this.itemsGroupBox.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // splitContainer
+      // 
+      this.splitContainer.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.splitContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
+      this.splitContainer.Location = new System.Drawing.Point(3, 16);
+      this.splitContainer.Name = "splitContainer";
+      // 
+      // splitContainer.Panel1
+      // 
+      this.splitContainer.Panel1.Controls.Add(this.itemsListView);
+      this.splitContainer.Panel1.Controls.Add(this.removeButton);
+      this.splitContainer.Panel1MinSize = 100;
+      // 
+      // splitContainer.Panel2
+      // 
+      this.splitContainer.Panel2.Controls.Add(this.detailsGroupBox);
+      this.splitContainer.Size = new System.Drawing.Size(526, 364);
+      this.splitContainer.SplitterDistance = 250;
+      this.splitContainer.TabIndex = 0;
+      // 
+      // itemsListView
+      // 
+      this.itemsListView.AllowDrop = true;
+      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.columnHeader1});
+      this.itemsListView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
+      this.itemsListView.HideSelection = false;
+      this.itemsListView.Location = new System.Drawing.Point(3, 33);
+      this.itemsListView.Name = "itemsListView";
+      this.itemsListView.ShowItemToolTips = true;
+      this.itemsListView.Size = new System.Drawing.Size(244, 327);
+      this.itemsListView.SmallImageList = this.imageList;
+      this.itemsListView.TabIndex = 1;
+      this.itemsListView.UseCompatibleStateImageBehavior = false;
+      this.itemsListView.View = System.Windows.Forms.View.Details;
+      this.itemsListView.SelectedIndexChanged += new System.EventHandler(this.itemsListView_SelectedIndexChanged);
+      this.itemsListView.SizeChanged += new System.EventHandler(this.itemsListView_SizeChanged);
+      this.itemsListView.DoubleClick += new System.EventHandler(this.itemsListView_DoubleClick);
+      this.itemsListView.DragDrop += new System.Windows.Forms.DragEventHandler(this.itemsListView_DragDrop);
+      this.itemsListView.DragEnter += new System.Windows.Forms.DragEventHandler(this.itemsListView_DragEnterOver);
+      this.itemsListView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.itemsListView_KeyDown);
+      this.itemsListView.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.itemsListView_ItemDrag);
+      this.itemsListView.DragOver += new System.Windows.Forms.DragEventHandler(this.itemsListView_DragEnterOver);
+      // 
+      // imageList
+      // 
+      this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
+      this.imageList.ImageSize = new System.Drawing.Size(16, 16);
+      this.imageList.TransparentColor = System.Drawing.Color.Transparent;
+      // 
+      // removeButton
+      // 
+      this.removeButton.Enabled = false;
+      this.removeButton.Image = HeuristicLab.Common.Resources.VS2008ImageLibrary.Remove;
+      this.removeButton.Location = new System.Drawing.Point(3, 3);
+      this.removeButton.Name = "removeButton";
+      this.removeButton.Size = new System.Drawing.Size(24, 24);
+      this.removeButton.TabIndex = 0;
+      this.toolTip.SetToolTip(this.removeButton, "Remove");
+      this.removeButton.UseVisualStyleBackColor = true;
+      this.removeButton.Click += new System.EventHandler(this.removeButton_Click);
+      // 
+      // detailsGroupBox
+      // 
+      this.detailsGroupBox.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.detailsGroupBox.Controls.Add(this.viewHost);
+      this.detailsGroupBox.Location = new System.Drawing.Point(3, 27);
+      this.detailsGroupBox.Name = "detailsGroupBox";
+      this.detailsGroupBox.Size = new System.Drawing.Size(266, 335);
+      this.detailsGroupBox.TabIndex = 0;
+      this.detailsGroupBox.TabStop = false;
+      this.detailsGroupBox.Text = "Details";
+      // 
+      // viewHost
+      // 
+      this.viewHost.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.viewHost.Content = null;
+      this.viewHost.Location = new System.Drawing.Point(6, 19);
+      this.viewHost.Name = "viewHost";
+      this.viewHost.Size = new System.Drawing.Size(254, 310);
+      this.viewHost.TabIndex = 0;
+      this.viewHost.ViewType = null;
+      // 
+      // itemsGroupBox
+      // 
+      this.itemsGroupBox.Controls.Add(this.splitContainer);
+      this.itemsGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.itemsGroupBox.Location = new System.Drawing.Point(0, 0);
+      this.itemsGroupBox.Name = "itemsGroupBox";
+      this.itemsGroupBox.Size = new System.Drawing.Size(532, 383);
+      this.itemsGroupBox.TabIndex = 0;
+      this.itemsGroupBox.TabStop = false;
+      this.itemsGroupBox.Text = "Items";
+      // 
+      // RunCollectionView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.Controls.Add(this.itemsGroupBox);
+      this.Name = "RunCollectionView";
+      this.Size = new System.Drawing.Size(532, 383);
+      this.splitContainer.Panel1.ResumeLayout(false);
+      this.splitContainer.Panel2.ResumeLayout(false);
+      this.splitContainer.ResumeLayout(false);
+      this.detailsGroupBox.ResumeLayout(false);
+      this.itemsGroupBox.ResumeLayout(false);
+      this.ResumeLayout(false);
+
     }
 
     #endregion
+
+    protected System.Windows.Forms.SplitContainer splitContainer;
+    protected System.Windows.Forms.ColumnHeader columnHeader1;
+    protected GroupBox itemsGroupBox;
+    protected ListView itemsListView;
+    protected GroupBox detailsGroupBox;
+    protected Button removeButton;
+    protected ToolTip toolTip;
+    protected ImageList imageList;
+    protected HeuristicLab.Core.Views.ViewHost viewHost;
   }
 }
Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionView.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionView.cs	(revision 3276)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionView.cs	(revision 3277)
@@ -23,4 +23,8 @@
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+using System.Windows.Forms;
+using System;
+using System.Collections.Generic;
 
 namespace HeuristicLab.Optimization.Views {
@@ -28,19 +32,19 @@
   [Content(typeof(RunCollection), true)]
   [Content(typeof(IObservableCollection<Run>), false)]
-  public partial class RunCollectionView : ItemCollectionView<Run> {
-    /// <summary>
-    /// Initializes a new instance of <see cref="VariablesScopeView"/> with caption "Variables Scope View".
-    /// </summary>
+  public partial class RunCollectionView : AsynchronousContentView {
+    public new IObservableCollection<Run> Content {
+      get { return (IObservableCollection<Run>)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public ListView ItemsListView {
+      get { return itemsListView; }
+    }
+
     public RunCollectionView() {
       InitializeComponent();
-      Caption = "RunCollection";
-      itemsGroupBox.Text = "Runs";
-    }
-    /// <summary>
-    /// Initializes a new instance of <see cref="VariablesScopeView"/> with 
-    /// the given <paramref name="scope"/>.
-    /// </summary>
-    /// <remarks>Calls <see cref="VariablesScopeView()"/>.</remarks>
-    /// <param name="scope">The scope whose variables should be represented visually.</param>
+      Caption = "Run Collection";
+    }
+
     public RunCollectionView(IObservableCollection<Run> content)
       : this() {
@@ -48,7 +52,189 @@
     }
 
-    protected override Run CreateItem() {
-      return new Run();
-    }
+    protected override void DeregisterContentEvents() {
+      Content.ItemsAdded -= new CollectionItemsChangedEventHandler<Run>(Content_ItemsAdded);
+      Content.ItemsRemoved -= new CollectionItemsChangedEventHandler<Run>(Content_ItemsRemoved);
+      Content.CollectionReset -= new CollectionItemsChangedEventHandler<Run>(Content_CollectionReset);
+      base.DeregisterContentEvents();
+    }
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.ItemsAdded += new CollectionItemsChangedEventHandler<Run>(Content_ItemsAdded);
+      Content.ItemsRemoved += new CollectionItemsChangedEventHandler<Run>(Content_ItemsRemoved);
+      Content.CollectionReset += new CollectionItemsChangedEventHandler<Run>(Content_CollectionReset);
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      Caption = "Run Collection";
+      while (itemsListView.Items.Count > 0) RemoveListViewItem(itemsListView.Items[0]);
+      itemsListView.Enabled = false;
+      detailsGroupBox.Enabled = false;
+      viewHost.Content = null;
+      removeButton.Enabled = false;
+
+      if (Content != null) {
+        Caption += " (" + Content.GetType().Name + ")";
+        itemsListView.Enabled = true;
+        foreach (Run item in Content)
+          AddListViewItem(CreateListViewItem(item));
+      }
+    }
+
+    protected virtual ListViewItem CreateListViewItem(Run item) {
+      if (!itemsListView.SmallImageList.Images.ContainsKey(item.GetType().FullName))
+        itemsListView.SmallImageList.Images.Add(item.GetType().FullName, item.ItemImage);
+
+      ListViewItem listViewItem = new ListViewItem();
+      listViewItem.Text = item.ToString();
+      listViewItem.ToolTipText = item.ItemName + ": " + item.ItemDescription;
+      listViewItem.ImageIndex = itemsListView.SmallImageList.Images.IndexOfKey(item.GetType().FullName);
+      listViewItem.Tag = item;
+      return listViewItem;
+    }
+    protected virtual void AddListViewItem(ListViewItem listViewItem) {
+      itemsListView.Items.Add(listViewItem);
+      ((Run)listViewItem.Tag).ToStringChanged += new EventHandler(Item_ToStringChanged);
+    }
+    protected virtual void RemoveListViewItem(ListViewItem listViewItem) {
+      ((Run)listViewItem.Tag).ToStringChanged -= new EventHandler(Item_ToStringChanged);
+      listViewItem.Remove();
+    }
+    protected virtual void UpdateListViewItem(ListViewItem listViewItem) {
+      if (!listViewItem.Text.Equals(listViewItem.Tag.ToString())) {
+        listViewItem.Text = listViewItem.Tag.ToString();
+      }
+    }
+    protected virtual IEnumerable<ListViewItem> GetListViewItemsForItem(Run item) {
+      foreach (ListViewItem listViewItem in itemsListView.Items) {
+        if (((Run)listViewItem.Tag) == item)
+          yield return listViewItem;
+      }
+    }
+
+    #region ListView Events
+    protected virtual void itemsListView_SelectedIndexChanged(object sender, EventArgs e) {
+      removeButton.Enabled = itemsListView.SelectedItems.Count > 0 && !Content.IsReadOnly;
+      if (itemsListView.SelectedItems.Count == 1) {
+        Run item = (Run)itemsListView.SelectedItems[0].Tag;
+        detailsGroupBox.Enabled = true;
+        viewHost.ViewType = null;
+        viewHost.Content = item;
+      } else {
+        viewHost.Content = null;
+        detailsGroupBox.Enabled = false;
+      }
+    }
+    protected virtual void itemsListView_SizeChanged(object sender, EventArgs e) {
+      if (itemsListView.Columns.Count > 0)
+        itemsListView.Columns[0].Width = Math.Max(0, itemsListView.Width - 25);
+    }
+    protected virtual void itemsListView_KeyDown(object sender, KeyEventArgs e) {
+      if (e.KeyCode == Keys.Delete) {
+        if ((itemsListView.SelectedItems.Count > 0) && !Content.IsReadOnly) {
+          foreach (ListViewItem item in itemsListView.SelectedItems)
+            Content.Remove((Run)item.Tag);
+        }
+      }
+    }
+    protected virtual void itemsListView_DoubleClick(object sender, EventArgs e) {
+      if (itemsListView.SelectedItems.Count == 1) {
+        Run item = (Run)itemsListView.SelectedItems[0].Tag;
+        IView view = MainFormManager.CreateDefaultView(item);
+        if (view != null) view.Show();
+      }
+    }
+    protected virtual void itemsListView_ItemDrag(object sender, ItemDragEventArgs e) {
+      ListViewItem listViewItem = (ListViewItem)e.Item;
+      Run item = (Run)listViewItem.Tag;
+      DataObject data = new DataObject();
+      data.SetData("Type", item.GetType());
+      data.SetData("Value", item);
+      if (Content.IsReadOnly) {
+        DoDragDrop(data, DragDropEffects.Copy | DragDropEffects.Link);
+      } else {
+        DragDropEffects result = DoDragDrop(data, DragDropEffects.Copy | DragDropEffects.Link | DragDropEffects.Move);
+        if ((result & DragDropEffects.Move) == DragDropEffects.Move)
+          Content.Remove(item);
+      }
+    }
+    protected virtual void itemsListView_DragEnterOver(object sender, DragEventArgs e) {
+      e.Effect = DragDropEffects.None;
+      Type type = e.Data.GetData("Type") as Type;
+      if ((!Content.IsReadOnly) && (type != null) && (typeof(Run).IsAssignableFrom(type))) {
+        if ((e.KeyState & 8) == 8) e.Effect = DragDropEffects.Copy;  // CTRL key
+        else if ((e.KeyState & 4) == 4) e.Effect = DragDropEffects.Move;  // SHIFT key
+        else if ((e.AllowedEffect & DragDropEffects.Link) == DragDropEffects.Link) e.Effect = DragDropEffects.Link;
+        else if ((e.AllowedEffect & DragDropEffects.Copy) == DragDropEffects.Copy) e.Effect = DragDropEffects.Copy;
+        else if ((e.AllowedEffect & DragDropEffects.Move) == DragDropEffects.Move) e.Effect = DragDropEffects.Move;
+      }
+    }
+    protected virtual void itemsListView_DragDrop(object sender, DragEventArgs e) {
+      if (e.Effect != DragDropEffects.None) {
+        Run item = e.Data.GetData("Value") as Run;
+        if ((e.Effect & DragDropEffects.Copy) == DragDropEffects.Copy) item = (Run)item.Clone();
+        Content.Add(item);
+      }
+    }
+    #endregion
+
+    #region Button Events
+    protected virtual void removeButton_Click(object sender, EventArgs e) {
+      if (itemsListView.SelectedItems.Count > 0) {
+        foreach (ListViewItem item in itemsListView.SelectedItems)
+          Content.Remove((Run)item.Tag);
+        itemsListView.SelectedItems.Clear();
+      }
+    }
+    #endregion
+
+    #region Content Events
+    protected virtual void Content_ItemsAdded(object sender, CollectionItemsChangedEventArgs<Run> e) {
+      if (InvokeRequired)
+        Invoke(new CollectionItemsChangedEventHandler<Run>(Content_ItemsAdded), sender, e);
+      else
+        foreach (Run item in e.Items)
+          AddListViewItem(CreateListViewItem(item));
+    }
+    protected virtual void Content_ItemsRemoved(object sender, CollectionItemsChangedEventArgs<Run> e) {
+      if (InvokeRequired)
+        Invoke(new CollectionItemsChangedEventHandler<Run>(Content_ItemsRemoved), sender, e);
+      else {
+        foreach (Run item in e.Items) {
+          foreach (ListViewItem listViewItem in GetListViewItemsForItem(item)) {
+            RemoveListViewItem(listViewItem);
+            break;
+          }
+        }
+      }
+    }
+    protected virtual void Content_CollectionReset(object sender, CollectionItemsChangedEventArgs<Run> e) {
+      if (InvokeRequired)
+        Invoke(new CollectionItemsChangedEventHandler<Run>(Content_CollectionReset), sender, e);
+      else {
+        foreach (Run item in e.OldItems) {
+          foreach (ListViewItem listViewItem in GetListViewItemsForItem(item)) {
+            RemoveListViewItem(listViewItem);
+            break;
+          }
+        }
+        foreach (Run item in e.Items)
+          AddListViewItem(CreateListViewItem(item));
+      }
+    }
+    #endregion
+
+    #region Item Events
+    protected virtual void Item_ToStringChanged(object sender, EventArgs e) {
+      if (InvokeRequired)
+        Invoke(new EventHandler(Item_ToStringChanged), sender, e);
+      else {
+        Run item = (Run)sender;
+        foreach (ListViewItem listViewItem in GetListViewItemsForItem(item))
+          UpdateListViewItem(listViewItem);
+      }
+    }
+    #endregion
   }
 }
+
Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/RunView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/RunView.Designer.cs	(revision 3276)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/RunView.Designer.cs	(revision 3277)
@@ -45,13 +45,15 @@
     /// </summary>
     private void InitializeComponent() {
+      this.components = new System.ComponentModel.Container();
       System.Windows.Forms.ListViewGroup listViewGroup1 = new System.Windows.Forms.ListViewGroup("Parameters", System.Windows.Forms.HorizontalAlignment.Left);
       System.Windows.Forms.ListViewGroup listViewGroup2 = new System.Windows.Forms.ListViewGroup("Results", System.Windows.Forms.HorizontalAlignment.Left);
       this.parametersResultsGroupBox = new System.Windows.Forms.GroupBox();
       this.splitContainer = new System.Windows.Forms.SplitContainer();
-      this.detailsGroupBox = new System.Windows.Forms.GroupBox();
-      this.viewHost = new HeuristicLab.Core.Views.ViewHost();
       this.listView = new System.Windows.Forms.ListView();
       this.nameColumnHeader = new System.Windows.Forms.ColumnHeader();
       this.valueColumnHeader = new System.Windows.Forms.ColumnHeader();
+      this.detailsGroupBox = new System.Windows.Forms.GroupBox();
+      this.viewHost = new HeuristicLab.Core.Views.ViewHost();
+      this.imageList = new System.Windows.Forms.ImageList(this.components);
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
       this.parametersResultsGroupBox.SuspendLayout();
@@ -101,29 +103,4 @@
       this.splitContainer.SplitterDistance = 177;
       this.splitContainer.TabIndex = 0;
-      // 
-      // detailsGroupBox
-      // 
-      this.detailsGroupBox.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.detailsGroupBox.Controls.Add(this.viewHost);
-      this.detailsGroupBox.Location = new System.Drawing.Point(3, 3);
-      this.detailsGroupBox.Name = "detailsGroupBox";
-      this.detailsGroupBox.Size = new System.Drawing.Size(302, 274);
-      this.detailsGroupBox.TabIndex = 0;
-      this.detailsGroupBox.TabStop = false;
-      this.detailsGroupBox.Text = "Details";
-      // 
-      // viewHost
-      // 
-      this.viewHost.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.viewHost.Content = null;
-      this.viewHost.Location = new System.Drawing.Point(6, 19);
-      this.viewHost.Name = "viewHost";
-      this.viewHost.Size = new System.Drawing.Size(290, 249);
-      this.viewHost.TabIndex = 0;
-      this.viewHost.ViewType = null;
       // 
       // listView
@@ -149,4 +126,5 @@
       this.listView.ShowItemToolTips = true;
       this.listView.Size = new System.Drawing.Size(171, 274);
+      this.listView.SmallImageList = this.imageList;
       this.listView.Sorting = System.Windows.Forms.SortOrder.Ascending;
       this.listView.TabIndex = 0;
@@ -162,4 +140,35 @@
       // 
       this.valueColumnHeader.Text = "Value";
+      // 
+      // detailsGroupBox
+      // 
+      this.detailsGroupBox.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.detailsGroupBox.Controls.Add(this.viewHost);
+      this.detailsGroupBox.Location = new System.Drawing.Point(3, 3);
+      this.detailsGroupBox.Name = "detailsGroupBox";
+      this.detailsGroupBox.Size = new System.Drawing.Size(302, 274);
+      this.detailsGroupBox.TabIndex = 0;
+      this.detailsGroupBox.TabStop = false;
+      this.detailsGroupBox.Text = "Details";
+      // 
+      // viewHost
+      // 
+      this.viewHost.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.viewHost.Content = null;
+      this.viewHost.Location = new System.Drawing.Point(6, 19);
+      this.viewHost.Name = "viewHost";
+      this.viewHost.Size = new System.Drawing.Size(290, 249);
+      this.viewHost.TabIndex = 0;
+      this.viewHost.ViewType = null;
+      // 
+      // imageList
+      // 
+      this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
+      this.imageList.ImageSize = new System.Drawing.Size(16, 16);
+      this.imageList.TransparentColor = System.Drawing.Color.Transparent;
       // 
       // RunView
@@ -195,4 +204,5 @@
     private System.Windows.Forms.ColumnHeader valueColumnHeader;
     private HeuristicLab.Core.Views.ViewHost viewHost;
+    private System.Windows.Forms.ImageList imageList;
 
   }
Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/RunView.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/RunView.cs	(revision 3276)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/RunView.cs	(revision 3277)
@@ -75,18 +75,29 @@
 
     private void FillListView() {
+      if (!listView.SmallImageList.Images.ContainsKey("Default"))
+        listView.SmallImageList.Images.Add("Default", HeuristicLab.Common.Resources.VS2008ImageLibrary.Class);
+
       listView.Items.Clear();
       if (Content != null) {
         foreach (string key in Content.Parameters.Keys) {
           IItem value = Content.Parameters[key];
+          if ((value != null) && (!listView.SmallImageList.Images.ContainsKey(value.GetType().FullName)))
+            listView.SmallImageList.Images.Add(value.GetType().FullName, value.ItemImage);
+
           ListViewItem item = new ListViewItem(new string[] { key, value != null ? value.ToString() : "-" });
           item.Tag = value;
           item.Group = listView.Groups["parametersGroup"];
+          item.ImageIndex = listView.SmallImageList.Images.IndexOfKey(value != null ? value.GetType().FullName : "Default");
           listView.Items.Add(item);
         }
         foreach (string key in Content.Results.Keys) {
           IItem value = Content.Results[key];
+          if ((value != null) && (!listView.SmallImageList.Images.ContainsKey(value.GetType().FullName)))
+            listView.SmallImageList.Images.Add(value.GetType().FullName, value.ItemImage);
+
           ListViewItem item = new ListViewItem(new string[] { key, value != null ? value.ToString() : "-" });
           item.Tag = value;
           item.Group = listView.Groups["resultsGroup"];
+          item.ImageIndex = listView.SmallImageList.Images.IndexOfKey(value != null ? value.GetType().FullName : "Default");
           listView.Items.Add(item);
         }
