Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/AlgorithmView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/AlgorithmView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/AlgorithmView.Designer.cs	(revision 8086)
@@ -266,5 +266,5 @@
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.Controls.Add(this.tabControl);
       this.Name = "AlgorithmView";
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/BatchRunView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/BatchRunView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/BatchRunView.Designer.cs	(revision 8086)
@@ -230,5 +230,5 @@
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.Controls.Add(this.repetitionsNumericUpDown);
       this.Controls.Add(this.repetitionsLabel);
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/EngineAlgorithmView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/EngineAlgorithmView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/EngineAlgorithmView.Designer.cs	(revision 8086)
@@ -270,5 +270,5 @@
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.Name = "EngineAlgorithmView";
       this.Size = new System.Drawing.Size(713, 549);
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ExperimentListView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ExperimentListView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ExperimentListView.Designer.cs	(revision 8086)
@@ -163,5 +163,5 @@
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.Controls.Add(this.tabControl);
       this.Name = "ExperimentView";
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.Designer.cs	(revision 8086)
@@ -269,5 +269,5 @@
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.Controls.Add(this.optimizersGroupBox);
       this.Name = "ExperimentTreeView";
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ExperimentView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ExperimentView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ExperimentView.Designer.cs	(revision 8086)
@@ -161,5 +161,5 @@
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.Controls.Add(this.tabControl);
       this.Name = "ExperimentView";
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/HeuristicLab.Optimization.Views-3.3.csproj
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/HeuristicLab.Optimization.Views-3.3.csproj	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/HeuristicLab.Optimization.Views-3.3.csproj	(revision 8086)
@@ -99,4 +99,7 @@
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="HeuristicLab.Analysis-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <Private>False</Private>
+    </Reference>
     <Reference Include="Microsoft.CSharp" />
     <Reference Include="System" />
@@ -115,5 +118,7 @@
     <Reference Include="System.Data" />
     <Reference Include="System.Xml" />
-    <Reference Include="WeifenLuo.WinFormsUI.Docking-2.3.1, Version=2.3.1.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=x86" />
+    <Reference Include="WeifenLuo.WinFormsUI.Docking-2.3.1, Version=2.3.1.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=x86">
+      <Private>False</Private>
+    </Reference>
   </ItemGroup>
   <ItemGroup>
@@ -138,10 +143,4 @@
     </Compile>
     <Compile Include="Plugin.cs" />
-    <Compile Include="ProblemInstanceProviderView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="ProblemInstanceProviderView.Designer.cs">
-      <DependentUpon>ProblemInstanceProviderView.cs</DependentUpon>
-    </Compile>
     <Compile Include="ProblemView.cs">
       <SubType>UserControl</SubType>
@@ -251,4 +250,10 @@
     <Compile Include="RunView.Designer.cs">
       <DependentUpon>RunView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="RunCollectionViews\RunCollectionDataTableView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="RunCollectionViews\RunCollectionDataTableView.Designer.cs">
+      <DependentUpon>RunCollectionDataTableView.cs</DependentUpon>
     </Compile>
     <Compile Include="UserDefinedAlgorithmView.cs">
@@ -281,76 +286,4 @@
     <None Include="HeuristicLab.snk" />
     <None Include="Properties\AssemblyInfo.cs.frame" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
-      <Project>{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}</Project>
-      <Name>HeuristicLab.Collections-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
-      <Project>{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}</Project>
-      <Name>HeuristicLab.Common.Resources-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
-      <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
-      <Name>HeuristicLab.Common-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Core.Views\3.3\HeuristicLab.Core.Views-3.3.csproj">
-      <Project>{E226881D-315F-423D-B419-A766FE0D8685}</Project>
-      <Name>HeuristicLab.Core.Views-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
-      <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
-      <Name>HeuristicLab.Core-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Data.Views\3.3\HeuristicLab.Data.Views-3.3.csproj">
-      <Project>{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}</Project>
-      <Name>HeuristicLab.Data.Views-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
-      <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>
-      <Name>HeuristicLab.Data-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.MainForm.WindowsForms\3.3\HeuristicLab.MainForm.WindowsForms-3.3.csproj">
-      <Project>{AB687BBE-1BFE-476B-906D-44237135431D}</Project>
-      <Name>HeuristicLab.MainForm.WindowsForms-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.MainForm\3.3\HeuristicLab.MainForm-3.3.csproj">
-      <Project>{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}</Project>
-      <Name>HeuristicLab.MainForm-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">
-      <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project>
-      <Name>HeuristicLab.Optimization-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
-      <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project>
-      <Name>HeuristicLab.Persistence-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
-      <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
-      <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj">
-      <Project>{3540E29E-4793-49E7-8EE2-FEA7F61C3994}</Project>
-      <Name>HeuristicLab.Problems.Instances-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Visualization.ChartControlsExtensions\3.3\HeuristicLab.Visualization.ChartControlsExtensions-3.3.csproj">
-      <Project>{315BDA09-3F4F-49B3-9790-B37CFC1C5750}</Project>
-      <Name>HeuristicLab.Visualization.ChartControlsExtensions-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
   </ItemGroup>
   <ItemGroup>
