Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views-3.3.csproj
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views-3.3.csproj	(revision 9095)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views-3.3.csproj	(revision 9095)
@@ -0,0 +1,151 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{4B306883-EB5B-4DE0-A5E1-B6BFD8A2E4D4}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views</RootNamespace>
+    <AssemblyName>HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views-3.3</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <SignAssembly>true</SignAssembly>
+  </PropertyGroup>
+  <PropertyGroup>
+    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="ALGLIB-3.6.0, Version=3.6.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Analysis-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Collections-3.3">
+      <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Collections-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Common-3.3">
+      <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Common-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Common.Resources-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Core-3.3">
+      <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Core-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Core.Views-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Data-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Data.Views-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.MainForm-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.MainForm.WindowsForms-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Operators-3.3">
+      <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Operators-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Optimization-3.3">
+      <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Optimization-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Optimization.Views-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Optimizer-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimizer-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.PluginInfrastructure-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="RunCollectionStatisticalTabularView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="RunCollectionStatisticalTabularView.designer.cs">
+      <DependentUpon>RunCollectionStatisticalTabularView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Plugin.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="SuccessorConfigurator.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="SuccessorConfigurator.Designer.cs">
+      <DependentUpon>SuccessorConfigurator.cs</DependentUpon>
+    </Compile>
+    <Compile Include="SuccessorConfiguratorMenuItem.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="HeuristicLab.snk" />
+    <None Include="Plugin.cs.frame" />
+    <None Include="Properties\AssemblyInfo.cs.frame" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.Analysis.AlgorithmBehavior.Analyzers\3.3\HeuristicLab.Analysis.AlgorithmBehavior.Analyzers-3.3.csproj">
+      <Project>{2533d1f9-f7f6-46cb-90d2-76d254e38dee}</Project>
+      <Name>HeuristicLab.Analysis.AlgorithmBehavior.Analyzers-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <PropertyGroup>
+    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd
+</PreBuildEvent>
+  </PropertyGroup>
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/Plugin.cs.frame
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/Plugin.cs.frame	(revision 9095)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/Plugin.cs.frame	(revision 9095)
@@ -0,0 +1,42 @@
+#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 HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views {
+  [Plugin("HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views", "Provides analyzers for tracking the behavior of GAs.", "3.3.7.$WCREV$")]
+  [PluginFile("HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views-3.3.dll", PluginFileType.Assembly)]
+  [PluginDependency("HeuristicLab.Collections", "3.3")]
+  [PluginDependency("HeuristicLab.Common", "3.3")]
+  [PluginDependency("HeuristicLab.Analysis", "3.3")]
+  [PluginDependency("HeuristicLab.Core", "3.3")]
+  [PluginDependency("HeuristicLab.Core.Views", "3.3")]
+  [PluginDependency("HeuristicLab.Data", "3.3")]
+  [PluginDependency("HeuristicLab.Data.Views", "3.3")]
+  [PluginDependency("HeuristicLab.Operators", "3.3")]
+  [PluginDependency("HeuristicLab.Optimization", "3.3")]
+  [PluginDependency("HeuristicLab.Optimizer", "3.3")]
+  [PluginDependency("HeuristicLab.MainForm", "3.3")]
+  [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
+  [PluginDependency("HeuristicLab.Analysis.AlgorithmBehavior.Analyzers", "3.3")]
+  public class HeuristicLabAnalysisAlgorithmBehaviorAnalyzersViewsPlugin : PluginBase {
+  }
+}
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/Properties/AssemblyInfo.cs.frame
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/Properties/AssemblyInfo.cs.frame	(revision 9095)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/Properties/AssemblyInfo.cs.frame	(revision 9095)
@@ -0,0 +1,56 @@
+﻿#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.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views")]
+[assembly: AssemblyDescription("Provides analyzers for tracking the behavior of GAs.")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2012 HEAL")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components.  If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("410e1c1e-c991-49cd-843d-35a741927e4d")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.7.$WCREV$")]
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/RunCollectionStatisticalTabularView.cs
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/RunCollectionStatisticalTabularView.cs	(revision 9095)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/RunCollectionStatisticalTabularView.cs	(revision 9095)
@@ -0,0 +1,292 @@
+﻿#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.Drawing;
+using System.Linq;
+using System.Windows.Forms;
+using HeuristicLab.Analysis.AlgorithmBehavior.Analyzers;
+using HeuristicLab.Common;
+using HeuristicLab.Core.Views;
+using HeuristicLab.Data;
+using HeuristicLab.MainForm;
+using HeuristicLab.Optimization;
+
+namespace HeuristicLab.Analysis.AlgorithmBehavior.Views {
+  [View("RunCollection Statistical Tabular View")]
+  [Content(typeof(RunCollection), false)]
+  public sealed partial class RunCollectionStatisticalTabularView : ItemView {
+    public RunCollectionStatisticalTabularView() {
+      InitializeComponent();
+      stringConvertibleMatrixView.DataGridView.RowHeaderMouseDoubleClick += new DataGridViewCellMouseEventHandler(DataGridView_RowHeaderMouseDoubleClick);
+    }
+
+    void DataGridView_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) {
+      if (e.RowIndex >= 0) {
+        IRun run = Content.ElementAt(e.RowIndex);
+        IContentView view = MainFormManager.MainForm.ShowContent(run);
+        if (view != null) {
+          view.ReadOnly = this.ReadOnly;
+          view.Locked = this.Locked;
+        }
+      }
+    }
+
+    public new RunCollection Content {
+      get { return (RunCollection)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public override bool ReadOnly {
+      get { return true; }
+      set { /*not needed because results are always readonly */}
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      dataTableComboBox.Items.Clear();
+      dataRowComboBox.Items.Clear();
+
+      if (Content != null) {
+        UpdateDataTableComboBox();
+      }
+    }
+
+    #region events
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.ItemsAdded += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_ItemsAdded);
+      Content.ItemsRemoved += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_ItemsRemoved);
+      Content.CollectionReset += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_CollectionReset);
+
+      RegisterRunEvents(Content);
+    }
+
+    private void RegisterRunEvents(IEnumerable<IRun> runs) {
+      foreach (IRun run in runs)
+        run.Changed += new EventHandler(run_Changed);
+    }
+
+    protected override void DeregisterContentEvents() {
+      base.DeregisterContentEvents();
+      Content.ItemsAdded -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_ItemsAdded);
+      Content.ItemsRemoved -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_ItemsRemoved);
+      Content.CollectionReset -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_CollectionReset);
+
+      DeregisterRunEvents(Content);
+    }
+
+    private void DeregisterRunEvents(IEnumerable<IRun> runs) {
+      foreach (IRun run in runs)
+        run.Changed -= new EventHandler(run_Changed);
+    }
+
+    private void Content_CollectionReset(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<IRun> e) {
+      DeregisterRunEvents(e.OldItems);
+      RegisterRunEvents(e.Items);
+      RebuildCombinedDataTable();
+    }
+
+    private void Content_ItemsRemoved(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<IRun> e) {
+      DeregisterRunEvents(e.Items);
+      RebuildCombinedDataTable();
+    }
+
+    private void Content_ItemsAdded(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<IRun> e) {
+      RegisterRunEvents(e.Items);
+      RebuildCombinedDataTable();
+    }
+
+    private void run_Changed(object sender, EventArgs e) {
+      if (InvokeRequired)
+        this.Invoke(new EventHandler(run_Changed), sender, e);
+      else {
+        IRun run = (IRun)sender;
+        UpdateRun(run);
+      }
+    }
+    #endregion
+
+    private void UpdateRun(IRun run) {
+      //TODO: hacky di hack... this is baaaadddd
+      RebuildCombinedDataTable();
+    }
+
+    private void dataTableComboBox_SelectedIndexChanged(object sender, EventArgs e) {
+      UpdateDataRowComboBox();
+    }
+
+    private void dataRowComboBox_SelectedIndexChanged(object sender, EventArgs e) {
+      RebuildCombinedDataTable();
+    }
+
+    private void UpdateDataRowComboBox() {
+      dataRowComboBox.Items.Clear();
+      var 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);
+      if (dataRowComboBox.Items.Count > 0) dataRowComboBox.SelectedItem = dataRowComboBox.Items[0];
+    }
+
+    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 RebuildCombinedDataTable() {
+      string resultName = (string)dataTableComboBox.SelectedItem;
+      string rowName = (string)dataRowComboBox.SelectedItem;
+
+      string[] columnNames = new string[] { "Count", "Minimum", "Maximum", "Average", "Median", "Standard Deviation", "Variance", "25th Percentile", "75th Percentile", "Gradient", "Relative Error", "Avg. of Upper 25 %", " Avg. of Lower 25 %", "Avg. of First 25 %", "Avg. of Last 25 %" };
+
+      var runs = Content.Where(x => x.Results.ContainsKey(resultName));
+
+      StringMatrix dt = new StringMatrix(runs.Count(), columnNames.Count());
+      dt.RowNames = runs.Select(x => x.Name);
+      dt.ColumnNames = columnNames;
+
+      int i = 0;
+      foreach (Run run in runs) {
+        DataTable resTable = (DataTable)run.Results[resultName];
+        DataRow row = resTable.Rows[rowName];
+        var values = row.Values.AsEnumerable();
+
+        double cnt = values.Count();
+        double min = values.Min();
+        double max = values.Max();
+        double avg = values.Average();
+        double median = values.Median();
+        double stdDev = values.StandardDeviation();
+        double variance = values.Variance();
+        double percentile25 = values.Percentile(0.25);
+        double percentile75 = values.Percentile(0.75);
+        double k, d, r;
+        LinearLeastSquaresFitting.Calculate(values.ToArray(), out k, out d);
+        r = LinearLeastSquaresFitting.CalculateError(values.ToArray(), k, d);
+        double lowerAvg = values.OrderBy(x => x).Take((int)(values.Count() * 0.25)).Average();
+        double upperAvg = values.OrderByDescending(x => x).Take((int)(values.Count() * 0.25)).Average();
+        double firstAvg = values.Take((int)(values.Count() * 0.25)).Average();
+        double lastAvg = values.Skip((int)(values.Count() * 0.75)).Average();
+
+        dt[i, 0] = cnt.ToString();
+        dt[i, 1] = min.ToString();
+        dt[i, 2] = max.ToString();
+        dt[i, 3] = avg.ToString();
+        dt[i, 4] = median.ToString();
+        dt[i, 5] = stdDev.ToString();
+        dt[i, 6] = variance.ToString();
+        dt[i, 7] = percentile25.ToString();
+        dt[i, 8] = percentile75.ToString();
+        dt[i, 9] = k.ToString();
+        dt[i, 10] = r.ToString();
+        dt[i, 11] = upperAvg.ToString();
+        dt[i, 12] = lowerAvg.ToString();
+        dt[i, 13] = firstAvg.ToString();
+        dt[i, 14] = lastAvg.ToString();
+
+        i++;
+      }
+
+      stringConvertibleMatrixView.Content = dt;
+    }
+
+    private void addLineToChart_Click(object sender, EventArgs e) {
+      string resultName = (string)dataTableComboBox.SelectedItem;
+      string rowName = (string)dataRowComboBox.SelectedItem;
+      var runs = Content.Where(x => x.Results.ContainsKey(resultName));
+
+      foreach (Run run in runs) {
+        DataTable resTable = (DataTable)run.Results[resultName];
+        DataRow row = resTable.Rows[rowName];
+        var values = row.Values.ToArray();
+        double k, d;
+        LinearLeastSquaresFitting.Calculate(values, out k, out d);
+
+        DataRow newRow = new DataRow(row.Name + " Fitted Line");
+        for (int i = 0; i < values.Count(); i++) {
+          newRow.Values.Add(k * i + d);
+        }
+
+        if (!resTable.Rows.ContainsKey(newRow.Name))
+          resTable.Rows.Add(newRow);
+      }
+    }
+
+    private void addValuesButton_Click(object sender, EventArgs e) {
+      string resultName = (string)dataTableComboBox.SelectedItem;
+      string rowName = (string)dataRowComboBox.SelectedItem;
+      var runs = Content.Where(x => x.Results.ContainsKey(resultName));
+      StringMatrix sm = (StringMatrix)stringConvertibleMatrixView.Content;
+
+      for (int i = 0; i < runs.Count(); i++) {
+        IRun run = runs.ElementAt(i);
+
+        for (int j = 0; j < sm.ColumnNames.Count(); j++) {
+          string newResultName = resultName + " " + rowName + " " + sm.ColumnNames.ElementAt(j);
+          if (!run.Results.ContainsKey(newResultName))
+            run.Results.Add(new KeyValuePair<string, Core.IItem>(newResultName, new DoubleValue(double.Parse(sm[i, j]))));
+        }
+      }
+      //update column names of run collection
+      Content.Modify();
+    }
+
+    private void colorButton_Click(object sender, EventArgs e) {
+      string resultName = (string)dataTableComboBox.SelectedItem;
+      string rowName = (string)dataRowComboBox.SelectedItem;
+      var runs = Content.Where(x => x.Results.ContainsKey(resultName));
+      Dictionary<int, double> values = new Dictionary<int, double>();
+
+      if (stringConvertibleMatrixView.DataGridView.CurrentCell != null) {
+        int curIndex = stringConvertibleMatrixView.DataGridView.CurrentCell.ColumnIndex;
+
+        for (int i = 0; i < stringConvertibleMatrixView.Content.Rows; i++) {
+          values[i] = double.Parse(stringConvertibleMatrixView.Content.GetValue(i, curIndex));
+        }
+
+        var orderedValues = values.OrderBy(x => x.Value);
+
+        for (int i = 0; i < orderedValues.Count(); i++) {
+          var row = stringConvertibleMatrixView.DataGridView.Rows[orderedValues.ElementAt(i).Key];
+
+          int r = (int)Math.Round((double)i / (double)orderedValues.Count() * 255.0);
+          int g = (int)Math.Round(((double)orderedValues.Count() - (double)i) / (double)orderedValues.Count() * 255.0);
+
+          Color color = Color.FromArgb(r, g, 0);
+          row.DefaultCellStyle.ForeColor = color;
+        }
+      }
+    }
+  }
+}
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/RunCollectionStatisticalTabularView.designer.cs
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/RunCollectionStatisticalTabularView.designer.cs	(revision 9095)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/RunCollectionStatisticalTabularView.designer.cs	(revision 9095)
@@ -0,0 +1,174 @@
+﻿#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.Analysis.AlgorithmBehavior.Views {
+  partial class RunCollectionStatisticalTabularView {
+    /// <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.stringConvertibleMatrixView = new HeuristicLab.Data.Views.StringConvertibleMatrixView();
+      this.dataRowComboBox = new System.Windows.Forms.ComboBox();
+      this.label2 = new System.Windows.Forms.Label();
+      this.label1 = new System.Windows.Forms.Label();
+      this.dataTableComboBox = new System.Windows.Forms.ComboBox();
+      this.addLineToChart = new System.Windows.Forms.Button();
+      this.addValuesButton = new System.Windows.Forms.Button();
+      this.colorButton = new System.Windows.Forms.Button();
+      this.SuspendLayout();
+      // 
+      // stringConvertibleMatrixView
+      // 
+      this.stringConvertibleMatrixView.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.stringConvertibleMatrixView.Caption = "StringConvertibleMatrix View";
+      this.stringConvertibleMatrixView.Content = null;
+      this.stringConvertibleMatrixView.Location = new System.Drawing.Point(3, 59);
+      this.stringConvertibleMatrixView.Name = "stringConvertibleMatrixView";
+      this.stringConvertibleMatrixView.ReadOnly = false;
+      this.stringConvertibleMatrixView.ShowRowsAndColumnsTextBox = true;
+      this.stringConvertibleMatrixView.ShowStatisticalInformation = true;
+      this.stringConvertibleMatrixView.Size = new System.Drawing.Size(492, 294);
+      this.stringConvertibleMatrixView.TabIndex = 0;
+      // 
+      // 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(71, 33);
+      this.dataRowComboBox.Name = "dataRowComboBox";
+      this.dataRowComboBox.Size = new System.Drawing.Size(424, 21);
+      this.dataRowComboBox.TabIndex = 8;
+      this.dataRowComboBox.SelectedIndexChanged += new System.EventHandler(this.dataRowComboBox_SelectedIndexChanged);
+      // 
+      // label2
+      // 
+      this.label2.AutoSize = true;
+      this.label2.Location = new System.Drawing.Point(5, 36);
+      this.label2.Name = "label2";
+      this.label2.Size = new System.Drawing.Size(55, 13);
+      this.label2.TabIndex = 7;
+      this.label2.Text = "DataRow:";
+      // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Location = new System.Drawing.Point(5, 6);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(60, 13);
+      this.label1.TabIndex = 6;
+      this.label1.Text = "DataTable:";
+      // 
+      // 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(71, 3);
+      this.dataTableComboBox.Name = "dataTableComboBox";
+      this.dataTableComboBox.Size = new System.Drawing.Size(424, 21);
+      this.dataTableComboBox.TabIndex = 5;
+      this.dataTableComboBox.SelectedIndexChanged += new System.EventHandler(this.dataTableComboBox_SelectedIndexChanged);
+      // 
+      // addLineToChart
+      // 
+      this.addLineToChart.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+      this.addLineToChart.Location = new System.Drawing.Point(420, 359);
+      this.addLineToChart.Name = "addLineToChart";
+      this.addLineToChart.Size = new System.Drawing.Size(75, 23);
+      this.addLineToChart.TabIndex = 9;
+      this.addLineToChart.Text = "Fit Line";
+      this.addLineToChart.UseVisualStyleBackColor = true;
+      this.addLineToChart.Click += new System.EventHandler(this.addLineToChart_Click);
+      // 
+      // addValuesButton
+      // 
+      this.addValuesButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+      this.addValuesButton.Location = new System.Drawing.Point(281, 359);
+      this.addValuesButton.Name = "addValuesButton";
+      this.addValuesButton.Size = new System.Drawing.Size(133, 23);
+      this.addValuesButton.TabIndex = 10;
+      this.addValuesButton.Text = "Add Values to Results";
+      this.addValuesButton.UseVisualStyleBackColor = true;
+      this.addValuesButton.Click += new System.EventHandler(this.addValuesButton_Click);
+      // 
+      // colorButton
+      // 
+      this.colorButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+      this.colorButton.Location = new System.Drawing.Point(200, 359);
+      this.colorButton.Name = "colorButton";
+      this.colorButton.Size = new System.Drawing.Size(75, 23);
+      this.colorButton.TabIndex = 11;
+      this.colorButton.Text = "Color Rows";
+      this.colorButton.UseVisualStyleBackColor = true;
+      this.colorButton.Click += new System.EventHandler(this.colorButton_Click);
+      // 
+      // RunCollectionStatisticalTabularView
+      // 
+      this.Controls.Add(this.colorButton);
+      this.Controls.Add(this.addValuesButton);
+      this.Controls.Add(this.addLineToChart);
+      this.Controls.Add(this.dataRowComboBox);
+      this.Controls.Add(this.label2);
+      this.Controls.Add(this.label1);
+      this.Controls.Add(this.dataTableComboBox);
+      this.Controls.Add(this.stringConvertibleMatrixView);
+      this.Name = "RunCollectionStatisticalTabularView";
+      this.Size = new System.Drawing.Size(498, 385);
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+    #endregion
+
+    private HeuristicLab.Data.Views.StringConvertibleMatrixView stringConvertibleMatrixView;
+    private System.Windows.Forms.ComboBox dataRowComboBox;
+    private System.Windows.Forms.Label label2;
+    private System.Windows.Forms.Label label1;
+    private System.Windows.Forms.ComboBox dataTableComboBox;
+    private System.Windows.Forms.Button addLineToChart;
+    private System.Windows.Forms.Button addValuesButton;
+    private System.Windows.Forms.Button colorButton;
+  }
+}
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/SuccessorConfigurator.Designer.cs
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/SuccessorConfigurator.Designer.cs	(revision 9095)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/SuccessorConfigurator.Designer.cs	(revision 9095)
@@ -0,0 +1,147 @@
+﻿namespace HeuristicLab.Analysis.AlgorithmBehavior.Views {
+  partial class SuccessorConfigurator {
+    /// <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.okButton = new System.Windows.Forms.Button();
+      this.cancelButton = new System.Windows.Forms.Button();
+      this.label1 = new System.Windows.Forms.Label();
+      this.operatorNameTextBox = new System.Windows.Forms.TextBox();
+      this.label2 = new System.Windows.Forms.Label();
+      this.successorTextBox = new System.Windows.Forms.TextBox();
+      this.chooseSuccessorButton = new System.Windows.Forms.Button();
+      this.chooseOperatorTypeButton = new System.Windows.Forms.Button();
+      this.SuspendLayout();
+      // 
+      // okButton
+      // 
+      this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+      this.okButton.Location = new System.Drawing.Point(306, 66);
+      this.okButton.Name = "okButton";
+      this.okButton.Size = new System.Drawing.Size(75, 23);
+      this.okButton.TabIndex = 0;
+      this.okButton.Text = "OK";
+      this.okButton.UseVisualStyleBackColor = true;
+      this.okButton.Click += new System.EventHandler(this.okButton_Click);
+      // 
+      // cancelButton
+      // 
+      this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+      this.cancelButton.Location = new System.Drawing.Point(387, 66);
+      this.cancelButton.Name = "cancelButton";
+      this.cancelButton.Size = new System.Drawing.Size(75, 23);
+      this.cancelButton.TabIndex = 1;
+      this.cancelButton.Text = "Cancel";
+      this.cancelButton.UseVisualStyleBackColor = true;
+      this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click);
+      // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Location = new System.Drawing.Point(12, 9);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(82, 13);
+      this.label1.TabIndex = 2;
+      this.label1.Text = "Operator Name:";
+      // 
+      // operatorNameTextBox
+      // 
+      this.operatorNameTextBox.Location = new System.Drawing.Point(100, 6);
+      this.operatorNameTextBox.Name = "operatorNameTextBox";
+      this.operatorNameTextBox.Size = new System.Drawing.Size(216, 20);
+      this.operatorNameTextBox.TabIndex = 3;
+      // 
+      // label2
+      // 
+      this.label2.AutoSize = true;
+      this.label2.Location = new System.Drawing.Point(12, 35);
+      this.label2.Name = "label2";
+      this.label2.Size = new System.Drawing.Size(60, 13);
+      this.label2.TabIndex = 4;
+      this.label2.Text = "Successor:";
+      // 
+      // successorTextBox
+      // 
+      this.successorTextBox.Location = new System.Drawing.Point(100, 32);
+      this.successorTextBox.Name = "successorTextBox";
+      this.successorTextBox.Size = new System.Drawing.Size(216, 20);
+      this.successorTextBox.TabIndex = 5;
+      // 
+      // chooseSuccessorButton
+      // 
+      this.chooseSuccessorButton.Location = new System.Drawing.Point(322, 30);
+      this.chooseSuccessorButton.Name = "chooseSuccessorButton";
+      this.chooseSuccessorButton.Size = new System.Drawing.Size(135, 23);
+      this.chooseSuccessorButton.TabIndex = 6;
+      this.chooseSuccessorButton.Text = "Choose Successor";
+      this.chooseSuccessorButton.UseVisualStyleBackColor = true;
+      this.chooseSuccessorButton.Click += new System.EventHandler(this.chooseSuccessorButton_Click);
+      // 
+      // chooseOperatorTypeButton
+      // 
+      this.chooseOperatorTypeButton.Location = new System.Drawing.Point(322, 4);
+      this.chooseOperatorTypeButton.Name = "chooseOperatorTypeButton";
+      this.chooseOperatorTypeButton.Size = new System.Drawing.Size(135, 23);
+      this.chooseOperatorTypeButton.TabIndex = 7;
+      this.chooseOperatorTypeButton.Text = "Choose Operator Type";
+      this.chooseOperatorTypeButton.UseVisualStyleBackColor = true;
+      this.chooseOperatorTypeButton.Click += new System.EventHandler(this.chooseOperatorTypeButton_Click);
+      // 
+      // SuccessorConfigurator
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.ClientSize = new System.Drawing.Size(474, 101);
+      this.Controls.Add(this.chooseOperatorTypeButton);
+      this.Controls.Add(this.chooseSuccessorButton);
+      this.Controls.Add(this.successorTextBox);
+      this.Controls.Add(this.label2);
+      this.Controls.Add(this.operatorNameTextBox);
+      this.Controls.Add(this.label1);
+      this.Controls.Add(this.cancelButton);
+      this.Controls.Add(this.okButton);
+      this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+      this.MaximizeBox = false;
+      this.MinimizeBox = false;
+      this.Name = "SuccessorConfigurator";
+      this.ShowIcon = false;
+      this.ShowInTaskbar = false;
+      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+      this.Text = "Successor Configurator";
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.Button okButton;
+    private System.Windows.Forms.Button cancelButton;
+    private System.Windows.Forms.Label label1;
+    private System.Windows.Forms.TextBox operatorNameTextBox;
+    private System.Windows.Forms.Label label2;
+    private System.Windows.Forms.TextBox successorTextBox;
+    private System.Windows.Forms.Button chooseSuccessorButton;
+    private System.Windows.Forms.Button chooseOperatorTypeButton;
+  }
+}
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/SuccessorConfigurator.cs
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/SuccessorConfigurator.cs	(revision 9095)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/SuccessorConfigurator.cs	(revision 9095)
@@ -0,0 +1,85 @@
+﻿#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.Linq;
+using System.Windows.Forms;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Core.Views;
+using HeuristicLab.Operators;
+using HeuristicLab.Optimization;
+
+namespace HeuristicLab.Analysis.AlgorithmBehavior.Views {
+  public partial class SuccessorConfigurator : Form {
+
+    public HeuristicOptimizationEngineAlgorithm Content { get; set; }
+    private CombinedOperator currentSuccessor = null;
+    private Type operatorType = null;
+
+    public SuccessorConfigurator() {
+      InitializeComponent();
+    }
+
+    private void chooseSuccessorButton_Click(object sender, System.EventArgs e) {
+      using (TypeSelectorDialog dialog = new TypeSelectorDialog()) {
+        dialog.Caption = "Select Successor";
+        dialog.TypeSelector.Caption = "Available Successor Operators";
+        dialog.TypeSelector.Configure(typeof(CombinedOperator), false, true);
+
+        if (dialog.ShowDialog() == DialogResult.OK) {
+          currentSuccessor = (CombinedOperator)dialog.TypeSelector.CreateInstanceOfSelectedType();
+          successorTextBox.Text = currentSuccessor.ToString();
+        }
+      }
+    }
+
+    private void okButton_Click(object sender, System.EventArgs e) {
+      ParametrizeOperators();
+      Close();
+    }
+
+    private void cancelButton_Click(object sender, System.EventArgs e) {
+      Close();
+    }
+
+    private void chooseOperatorTypeButton_Click(object sender, System.EventArgs e) {
+      using (TypeSelectorDialog dialog = new TypeSelectorDialog()) {
+        dialog.Caption = "Select Operator Type";
+        dialog.TypeSelector.Caption = "Available Operator Types";
+        dialog.TypeSelector.Configure(typeof(IOperator), true, true);
+
+        if (dialog.ShowDialog() == DialogResult.OK) {
+          operatorType = dialog.TypeSelector.SelectedType;
+          operatorNameTextBox.Text = operatorType.ToString();
+        }
+      }
+    }
+
+    private void ParametrizeOperators() {
+      foreach (var op in Content.Problem.Operators.OfType<SingleSuccessorOperator>()) {
+        if (op.GetType().GetInterfaces().Any(x => x == operatorType)) {
+          op.Successor = (IOperator)currentSuccessor.Clone(new Cloner());
+        }
+      }
+    }
+  }
+}
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/SuccessorConfiguratorMenuItem.cs
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/SuccessorConfiguratorMenuItem.cs	(revision 9095)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views/3.3/SuccessorConfiguratorMenuItem.cs	(revision 9095)
@@ -0,0 +1,54 @@
+﻿#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 HeuristicLab.MainForm;
+using HeuristicLab.Optimization;
+using HeuristicLab.Optimizer;
+
+namespace HeuristicLab.Analysis.AlgorithmBehavior.Views {
+  internal class SuccessorConfiguratorMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItem, IOptimizerUserInterfaceItemProvider {
+    public override string Name {
+      get { return "&Configure Successors for Operators"; }
+    }
+    public override IEnumerable<string> Structure {
+      get { return new string[] { "&Edit" }; }
+    }
+    public override int Position {
+      get { return 4220; }
+    }
+
+    protected override void OnActiveViewChanged(object sender, EventArgs e) {
+      IContentView activeView = MainFormManager.MainForm.ActiveView as IContentView;
+      ToolStripItem.Enabled = (activeView != null) && (activeView.Content != null) && (activeView.Content is HeuristicOptimizationEngineAlgorithm) && !activeView.Locked;
+    }
+
+    public override void Execute() {
+      IContentView activeView = MainFormManager.MainForm.ActiveView as IContentView;
+      using (SuccessorConfigurator configurator = new SuccessorConfigurator()) {
+        configurator.Content = activeView.Content as HeuristicOptimizationEngineAlgorithm;
+        configurator.ShowDialog();
+      }
+    }
+  }
+}
+
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers-3.3.csproj
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers-3.3.csproj	(revision 9087)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers-3.3.csproj	(revision 9095)
@@ -59,20 +59,8 @@
       <Private>False</Private>
     </Reference>
-    <Reference Include="HeuristicLab.Core.Views-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
-      <Private>False</Private>
-    </Reference>
     <Reference Include="HeuristicLab.Data-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
       <Private>False</Private>
     </Reference>
-    <Reference Include="HeuristicLab.Data.Views-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
-      <Private>False</Private>
-    </Reference>
     <Reference Include="HeuristicLab.Encodings.PermutationEncoding-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
-      <Private>False</Private>
-    </Reference>
-    <Reference Include="HeuristicLab.MainForm-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
-      <Private>False</Private>
-    </Reference>
-    <Reference Include="HeuristicLab.MainForm.WindowsForms-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
       <Private>False</Private>
     </Reference>
@@ -89,9 +77,4 @@
     </Reference>
     <Reference Include="HeuristicLab.Optimization.Views-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
-      <Private>False</Private>
-    </Reference>
-    <Reference Include="HeuristicLab.Optimizer-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimizer-3.3.dll</HintPath>
       <Private>False</Private>
     </Reference>
@@ -137,10 +120,4 @@
     <Compile Include="VariableRemover.cs" />
     <Compile Include="LinearLeastSquaresFitting.cs" />
-    <Compile Include="RunCollectionStatisticalTabularView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="RunCollectionStatisticalTabularView.designer.cs">
-      <DependentUpon>RunCollectionStatisticalTabularView.cs</DependentUpon>
-    </Compile>
     <Compile Include="ScatterPlotHelper.cs" />
     <Compile Include="DataTableHelper.cs" />