@@ -371,4 +304,81 @@
     </BootstrapperPackage>
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.Analysis.Views\3.3\HeuristicLab.Analysis.Views-3.3.csproj">
+      <Project>{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}</Project>
+      <Name>HeuristicLab.Analysis.Views-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
+      <Project>{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}</Project>
+      <Name>HeuristicLab.Collections-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
+      <Project>{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}</Project>
+      <Name>HeuristicLab.Common.Resources-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
+      <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
+      <Name>HeuristicLab.Common-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Core.Views\3.3\HeuristicLab.Core.Views-3.3.csproj">
+      <Project>{E226881D-315F-423D-B419-A766FE0D8685}</Project>
+      <Name>HeuristicLab.Core.Views-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
+      <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
+      <Name>HeuristicLab.Core-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Data.Views\3.3\HeuristicLab.Data.Views-3.3.csproj">
+      <Project>{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}</Project>
+      <Name>HeuristicLab.Data.Views-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
+      <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>
+      <Name>HeuristicLab.Data-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.MainForm.WindowsForms\3.3\HeuristicLab.MainForm.WindowsForms-3.3.csproj">
+      <Project>{AB687BBE-1BFE-476B-906D-44237135431D}</Project>
+      <Name>HeuristicLab.MainForm.WindowsForms-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.MainForm\3.3\HeuristicLab.MainForm-3.3.csproj">
+      <Project>{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}</Project>
+      <Name>HeuristicLab.MainForm-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">
+      <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project>
+      <Name>HeuristicLab.Optimization-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
+      <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
+      <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.Instances.Views\3.3\HeuristicLab.Problems.Instances.Views-3.3.csproj">
+      <Project>{B1BA398F-953F-4C3A-B07B-1E5E17A27DD9}</Project>
+      <Name>HeuristicLab.Problems.Instances.Views-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj">
+      <Project>{3540E29E-4793-49E7-8EE2-FEA7F61C3994}</Project>
+      <Name>HeuristicLab.Problems.Instances-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Visualization.ChartControlsExtensions\3.3\HeuristicLab.Visualization.ChartControlsExtensions-3.3.csproj">
+      <Project>{315BDA09-3F4F-49B3-9790-B37CFC1C5750}</Project>
+      <Name>HeuristicLab.Visualization.ChartControlsExtensions-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/IOptimizerView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/IOptimizerView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/IOptimizerView.Designer.cs	(revision 8086)
@@ -135,5 +135,5 @@
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.Controls.Add(this.startButton);
       this.Controls.Add(this.executionTimeTextBox);
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/OptimizerListView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/OptimizerListView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/OptimizerListView.Designer.cs	(revision 8086)
@@ -46,5 +46,5 @@
     private void InitializeComponent() {
       components = new System.ComponentModel.Container();
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
     }
 
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/Plugin.cs.frame
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/Plugin.cs.frame	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/Plugin.cs.frame	(revision 8086)
@@ -28,4 +28,5 @@
   [Plugin("HeuristicLab.Optimization.Views", "3.3.6.$WCREV$")]
   [PluginFile("HeuristicLab.Optimization.Views-3.3.dll", PluginFileType.Assembly)]
+  [PluginDependency("HeuristicLab.Analysis", "3.3")]
   [PluginDependency("HeuristicLab.Collections", "3.3")]
   [PluginDependency("HeuristicLab.Common", "3.3")]
@@ -39,4 +40,5 @@
   [PluginDependency("HeuristicLab.Optimization", "3.3")]
   [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.Instances.Views", "3.3")]
   [PluginDependency("HeuristicLab.Visualization.ChartControlsExtensions","3.3")]
   public class HeuristicLabOptimizationViewsPlugin : PluginBase {
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ProblemView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ProblemView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ProblemView.Designer.cs	(revision 8086)
@@ -45,9 +45,6 @@
     /// </summary>
     private void InitializeComponent() {
-      this.problemInstanceProviderComboBox = new System.Windows.Forms.ComboBox();
-      this.libraryLabel = new System.Windows.Forms.Label();
-      this.libraryInfoButton = new System.Windows.Forms.Button();
       this.problemInstanceSplitContainer = new System.Windows.Forms.SplitContainer();
-      this.problemInstanceProviderViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.ProblemInstanceConsumerViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
       ((System.ComponentModel.ISupportInitialize)(this.problemInstanceSplitContainer)).BeginInit();
@@ -77,39 +74,9 @@
       this.infoLabel.Location = new System.Drawing.Point(491, 4);
       // 
-      // problemInstanceProviderComboBox
-      // 
-      this.problemInstanceProviderComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-      this.problemInstanceProviderComboBox.FormattingEnabled = true;
-      this.problemInstanceProviderComboBox.Location = new System.Drawing.Point(47, 2);
-      this.problemInstanceProviderComboBox.Name = "problemInstanceProviderComboBox";
-      this.problemInstanceProviderComboBox.Size = new System.Drawing.Size(171, 21);
-      this.problemInstanceProviderComboBox.TabIndex = 13;
-      this.problemInstanceProviderComboBox.SelectedIndexChanged += new System.EventHandler(this.problemInstanceProviderComboBox_SelectedIndexChanged);
-      this.problemInstanceProviderComboBox.DataSourceChanged += new System.EventHandler(this.comboBox_DataSourceChanged);
-      // 
-      // libraryLabel
-      // 
-      this.libraryLabel.AutoSize = true;
-      this.libraryLabel.Location = new System.Drawing.Point(3, 6);
-      this.libraryLabel.Name = "libraryLabel";
-      this.libraryLabel.Size = new System.Drawing.Size(41, 13);
-      this.libraryLabel.TabIndex = 12;
-      this.libraryLabel.Text = "Library:";
-      // 
-      // libraryInfoButton
-      // 
-      this.libraryInfoButton.Location = new System.Drawing.Point(224, 1);
-      this.libraryInfoButton.Name = "libraryInfoButton";
-      this.libraryInfoButton.Size = new System.Drawing.Size(26, 23);
-      this.libraryInfoButton.TabIndex = 14;
-      this.libraryInfoButton.Text = "Info";
-      this.libraryInfoButton.UseVisualStyleBackColor = true;
-      this.libraryInfoButton.Click += new System.EventHandler(this.libraryInfoButton_Click);
-      // 
       // problemInstanceSplitContainer
       // 
-      this.problemInstanceSplitContainer.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.problemInstanceSplitContainer.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.problemInstanceSplitContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
       this.problemInstanceSplitContainer.IsSplitterFixed = true;
@@ -120,8 +87,5 @@
       // problemInstanceSplitContainer.Panel1
       // 
-      this.problemInstanceSplitContainer.Panel1.Controls.Add(this.problemInstanceProviderViewHost);
-      this.problemInstanceSplitContainer.Panel1.Controls.Add(this.problemInstanceProviderComboBox);
-      this.problemInstanceSplitContainer.Panel1.Controls.Add(this.libraryInfoButton);
-      this.problemInstanceSplitContainer.Panel1.Controls.Add(this.libraryLabel);
+      this.problemInstanceSplitContainer.Panel1.Controls.Add(this.ProblemInstanceConsumerViewHost);
       this.problemInstanceSplitContainer.Panel1MinSize = 10;
       // 
@@ -136,23 +100,24 @@
       this.problemInstanceSplitContainer.TabIndex = 13;
       // 
-      // problemInstanceProviderViewHost
+      // ProblemInstanceConsumerViewHost
       // 
-      this.problemInstanceProviderViewHost.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.problemInstanceProviderViewHost.Caption = "View";
-      this.problemInstanceProviderViewHost.Content = null;
-      this.problemInstanceProviderViewHost.Enabled = false;
-      this.problemInstanceProviderViewHost.Location = new System.Drawing.Point(256, 3);
-      this.problemInstanceProviderViewHost.Name = "problemInstanceProviderViewHost";
-      this.problemInstanceProviderViewHost.ReadOnly = false;
-      this.problemInstanceProviderViewHost.Size = new System.Drawing.Size(251, 22);
-      this.problemInstanceProviderViewHost.TabIndex = 15;
-      this.problemInstanceProviderViewHost.ViewsLabelVisible = false;
-      this.problemInstanceProviderViewHost.ViewType = null;
+      this.ProblemInstanceConsumerViewHost.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.ProblemInstanceConsumerViewHost.Caption = "ProblemInstanceConsumerView";
+      this.ProblemInstanceConsumerViewHost.Content = null;
+      this.ProblemInstanceConsumerViewHost.Enabled = false;
+      this.ProblemInstanceConsumerViewHost.Location = new System.Drawing.Point(0, 1);
+      this.ProblemInstanceConsumerViewHost.Name = "ProblemInstanceConsumerViewHost";
+      this.ProblemInstanceConsumerViewHost.ReadOnly = false;
+      this.ProblemInstanceConsumerViewHost.Size = new System.Drawing.Size(511, 23);
+      this.ProblemInstanceConsumerViewHost.TabIndex = 0;
+      this.ProblemInstanceConsumerViewHost.ViewsLabelVisible = false;
+      this.ProblemInstanceConsumerViewHost.ViewType = null;
       // 
       // ProblemView
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.Controls.Add(this.problemInstanceSplitContainer);
       this.Name = "ProblemView";
@@ -160,5 +125,4 @@
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
       this.problemInstanceSplitContainer.Panel1.ResumeLayout(false);
-      this.problemInstanceSplitContainer.Panel1.PerformLayout();
       this.problemInstanceSplitContainer.Panel2.ResumeLayout(false);
       this.problemInstanceSplitContainer.Panel2.PerformLayout();
@@ -171,9 +135,6 @@
     #endregion
 
-    protected System.Windows.Forms.ComboBox problemInstanceProviderComboBox;
-    protected System.Windows.Forms.Label libraryLabel;
-    protected System.Windows.Forms.Button libraryInfoButton;
     protected System.Windows.Forms.SplitContainer problemInstanceSplitContainer;
-    protected MainForm.WindowsForms.ViewHost problemInstanceProviderViewHost;
+    protected HeuristicLab.MainForm.WindowsForms.ViewHost ProblemInstanceConsumerViewHost;
   }
 }
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ProblemView.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ProblemView.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ProblemView.cs	(revision 8086)
@@ -22,12 +22,10 @@
 using System;
 using System.Collections.Generic;
-using System.Diagnostics;
 using System.Linq;
 using System.Windows.Forms;
-using HeuristicLab.Common.Resources;
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
-using HeuristicLab.PluginInfrastructure;
 using HeuristicLab.Problems.Instances;
+using HeuristicLab.Problems.Instances.Views;
 
 namespace HeuristicLab.Optimization.Views {
@@ -38,11 +36,10 @@
   [Content(typeof(IProblem), true)]
   public partial class ProblemView : ParameterizedNamedItemView {
+
+    private static Type neededViewType = typeof(ProblemInstanceConsumerView);
+
     public new IProblem Content {
       get { return (IProblem)base.Content; }
       set { base.Content = value; }
-    }
-
-    protected IProblemInstanceProvider SelectedProvider {
-      get { return (problemInstanceProviderComboBox.SelectedIndex >= 0 ? (IProblemInstanceProvider)problemInstanceProviderComboBox.SelectedItem : null); }
     }
 
@@ -52,92 +49,22 @@
     public ProblemView() {
       InitializeComponent();
-      libraryInfoButton.Text = String.Empty;
-      libraryInfoButton.Image = VSImageLibrary.Internet;
     }
 
     protected override void OnContentChanged() {
       base.OnContentChanged();
-      if (Content == null) {
-        problemInstanceProviderComboBox.DataSource = null;
+      IProblemInstanceConsumer consumer = Content as IProblemInstanceConsumer;
+      if (consumer != null) {
+        IEnumerable<Type> viewTypes = MainFormManager.GetViewTypes(consumer.GetType(), true);
+        Type genericView = viewTypes.Where(x => x.IsSubclassOf(neededViewType)).First();
+        ProblemInstanceConsumerViewHost.ViewType = genericView;
+        ProblemInstanceConsumerViewHost.Content = consumer;
+        ProblemInstanceConsumerView view = (ProblemInstanceConsumerView)ProblemInstanceConsumerViewHost.ActiveView;
+        problemInstanceSplitContainer.Panel1Collapsed = !view.ProblemInstanceProviders.Any();
       } else {
-        problemInstanceProviderComboBox.DisplayMember = "Name";
-        problemInstanceProviderComboBox.DataSource = GetProblemInstanceProviders().ToList();
-        problemInstanceSplitContainer.Panel1Collapsed = problemInstanceProviderComboBox.Items.Count <= 0;
-
+        problemInstanceSplitContainer.Panel1Collapsed = true;
       }
       SetEnabledStateOfControls();
     }
 
-    protected override void SetEnabledStateOfControls() {
-      base.SetEnabledStateOfControls();
-      problemInstanceProviderComboBox.Enabled = !ReadOnly && !Locked && Content != null && problemInstanceProviderComboBox.Items.Count > 0;
-      libraryInfoButton.Enabled = SelectedProvider != null && SelectedProvider.WebLink != null;
-    }
-
-    protected virtual void problemInstanceProviderComboBox_SelectedIndexChanged(object sender, System.EventArgs e) {
-      if (problemInstanceProviderComboBox.SelectedIndex >= 0) {
-        dynamic provider = SelectedProvider;
-        dynamic consumer = Content;
-        provider.Consumer = consumer;
-        problemInstanceProviderViewHost.Content = SelectedProvider;
-        SetTooltip();
-      }
-      SetEnabledStateOfControls();
-    }
-
-    private void comboBox_DataSourceChanged(object sender, EventArgs e) {
-      var comboBox = (ComboBox)sender;
-      if (comboBox.DataSource == null)
-        comboBox.Items.Clear();
-    }
-
-    protected virtual void libraryInfoButton_Click(object sender, EventArgs e) {
-      if (problemInstanceProviderComboBox.SelectedIndex >= 0) {
-        if (SelectedProvider != null && SelectedProvider.WebLink != null)
-          Process.Start(SelectedProvider.WebLink.ToString());
-      }
-    }
-
-    protected virtual IEnumerable<IProblemInstanceProvider> GetProblemInstanceProviders() {
-      var consumerTypes = Content.GetType().GetInterfaces()
-        .Where(x => x.IsGenericType
-          && x.GetGenericTypeDefinition() == typeof(IProblemInstanceConsumer<>));
-
-      if (consumerTypes.Any()) {
-        var instanceTypes = consumerTypes
-          .Select(x => x.GetGenericArguments().First())
-          .Select(x => typeof(IProblemInstanceProvider<>).MakeGenericType(x));
-
-        foreach (var type in instanceTypes) {
-          foreach (var provider in ApplicationManager.Manager.GetInstances(type))
-            yield return (IProblemInstanceProvider)provider;
-        }
-      }
-    }
-
-    protected virtual void SetTooltip() {
-      toolTip.SetToolTip(problemInstanceProviderComboBox, GetProviderToolTip());
-      if (SelectedProvider.WebLink != null)
-        toolTip.SetToolTip(libraryInfoButton, "Browse to " + SelectedProvider.WebLink.ToString());
-      else toolTip.SetToolTip(libraryInfoButton, "Library does not have a web reference.");
-    }
-
-    protected virtual string GetProviderToolTip() {
-      var provider = SelectedProvider;
-      string toolTip = provider.Name;
-
-      if (!String.IsNullOrEmpty(provider.ReferencePublication)) {
-        toolTip = toolTip
-            + Environment.NewLine + Environment.NewLine
-            + provider.ReferencePublication;
-      }
-      if (provider.WebLink != null) {
-        toolTip = toolTip
-            + Environment.NewLine
-            + provider.WebLink.ToString();
-      }
-
-      return toolTip;
-    }
   }
 }
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ResultCollectionView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ResultCollectionView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ResultCollectionView.Designer.cs	(revision 8086)
@@ -46,5 +46,5 @@
     private void InitializeComponent() {
       components = new System.ComponentModel.Container();
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
     }
 
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ResultValueView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ResultValueView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ResultValueView.Designer.cs	(revision 8086)
@@ -81,5 +81,5 @@
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.Controls.Add(this.infoLabel);
       this.Controls.Add(this.viewHost);
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ResultView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ResultView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/ResultView.Designer.cs	(revision 8086)
@@ -127,5 +127,5 @@
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.Controls.Add(this.valueGroupBox);
       this.Controls.Add(this.dataTypeLabel);
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionColumnConstraintView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionColumnConstraintView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionColumnConstraintView.Designer.cs	(revision 8086)
@@ -118,5 +118,5 @@
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.Controls.Add(this.cmbConstraintColumn);
       this.Controls.Add(this.chbActive);
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionComparisonConstraintView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionComparisonConstraintView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionComparisonConstraintView.Designer.cs	(revision 8086)
@@ -71,5 +71,5 @@
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.Controls.Add(this.txtConstraintData);
       this.errorProvider.SetIconAlignment(this, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionConstraintCollectionView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionConstraintCollectionView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionConstraintCollectionView.Designer.cs	(revision 8086)
@@ -46,5 +46,5 @@
     private void InitializeComponent() {
       components = new System.ComponentModel.Container();
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
     }
 
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionContentConstraintView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionContentConstraintView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionContentConstraintView.Designer.cs	(revision 8086)
@@ -76,5 +76,5 @@
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.Controls.Add(this.runsView);
       this.Controls.Add(this.chbActive);
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionEqualityConstraintView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionEqualityConstraintView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionEqualityConstraintView.Designer.cs	(revision 8086)
@@ -61,5 +61,5 @@
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.Controls.Add(this.txtConstraintData);
       this.Name = "RunCollectionEqualityConstraintView";
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionTypeCompatibilityConstraintView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionTypeCompatibilityConstraintView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionTypeCompatibilityConstraintView.Designer.cs	(revision 8086)
@@ -63,5 +63,5 @@
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.Controls.Add(this.cmbType);
       this.Name = "RunCollectionTypeCompatibilityConstraintView";
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionModifierListView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionModifierListView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionModifierListView.Designer.cs	(revision 8086)
@@ -48,5 +48,5 @@
     private void InitializeComponent() {
       components = new System.ComponentModel.Container();
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.evaluateButton = new System.Windows.Forms.Button();
       this.SuspendLayout();
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBoxPlotView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBoxPlotView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBoxPlotView.Designer.cs	(revision 8086)
@@ -209,5 +209,5 @@
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.BackColor = System.Drawing.SystemColors.Window;
       this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBubbleChartView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBubbleChartView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBubbleChartView.Designer.cs	(revision 8086)
@@ -329,5 +329,5 @@
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.BackColor = System.Drawing.SystemColors.Window;
       this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionDataTableView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionDataTableView.Designer.cs	(revision 8086)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionDataTableView.Designer.cs	(revision 8086)
@@ -0,0 +1,135 @@
+﻿#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.Optimization.Views {
+  partial class RunCollectionDataTableView {
+    /// <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 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.dataTableComboBox = new System.Windows.Forms.ComboBox();
+      this.label1 = new System.Windows.Forms.Label();
+      this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.label2 = new System.Windows.Forms.Label();
+      this.dataRowComboBox = new System.Windows.Forms.ComboBox();
+      this.SuspendLayout();
+      // 
+      // dataTableComboBox
+      // 
+      this.dataTableComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.dataTableComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+      this.dataTableComboBox.FormattingEnabled = true;
+      this.dataTableComboBox.Location = new System.Drawing.Point(69, 3);
+      this.dataTableComboBox.Name = "dataTableComboBox";
+      this.dataTableComboBox.Size = new System.Drawing.Size(455, 21);
+      this.dataTableComboBox.TabIndex = 0;
+      this.dataTableComboBox.SelectedIndexChanged += new System.EventHandler(this.dataTableComboBox_SelectedIndexChanged);
+      // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Location = new System.Drawing.Point(3, 6);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(60, 13);
+      this.label1.TabIndex = 1;
+      this.label1.Text = "DataTable:";
+      // 
+      // 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.Caption = "View";
+      this.viewHost.Content = null;
+      this.viewHost.Enabled = false;
+      this.viewHost.Location = new System.Drawing.Point(4, 57);
+      this.viewHost.Name = "viewHost";
+      this.viewHost.ReadOnly = false;
+      this.viewHost.Size = new System.Drawing.Size(520, 314);
+      this.viewHost.TabIndex = 2;
+      this.viewHost.ViewsLabelVisible = true;
+      this.viewHost.ViewType = null;
+      // 
+      // label2
+      // 
+      this.label2.AutoSize = true;
+      this.label2.Location = new System.Drawing.Point(3, 33);
+      this.label2.Name = "label2";
+      this.label2.Size = new System.Drawing.Size(55, 13);
+      this.label2.TabIndex = 3;
+      this.label2.Text = "DataRow:";
+      // 
+      // dataRowComboBox
+      // 
+      this.dataRowComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.dataRowComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+      this.dataRowComboBox.FormattingEnabled = true;
+      this.dataRowComboBox.Location = new System.Drawing.Point(69, 30);
+      this.dataRowComboBox.Name = "dataRowComboBox";
+      this.dataRowComboBox.Size = new System.Drawing.Size(455, 21);
+      this.dataRowComboBox.TabIndex = 4;
+      this.dataRowComboBox.SelectedIndexChanged += new System.EventHandler(this.dataRowComboBox_SelectedIndexChanged);
+      // 
+      // RunCollectionDataTableView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
+      this.Controls.Add(this.dataRowComboBox);
+      this.Controls.Add(this.label2);
+      this.Controls.Add(this.viewHost);
+      this.Controls.Add(this.label1);
+      this.Controls.Add(this.dataTableComboBox);
+      this.Name = "RunCollectionDataTableView";
+      this.Size = new System.Drawing.Size(527, 374);
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.ComboBox dataTableComboBox;
+    private System.Windows.Forms.Label label1;
+    private MainForm.WindowsForms.ViewHost viewHost;
+    private System.Windows.Forms.Label label2;
+    private System.Windows.Forms.ComboBox dataRowComboBox;
+  }
+}
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionDataTableView.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionDataTableView.cs	(revision 8086)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionDataTableView.cs	(revision 8086)
@@ -0,0 +1,219 @@
+﻿#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.Analysis;
+using HeuristicLab.Collections;
+using HeuristicLab.Common;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+
+namespace HeuristicLab.Optimization.Views {
+  [View("RunCollection DataTableView")]
+  [Content(typeof(RunCollection), false)]
+  public partial class RunCollectionDataTableView : ItemView {
+    private const string AllDataRows = "All DataRows";
+
+    public RunCollectionDataTableView() {
+      InitializeComponent();
+      runMapping = new Dictionary<IRun, IEnumerable<DataRow>>();
+      combinedDataTable = new DataTable("Combined DataTable", "A data table containing all data rows from all run.");
+      viewHost.Content = combinedDataTable;
+      suppressUpdates = false;
+    }
+
+    public new RunCollection Content {
+      get { return (RunCollection)base.Content; }
+      set { base.Content = value; }
+    }
+
+    private bool suppressUpdates;
+    private readonly Dictionary<IRun, IEnumerable<DataRow>> runMapping;
+    private readonly DataTable combinedDataTable;
+    public DataTable CombinedDataTable {
+      get { return combinedDataTable; }
+    }
+
+    #region Content events
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.ItemsAdded += new CollectionItemsChangedEventHandler<IRun>(Content_ItemsAdded);
+      Content.ItemsRemoved += new CollectionItemsChangedEventHandler<IRun>(Content_ItemsRemoved);
+      Content.CollectionReset += new CollectionItemsChangedEventHandler<IRun>(Content_CollectionReset);
+      Content.UpdateOfRunsInProgressChanged += new EventHandler(Content_UpdateOfRunsInProgressChanged);
+    }
+    protected override void DeregisterContentEvents() {
+      Content.ItemsAdded -= new CollectionItemsChangedEventHandler<IRun>(Content_ItemsAdded);
+      Content.ItemsRemoved -= new CollectionItemsChangedEventHandler<IRun>(Content_ItemsRemoved);
+      Content.CollectionReset -= new CollectionItemsChangedEventHandler<IRun>(Content_CollectionReset);
+      Content.UpdateOfRunsInProgressChanged -= new EventHandler(Content_UpdateOfRunsInProgressChanged);
+      base.DeregisterContentEvents();
+    }
+
+    private void Content_ItemsAdded(object sender, CollectionItemsChangedEventArgs<IRun> e) {
+      if (InvokeRequired) {
+        Invoke(new CollectionItemsChangedEventHandler<IRun>(Content_ItemsAdded), sender, e);
+        return;
+      }
+      AddRuns(e.Items);
+    }
+    private void Content_ItemsRemoved(object sender, CollectionItemsChangedEventArgs<IRun> e) {
+      if (InvokeRequired) {
+        Invoke(new CollectionItemsChangedEventHandler<IRun>(Content_ItemsRemoved), sender, e);
+        return;
+      }
+      RemoveRuns(e.Items);
+    }
+    private void Content_CollectionReset(object sender, CollectionItemsChangedEventArgs<IRun> e) {
+      if (InvokeRequired) {
+        Invoke(new CollectionItemsChangedEventHandler<IRun>(Content_CollectionReset), sender, e);
+        return;
+      }
+      RemoveRuns(e.OldItems);
+      AddRuns(e.Items);
+    }
+    private void Content_UpdateOfRunsInProgressChanged(object sender, EventArgs e) {
+      if (InvokeRequired) {
+        Invoke(new EventHandler(Content_UpdateOfRunsInProgressChanged), sender, e);
+        return;
+      }
+      suppressUpdates = Content.UpdateOfRunsInProgress;
+      if (!suppressUpdates) UpdateRuns(Content);
+    }
+
+    private void RegisterRunEvents(IRun run) {
+      run.Changed += new System.EventHandler(run_Changed);
+    }
+    private void DeregisterRunEvents(IRun run) {
+      run.Changed -= new System.EventHandler(run_Changed);
+    }
+    private void run_Changed(object sender, EventArgs e) {
+      if (suppressUpdates) return;
+      IRun run = (IRun)sender;
+      UpdateRuns(run.ToEnumerable());
+
+    }
+    #endregion
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      dataTableComboBox.Items.Clear();
+      dataRowComboBox.Items.Clear();
+      combinedDataTable.Rows.Clear();
+      runMapping.Clear();
+
+      if (Content != null) {
+        UpdateDataTableComboBox();
+      }
+    }
+
+    private void RebuildCombinedDataTable() {
+      RemoveRuns(Content);
+      AddRuns(Content);
+    }
+
+    private void AddRuns(IEnumerable<IRun> runs) {
+      foreach (var run in runs) {
+        runMapping[run] = ExtractDataRowsFromRun(run).ToList();
+        RegisterRunEvents(run);
+      }
+      var dataRows = runs.Where(r => r.Visible && runMapping.ContainsKey(r)).SelectMany(r => runMapping[r]);
+      combinedDataTable.Rows.AddRange(dataRows);
+    }
+    private void RemoveRuns(IEnumerable<IRun> runs) {
+      var dataRows = runs.Where(r => runMapping.ContainsKey(r)).SelectMany(r => runMapping[r]).ToList();
+      foreach (var run in runs) {
+        if (!runMapping.ContainsKey(run)) continue;
+        runMapping.Remove(run);
+        DeregisterRunEvents(run);
+      }
+      combinedDataTable.Rows.RemoveRange(dataRows);
+    }
+
+    private void UpdateRuns(IEnumerable<IRun> runs) {
+      if (suppressUpdates) return;
+      foreach (var run in runs) {
+        //update color
+        foreach (var dataRow in runMapping[run]) {
+          dataRow.VisualProperties.Color = run.Color;
+        }
+        //update visibility - remove and add all rows to keep the same order as before
+        combinedDataTable.Rows.Clear();
+        combinedDataTable.Rows.AddRange(runMapping.Where(mapping => mapping.Key.Visible).SelectMany(mapping => mapping.Value));
+      }
+    }
+
+    private int rowNumber = 0;
+    private IEnumerable<DataRow> ExtractDataRowsFromRun(IRun run) {
+      string resultName = (string)dataTableComboBox.SelectedItem;
+      string rowName = (string)dataRowComboBox.SelectedItem;
+      if (!run.Results.ContainsKey(resultName)) yield break;
+
+      DataTable dataTable = (DataTable)run.Results[resultName];
+      foreach (var dataRow in dataTable.Rows) {
+        if (dataRow.Name != rowName && rowName != AllDataRows) continue;
+        rowNumber++;
+        var clonedRow = (DataRow)dataRow.Clone();
+        //row names must be unique -> add incremented number to the row name
+        clonedRow.Name = run.Name + "." + dataRow.Name + rowNumber;
+        clonedRow.VisualProperties.DisplayName = run.Name + "." + dataRow.Name;
+        clonedRow.VisualProperties.Color = run.Color;
+        yield return clonedRow;
+      }
+    }
+
+    private void UpdateDataTableComboBox() {
+      dataTableComboBox.Items.Clear();
+      var dataTables = (from run in Content
+                        from result in run.Results
+                        where result.Value is DataTable
+                        select result.Key).Distinct().ToArray();
+
+      dataTableComboBox.Items.AddRange(dataTables);
+      if (dataTableComboBox.Items.Count > 0) dataTableComboBox.SelectedItem = dataTableComboBox.Items[0];
+    }
+
+    private void UpdateDataRowComboBox() {
+      dataRowComboBox.Items.Clear();
+      string resultName = (string)dataTableComboBox.SelectedItem;
+      var dataTables = from run in Content
+                       where run.Results.ContainsKey(resultName)
+                       select run.Results[resultName] as DataTable;
+      var rowNames = (from dataTable in dataTables
+                      from row in dataTable.Rows
+                      select row.Name).Distinct().ToArray();
+
+      dataRowComboBox.Items.AddRange(rowNames);
+      dataRowComboBox.Items.Add(AllDataRows);
+      if (dataRowComboBox.Items.Count > 0) dataRowComboBox.SelectedItem = dataRowComboBox.Items[0];
+    }
+
+    private void dataTableComboBox_SelectedIndexChanged(object sender, System.EventArgs e) {
+      UpdateDataRowComboBox();
+    }
+    private void dataRowComboBox_SelectedIndexChanged(object sender, System.EventArgs e) {
+      RebuildCombinedDataTable();
+    }
+  }
+}
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/RunView.Designer.cs	(revision 8086)
@@ -247,5 +247,5 @@
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.Controls.Add(this.colorArea);
       this.Controls.Add(this.showDetailsCheckBox);
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.Designer.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.Designer.cs	(revision 7787)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.Designer.cs	(revision 8086)
@@ -141,5 +141,5 @@
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.Name = "UserDefinedAlgorithmView";
       this.engineTabPage.ResumeLayout(false);