@@ -151,11 +128,4 @@
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="VariableDuplicator.cs" />
-    <Compile Include="Views\SuccessorConfigurator.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="Views\SuccessorConfigurator.Designer.cs">
-      <DependentUpon>SuccessorConfigurator.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Views\SuccessorConfiguratorMenuItem.cs" />
     <Compile Include="WeightedParentsQualityComparer.cs" />
   </ItemGroup>
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/Plugin.cs.frame
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/Plugin.cs.frame	(revision 9087)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/Plugin.cs.frame	(revision 9095)
@@ -29,7 +29,5 @@
   [PluginDependency("HeuristicLab.Analysis", "3.3")]
   [PluginDependency("HeuristicLab.Core", "3.3")]
-  [PluginDependency("HeuristicLab.Core.Views", "3.3")]
   [PluginDependency("HeuristicLab.Data", "3.3")]
-  [PluginDependency("HeuristicLab.Data.Views", "3.3")]
   [PluginDependency("HeuristicLab.Encodings.PermutationEncoding", "3.3")]
   [PluginDependency("HeuristicLab.Operators", "3.3")]
@@ -38,7 +36,4 @@
   [PluginDependency("HeuristicLab.Parameters", "3.3")]
   [PluginDependency("HeuristicLab.Persistence", "3.3")]
-  [PluginDependency("HeuristicLab.Optimizer", "3.3")]
-  [PluginDependency("HeuristicLab.MainForm", "3.3")]
-  [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
   public class HeuristicLabAnalysisAlgorithmBehaviorAnalyzersPlugin : PluginBase {
   }
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/RunCollectionStatisticalTabularView.cs
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/RunCollectionStatisticalTabularView.cs	(revision 9087)
+++ 	(revision )
@@ -1,292 +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.Drawing;
-using System.Linq;
-using System.Windows.Forms;
-using HeuristicLab.Analysis.AlgorithmBehavior.Analyzers;
-using HeuristicLab.Common;
-using HeuristicLab.Core.Views;
-using HeuristicLab.Data;
-using HeuristicLab.MainForm;
-using HeuristicLab.Optimization;
-
-namespace HeuristicLab.Analysis.AlgorithmBehavior {
-  [View("RunCollection Statistical Tabular View")]
-  [Content(typeof(RunCollection), false)]
-  public sealed partial class RunCollectionStatisticalTabularView : ItemView {
-    public RunCollectionStatisticalTabularView() {
-      InitializeComponent();
-      stringConvertibleMatrixView.DataGridView.RowHeaderMouseDoubleClick += new DataGridViewCellMouseEventHandler(DataGridView_RowHeaderMouseDoubleClick);
-    }
-
-    void DataGridView_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) {
-      if (e.RowIndex >= 0) {
-        IRun run = Content.ElementAt(e.RowIndex);
-        IContentView view = MainFormManager.MainForm.ShowContent(run);
-        if (view != null) {
-          view.ReadOnly = this.ReadOnly;
-          view.Locked = this.Locked;
-        }
-      }
-    }
-
-    public new RunCollection Content {
-      get { return (RunCollection)base.Content; }
-      set { base.Content = value; }
-    }
-
-    public override bool ReadOnly {
-      get { return true; }
-      set { /*not needed because results are always readonly */}
-    }
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      dataTableComboBox.Items.Clear();
-      dataRowComboBox.Items.Clear();
-
-      if (Content != null) {
-        UpdateDataTableComboBox();
-      }
-    }
-
-    #region events
-    protected override void RegisterContentEvents() {
-      base.RegisterContentEvents();
-      Content.ItemsAdded += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_ItemsAdded);
-      Content.ItemsRemoved += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_ItemsRemoved);
-      Content.CollectionReset += new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_CollectionReset);
-
-      RegisterRunEvents(Content);
-    }
-
-    private void RegisterRunEvents(IEnumerable<IRun> runs) {
-      foreach (IRun run in runs)
-        run.Changed += new EventHandler(run_Changed);
-    }
-
-    protected override void DeregisterContentEvents() {
-      base.DeregisterContentEvents();
-      Content.ItemsAdded -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_ItemsAdded);
-      Content.ItemsRemoved -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_ItemsRemoved);
-      Content.CollectionReset -= new HeuristicLab.Collections.CollectionItemsChangedEventHandler<IRun>(Content_CollectionReset);
-
-      DeregisterRunEvents(Content);
-    }
-
-    private void DeregisterRunEvents(IEnumerable<IRun> runs) {
-      foreach (IRun run in runs)
-        run.Changed -= new EventHandler(run_Changed);
-    }
-
-    private void Content_CollectionReset(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<IRun> e) {
-      DeregisterRunEvents(e.OldItems);
-      RegisterRunEvents(e.Items);
-      RebuildCombinedDataTable();
-    }
-
-    private void Content_ItemsRemoved(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<IRun> e) {
-      DeregisterRunEvents(e.Items);
-      RebuildCombinedDataTable();
-    }
-
-    private void Content_ItemsAdded(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<IRun> e) {
-      RegisterRunEvents(e.Items);
-      RebuildCombinedDataTable();
-    }
-
-    private void run_Changed(object sender, EventArgs e) {
-      if (InvokeRequired)
-        this.Invoke(new EventHandler(run_Changed), sender, e);
-      else {
-        IRun run = (IRun)sender;
-        UpdateRun(run);
-      }
-    }
-    #endregion
-
-    private void UpdateRun(IRun run) {
-      //TODO: hacky di hack... this is baaaadddd
-      RebuildCombinedDataTable();
-    }
-
-    private void dataTableComboBox_SelectedIndexChanged(object sender, EventArgs e) {
-      UpdateDataRowComboBox();
-    }
-
-    private void dataRowComboBox_SelectedIndexChanged(object sender, EventArgs e) {
-      RebuildCombinedDataTable();
-    }
-
-    private void UpdateDataRowComboBox() {
-      dataRowComboBox.Items.Clear();
-      var 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);
-      if (dataRowComboBox.Items.Count > 0) dataRowComboBox.SelectedItem = dataRowComboBox.Items[0];
-    }
-
-    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 RebuildCombinedDataTable() {
-      string resultName = (string)dataTableComboBox.SelectedItem;
-      string rowName = (string)dataRowComboBox.SelectedItem;
-
-      string[] columnNames = new string[] { "Count", "Minimum", "Maximum", "Average", "Median", "Standard Deviation", "Variance", "25th Percentile", "75th Percentile", "Gradient", "Relative Error", "Avg. of Upper 25 %", " Avg. of Lower 25 %", "Avg. of First 25 %", "Avg. of Last 25 %" };
-
-      var runs = Content.Where(x => x.Results.ContainsKey(resultName));
-
-      StringMatrix dt = new StringMatrix(runs.Count(), columnNames.Count());
-      dt.RowNames = runs.Select(x => x.Name);
-      dt.ColumnNames = columnNames;
-
-      int i = 0;
-      foreach (Run run in runs) {
-        DataTable resTable = (DataTable)run.Results[resultName];
-        DataRow row = resTable.Rows[rowName];
-        var values = row.Values.AsEnumerable();
-
-        double cnt = values.Count();
-        double min = values.Min();
-        double max = values.Max();
-        double avg = values.Average();
-        double median = values.Median();
-        double stdDev = values.StandardDeviation();
-        double variance = values.Variance();
-        double percentile25 = values.Percentile(0.25);
-        double percentile75 = values.Percentile(0.75);
-        double k, d, r;
-        LinearLeastSquaresFitting.Calculate(values.ToArray(), out k, out d);
-        r = LinearLeastSquaresFitting.CalculateError(values.ToArray(), k, d);
-        double lowerAvg = values.OrderBy(x => x).Take((int)(values.Count() * 0.25)).Average();
-        double upperAvg = values.OrderByDescending(x => x).Take((int)(values.Count() * 0.25)).Average();
-        double firstAvg = values.Take((int)(values.Count() * 0.25)).Average();
-        double lastAvg = values.Skip((int)(values.Count() * 0.75)).Average();
-
-        dt[i, 0] = cnt.ToString();
-        dt[i, 1] = min.ToString();
-        dt[i, 2] = max.ToString();
-        dt[i, 3] = avg.ToString();
-        dt[i, 4] = median.ToString();
-        dt[i, 5] = stdDev.ToString();
-        dt[i, 6] = variance.ToString();
-        dt[i, 7] = percentile25.ToString();
-        dt[i, 8] = percentile75.ToString();
-        dt[i, 9] = k.ToString();
-        dt[i, 10] = r.ToString();
-        dt[i, 11] = upperAvg.ToString();
-        dt[i, 12] = lowerAvg.ToString();
-        dt[i, 13] = firstAvg.ToString();
-        dt[i, 14] = lastAvg.ToString();
-
-        i++;
-      }
-
-      stringConvertibleMatrixView.Content = dt;
-    }
-
-    private void addLineToChart_Click(object sender, EventArgs e) {
-      string resultName = (string)dataTableComboBox.SelectedItem;
-      string rowName = (string)dataRowComboBox.SelectedItem;
-      var runs = Content.Where(x => x.Results.ContainsKey(resultName));
-
-      foreach (Run run in runs) {
-        DataTable resTable = (DataTable)run.Results[resultName];
-        DataRow row = resTable.Rows[rowName];
-        var values = row.Values.ToArray();
-        double k, d;
-        LinearLeastSquaresFitting.Calculate(values, out k, out d);
-
-        DataRow newRow = new DataRow(row.Name + " Fitted Line");
-        for (int i = 0; i < values.Count(); i++) {
-          newRow.Values.Add(k * i + d);
-        }
-
-        if (!resTable.Rows.ContainsKey(newRow.Name))
-          resTable.Rows.Add(newRow);
-      }
-    }
-
-    private void addValuesButton_Click(object sender, EventArgs e) {
-      string resultName = (string)dataTableComboBox.SelectedItem;
-      string rowName = (string)dataRowComboBox.SelectedItem;
-      var runs = Content.Where(x => x.Results.ContainsKey(resultName));
-      StringMatrix sm = (StringMatrix)stringConvertibleMatrixView.Content;
-
-      for (int i = 0; i < runs.Count(); i++) {
-        IRun run = runs.ElementAt(i);
-
-        for (int j = 0; j < sm.ColumnNames.Count(); j++) {
-          string newResultName = resultName + " " + rowName + " " + sm.ColumnNames.ElementAt(j);
-          if (!run.Results.ContainsKey(newResultName))
-            run.Results.Add(new KeyValuePair<string, Core.IItem>(newResultName, new DoubleValue(double.Parse(sm[i, j]))));
-        }
-      }
-      //update column names of run collection
-      Content.Modify();
-    }
-
-    private void colorButton_Click(object sender, EventArgs e) {
-      string resultName = (string)dataTableComboBox.SelectedItem;
-      string rowName = (string)dataRowComboBox.SelectedItem;
-      var runs = Content.Where(x => x.Results.ContainsKey(resultName));
-      Dictionary<int, double> values = new Dictionary<int, double>();
-
-      if (stringConvertibleMatrixView.DataGridView.CurrentCell != null) {
-        int curIndex = stringConvertibleMatrixView.DataGridView.CurrentCell.ColumnIndex;
-
-        for (int i = 0; i < stringConvertibleMatrixView.Content.Rows; i++) {
-          values[i] = double.Parse(stringConvertibleMatrixView.Content.GetValue(i, curIndex));
-        }
-
-        var orderedValues = values.OrderBy(x => x.Value);
-
-        for (int i = 0; i < orderedValues.Count(); i++) {
-          var row = stringConvertibleMatrixView.DataGridView.Rows[orderedValues.ElementAt(i).Key];
-
-          int r = (int)Math.Round((double)i / (double)orderedValues.Count() * 255.0);
-          int g = (int)Math.Round(((double)orderedValues.Count() - (double)i) / (double)orderedValues.Count() * 255.0);
-
-          Color color = Color.FromArgb(r, g, 0);
-          row.DefaultCellStyle.ForeColor = color;
-        }
-      }
-    }
-  }
-}
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/RunCollectionStatisticalTabularView.designer.cs
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/RunCollectionStatisticalTabularView.designer.cs	(revision 9087)
+++ 	(revision )
@@ -1,174 +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.Analysis.AlgorithmBehavior {
-  partial class RunCollectionStatisticalTabularView {
-    /// <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.stringConvertibleMatrixView = new HeuristicLab.Data.Views.StringConvertibleMatrixView();
-      this.dataRowComboBox = new System.Windows.Forms.ComboBox();
-      this.label2 = new System.Windows.Forms.Label();
-      this.label1 = new System.Windows.Forms.Label();
-      this.dataTableComboBox = new System.Windows.Forms.ComboBox();
-      this.addLineToChart = new System.Windows.Forms.Button();
-      this.addValuesButton = new System.Windows.Forms.Button();
-      this.colorButton = new System.Windows.Forms.Button();
-      this.SuspendLayout();
-      // 
-      // stringConvertibleMatrixView
-      // 
-      this.stringConvertibleMatrixView.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.stringConvertibleMatrixView.Caption = "StringConvertibleMatrix View";
-      this.stringConvertibleMatrixView.Content = null;
-      this.stringConvertibleMatrixView.Location = new System.Drawing.Point(3, 59);
-      this.stringConvertibleMatrixView.Name = "stringConvertibleMatrixView";
-      this.stringConvertibleMatrixView.ReadOnly = false;
-      this.stringConvertibleMatrixView.ShowRowsAndColumnsTextBox = true;
-      this.stringConvertibleMatrixView.ShowStatisticalInformation = true;
-      this.stringConvertibleMatrixView.Size = new System.Drawing.Size(492, 294);
-      this.stringConvertibleMatrixView.TabIndex = 0;
-      // 
-      // 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(71, 33);
-      this.dataRowComboBox.Name = "dataRowComboBox";
-      this.dataRowComboBox.Size = new System.Drawing.Size(424, 21);
-      this.dataRowComboBox.TabIndex = 8;
-      this.dataRowComboBox.SelectedIndexChanged += new System.EventHandler(this.dataRowComboBox_SelectedIndexChanged);
-      // 
-      // label2
-      // 
-      this.label2.AutoSize = true;
-      this.label2.Location = new System.Drawing.Point(5, 36);
-      this.label2.Name = "label2";
-      this.label2.Size = new System.Drawing.Size(55, 13);
-      this.label2.TabIndex = 7;
-      this.label2.Text = "DataRow:";
-      // 
-      // label1
-      // 
-      this.label1.AutoSize = true;
-      this.label1.Location = new System.Drawing.Point(5, 6);
-      this.label1.Name = "label1";
-      this.label1.Size = new System.Drawing.Size(60, 13);
-      this.label1.TabIndex = 6;
-      this.label1.Text = "DataTable:";
-      // 
-      // 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(71, 3);
-      this.dataTableComboBox.Name = "dataTableComboBox";
-      this.dataTableComboBox.Size = new System.Drawing.Size(424, 21);
-      this.dataTableComboBox.TabIndex = 5;
-      this.dataTableComboBox.SelectedIndexChanged += new System.EventHandler(this.dataTableComboBox_SelectedIndexChanged);
-      // 
-      // addLineToChart
-      // 
-      this.addLineToChart.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-      this.addLineToChart.Location = new System.Drawing.Point(420, 359);
-      this.addLineToChart.Name = "addLineToChart";
-      this.addLineToChart.Size = new System.Drawing.Size(75, 23);
-      this.addLineToChart.TabIndex = 9;
-      this.addLineToChart.Text = "Fit Line";
-      this.addLineToChart.UseVisualStyleBackColor = true;
-      this.addLineToChart.Click += new System.EventHandler(this.addLineToChart_Click);
-      // 
-      // addValuesButton
-      // 
-      this.addValuesButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-      this.addValuesButton.Location = new System.Drawing.Point(281, 359);
-      this.addValuesButton.Name = "addValuesButton";
-      this.addValuesButton.Size = new System.Drawing.Size(133, 23);
-      this.addValuesButton.TabIndex = 10;
-      this.addValuesButton.Text = "Add Values to Results";
-      this.addValuesButton.UseVisualStyleBackColor = true;
-      this.addValuesButton.Click += new System.EventHandler(this.addValuesButton_Click);
-      // 
-      // colorButton
-      // 
-      this.colorButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-      this.colorButton.Location = new System.Drawing.Point(200, 359);
-      this.colorButton.Name = "colorButton";
-      this.colorButton.Size = new System.Drawing.Size(75, 23);
-      this.colorButton.TabIndex = 11;
-      this.colorButton.Text = "Color Rows";
-      this.colorButton.UseVisualStyleBackColor = true;
-      this.colorButton.Click += new System.EventHandler(this.colorButton_Click);
-      // 
-      // RunCollectionStatisticalTabularView
-      // 
-      this.Controls.Add(this.colorButton);
-      this.Controls.Add(this.addValuesButton);
-      this.Controls.Add(this.addLineToChart);
-      this.Controls.Add(this.dataRowComboBox);
-      this.Controls.Add(this.label2);
-      this.Controls.Add(this.label1);
-      this.Controls.Add(this.dataTableComboBox);
-      this.Controls.Add(this.stringConvertibleMatrixView);
-      this.Name = "RunCollectionStatisticalTabularView";
-      this.Size = new System.Drawing.Size(498, 385);
-      this.ResumeLayout(false);
-      this.PerformLayout();
-
-    }
-    #endregion
-
-    private Data.Views.StringConvertibleMatrixView stringConvertibleMatrixView;
-    private System.Windows.Forms.ComboBox dataRowComboBox;
-    private System.Windows.Forms.Label label2;
-    private System.Windows.Forms.Label label1;
-    private System.Windows.Forms.ComboBox dataTableComboBox;
-    private System.Windows.Forms.Button addLineToChart;
-    private System.Windows.Forms.Button addValuesButton;
-    private System.Windows.Forms.Button colorButton;
-  }
-}
Index: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.sln
===================================================================
--- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.sln	(revision 9087)
+++ branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.sln	(revision 9095)
@@ -1,5 +1,5 @@
 ﻿
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C80F4C35-CB87-4695-8A53-6F2D08275253}"
 	ProjectSection(SolutionItems) = preProject
@@ -9,4 +9,6 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Analysis.AlgorithmBehavior.Analyzers-3.3", "HeuristicLab.Analysis.AlgorithmBehavior.Analyzers\3.3\HeuristicLab.Analysis.AlgorithmBehavior.Analyzers-3.3.csproj", "{2533D1F9-F7F6-46CB-90D2-76D254E38DEE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views-3.3", "HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views\3.3\HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views-3.3.csproj", "{4B306883-EB5B-4DE0-A5E1-B6BFD8A2E4D4}"
 EndProject
 Global
@@ -28,4 +30,12 @@
 		{2533D1F9-F7F6-46CB-90D2-76D254E38DEE}.Release|x64.ActiveCfg = Release|Any CPU
 		{2533D1F9-F7F6-46CB-90D2-76D254E38DEE}.Release|x86.ActiveCfg = Release|Any CPU
+		{4B306883-EB5B-4DE0-A5E1-B6BFD8A2E4D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{4B306883-EB5B-4DE0-A5E1-B6BFD8A2E4D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{4B306883-EB5B-4DE0-A5E1-B6BFD8A2E4D4}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{4B306883-EB5B-4DE0-A5E1-B6BFD8A2E4D4}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{4B306883-EB5B-4DE0-A5E1-B6BFD8A2E4D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{4B306883-EB5B-4DE0-A5E1-B6BFD8A2E4D4}.Release|Any CPU.Build.0 = Release|Any CPU
+		{4B306883-EB5B-4DE0-A5E1-B6BFD8A2E4D4}.Release|x64.ActiveCfg = Release|Any CPU
+		{4B306883-EB5B-4DE0-A5E1-B6BFD8A2E4D4}.Release|x86.ActiveCfg = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
