Index: trunk/sources/HeuristicLab 3.3.sln
===================================================================
--- trunk/sources/HeuristicLab 3.3.sln	(revision 4010)
+++ trunk/sources/HeuristicLab 3.3.sln	(revision 4011)
@@ -6,4 +6,5 @@
 		ConfigMerger.exe = ConfigMerger.exe
 		..\documentation\License\gpl-3.0.txt = ..\documentation\License\gpl-3.0.txt
+		HeuristicLab 3.31.vsmdi = HeuristicLab 3.31.vsmdi
 		LocalTestRun.testrunconfig = LocalTestRun.testrunconfig
 		PreBuildEvent.cmd = PreBuildEvent.cmd
@@ -307,5 +308,10 @@
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.VehicleRouting.Views-3.3", "HeuristicLab.Problems.VehicleRouting.Views\3.3\HeuristicLab.Problems.VehicleRouting.Views-3.3.csproj", "{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.MainForm.WindowsForms-3.3.Tests", "HeuristicLab.MainForm.WindowsForms\3.3\Tests\HeuristicLab.MainForm.WindowsForms-3.3.Tests.csproj", "{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}"
+EndProject
 Global
+	GlobalSection(TestCaseManagementSettings) = postSolution
+		CategoryFile = HeuristicLab 3.31.vsmdi
+	EndGlobalSection
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -2049,4 +2055,21 @@
 		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Silverlight2|x64.Build.0 = Release|x64
 		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Silverlight2|x86.ActiveCfg = Release|x64
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Debug|x64.ActiveCfg = Debug|x64
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Debug|x86.ActiveCfg = Debug|x86
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|Any CPU.Build.0 = Release|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|x64.ActiveCfg = Release|x64
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|x64.Build.0 = Release|x64
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|x86.ActiveCfg = Release|x86
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Services|Any CPU.ActiveCfg = Release|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Services|Any CPU.Build.0 = Release|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Services|x64.ActiveCfg = Release|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Services|x86.ActiveCfg = Release|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Silverlight2|Any CPU.ActiveCfg = Release|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Silverlight2|Any CPU.Build.0 = Release|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Silverlight2|x64.ActiveCfg = Release|Any CPU
+		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Silverlight2|x86.ActiveCfg = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
Index: trunk/sources/HeuristicLab.Data.Views/3.3/BoolValueView.cs
===================================================================
--- trunk/sources/HeuristicLab.Data.Views/3.3/BoolValueView.cs	(revision 4010)
+++ trunk/sources/HeuristicLab.Data.Views/3.3/BoolValueView.cs	(revision 4011)
@@ -78,5 +78,5 @@
 
     private void valueCheckBox_CheckedChanged(object sender, EventArgs e) {
-      if (!Content.ReadOnly) Content.Value = valueCheckBox.Checked;
+      if (Content != null && !Content.ReadOnly) Content.Value = valueCheckBox.Checked;
     }
   }
Index: trunk/sources/HeuristicLab.Data.Views/3.3/StringConvertibleMatrixView.cs
===================================================================
--- trunk/sources/HeuristicLab.Data.Views/3.3/StringConvertibleMatrixView.cs	(revision 4010)
+++ trunk/sources/HeuristicLab.Data.Views/3.3/StringConvertibleMatrixView.cs	(revision 4011)
@@ -135,5 +135,5 @@
     private void UpdateRowHeaders() {
       int firstDisplayedRowIndex = dataGridView.FirstDisplayedScrollingRowIndex;
-      if(firstDisplayedRowIndex == -1)
+      if (firstDisplayedRowIndex == -1)
         firstDisplayedRowIndex = 0;
       int lastDisplaydRowIndex = firstDisplayedRowIndex + dataGridView.DisplayedRowCount(true);
@@ -241,5 +241,5 @@
     }
     private void dataGridView_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e) {
-      if (e.RowIndex < Content.Rows && e.ColumnIndex < Content.Columns) {
+      if (Content != null && e.RowIndex < Content.Rows && e.ColumnIndex < Content.Columns) {
         int rowIndex = virtualRowIndizes[e.RowIndex];
         e.Value = Content.GetValue(rowIndex, e.ColumnIndex);
Index: trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/HeuristicLab.MainForm.WindowsForms-3.3.csproj
===================================================================
--- trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/HeuristicLab.MainForm.WindowsForms-3.3.csproj	(revision 4010)
+++ trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/HeuristicLab.MainForm.WindowsForms-3.3.csproj	(revision 4011)
@@ -164,10 +164,4 @@
       <DependentUpon>ViewHost.cs</DependentUpon>
     </Compile>
-    <Compile Include="ViewHostPanel.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="ViewHostPanel.Designer.cs">
-      <DependentUpon>ViewHostPanel.cs</DependentUpon>
-    </Compile>
   </ItemGroup>
   <ItemGroup>
Index: trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/HeuristicLabMainFormWindowsFormsPlugin.cs.frame
===================================================================
--- trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/HeuristicLabMainFormWindowsFormsPlugin.cs.frame	(revision 4010)
+++ trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/HeuristicLabMainFormWindowsFormsPlugin.cs.frame	(revision 4011)
@@ -32,5 +32,5 @@
   [PluginDependency("HeuristicLab.MainForm", "3.3")]
   [PluginDependency("HeuristicLab.WinFormsUI", "2.3.1")]
-  public class HeuristicLabMainFormTestPlugin : PluginBase {
+  public class HeuristicLabMainFormPlugin : PluginBase {
   }
 }
Index: trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/Tests/AuthoringTests.txt
===================================================================
--- trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/Tests/AuthoringTests.txt	(revision 4011)
+++ trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/Tests/AuthoringTests.txt	(revision 4011)
@@ -0,0 +1,136 @@
+﻿==========================================================================
+    Visual Studio Team System: Overview of Authoring and Running Tests    
+==========================================================================
+
+This overview describes the features for authoring and running tests in 
+Visual Studio Team System and Visual Studio Team Edition for Software Testers.
+
+Opening Tests
+-------------
+To open a test, open a test project or a test metadata file (a file with
+extension .vsmdi) that contains the definition of the test. You can find
+test projects and metadata files in Solution Explorer.
+
+Viewing Tests
+-------------
+To see which tests are available to you, open the Test View window. Or,
+if you have installed Team Edition for Software Testers, you can also open
+the Test List Editor window to view tests.
+
+To open the Test View window, click the Test menu, point to Windows, and
+then click Test View. To open the Test List Editor window (if you have
+installed Team Edition for Software Testers), click Test, point to Windows,
+and then click Test List Editor.
+
+Running Tests
+-------------
+You can run tests from the Test View window and the Test List Editor window.
+See Viewing Tests to learn how to open these windows. To run one or more
+tests displayed in the Test View window, first select the tests in that
+window; to select multiple tests, hold either the Shift or CTRL key while
+clicking tests. Then click the Run Tests button in the Test View window
+toolbar.
+
+If you have installed Visual Studio Team Edition for Software Testers, you can
+also use the Test List Editor window to run tests. To run tests in Test List Editor,
+select the check box next to each test that you want to run. Then click the
+Run Tests button in the Test List Editor window toolbar.
+
+Viewing Test Results
+--------------------
+When you run a test or a series of tests, the results of the test run will be
+shown in the Test Results window. Each individual test in the run is shown on
+a separate line so that you can see its status. The window contains an
+embedded status bar in the top half of the window that provides you with
+summary details of the complete test run.
+
+To see more detailed results for a particular test result, double-click it in
+the Test Results window. This opens a window that provides more information
+about the particular test result, such as any specific error messages returned
+by the test.
+
+Changing the way that tests are run
+-----------------------------------
+Each time you run one or more tests, a collection of settings is used to
+determine how those tests are run. These settings are contained in a “test
+run configuration” file.
+
+Here is a partial list of the changes you can make with a test run 
+configuration file:
+
+ - Change the naming scheme for each test run.
+ - Change the test controller that the tests are run on so that you can run
+   tests remotely.
+ - Gather code coverage data for the code being tested so that you can see
+   which lines of code are covered by your tests.
+ - Enable and disable test deployment. 
+ - Specify additional files to deploy before tests are run.
+ - Select a different host, ASP.NET, for running ASP.NET unit tests.
+ - Select a different host, the smart device test host, for running smart device unit tests.
+ - Set various properties for the test agents that run your tests.
+ - Run custom scripts at the start and end of each test run so that you can
+   set up the test environment exactly as required each time tests are run.
+ - Set time limits for tests and test runs.
+ - Set the browser mix and the number of times to repeat Web tests in the
+   test run.
+
+By default, a test run configuration file is created whenever you create a
+new test project. You make changes to this file by double-clicking it in 
+Solution Explorer and then changing its settings. (Test run configuration
+files have the extension .testrunconfig.)
+
+A solution can contain multiple test run configuration files. Only one of
+those files, known as the “Active” test run configuration file, is used to
+determine the settings that are currently used for test runs. You select
+the active test run configuration by clicking Select Active Test Run 
+Configuration on the Test menu.
+
+-------------------------------------------------------------------------------
+
+Test Types
+----------
+Using Visual Studio Team Edition for Software Testers, you can create a number
+of different test types:
+
+Unit test: Use a unit test to create a programmatic test in C++, Visual C# or
+Visual Basic that exercises source code. A unit test calls the methods of a
+class, passing suitable parameters, and verifies that the returned value is
+what you expect.
+There are three specialized variants of unit tests:
+ - Data-driven unit tests are created when you configure a unit test to be
+   called repeatedly for each row of a data source. The data from each row
+   is used by the unit test as input data.
+ - ASP.NET unit tests are unit tests that exercise code in an ASP.NET Web
+   application.
+ - Smart device unit tests are unit tests that are deployed to a smart device
+   or emulator and then executed by the smart device test host.  
+
+Web Test: Web tests consist of an ordered series of HTTP requests that you
+record in a browser session using Microsoft Internet Explorer. You can have
+the test report specific details about the pages or sites it requests, such
+as whether a particular page contains a specified string.
+
+Load Test: You use a load test to encapsulate non-manual tests, such as
+unit, Web, and generic tests, and then run them simultaneously by using
+virtual users. Running these tests under load generates test results,
+including performance and other counters, in tables and in graphs.
+
+Generic test: A generic test is an existing program wrapped to function as a
+test in Visual Studio. The following are examples of tests or programs that
+you can turn into generic tests:
+ - An existing test that uses process exit codes to communicate whether the
+   test passed or failed. 0 indicates passing and any other value indicates
+   a failure.
+ - A general program to obtain specific functionality during a test scenario.
+ - A test or program that uses a special XML file (called a “summary results
+   file”), to communicate detailed results.
+
+Manual test: The manual test type is used when the test tasks are to be
+completed by a test engineer as opposed to an automated script.
+
+Ordered test: Use an ordered test to execute a set of tests in an order you
+specify.
+
+-------------------------------------------------------------------------------
+
+
Index: trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/Tests/ContentViewTests.cs
===================================================================
--- trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/Tests/ContentViewTests.cs	(revision 4011)
+++ trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/Tests/ContentViewTests.cs	(revision 4011)
@@ -0,0 +1,92 @@
+﻿using System;
+using System.Text;
+using System.Collections.Generic;
+using System.Linq;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using HeuristicLab.PluginInfrastructure;
+using HeuristicLab.Common;
+using System.Reflection;
+using HeuristicLab.MainForm.WindowsForms;
+
+namespace HeuristicLab.MainForm.WindowsForms_3._3.Tests {
+  [TestClass]
+  public class ContentViewTests {
+    public ContentViewTests() {
+    }
+
+    private TestContext testContextInstance;
+
+    /// <summary>
+    ///Gets or sets the test context which provides
+    ///information about and functionality for the current test run.
+    ///</summary>
+    public TestContext TestContext {
+      get {
+        return testContextInstance;
+      }
+      set {
+        testContextInstance = value;
+      }
+    }
+
+    #region Additional test attributes
+    //
+    // You can use the following additional attributes as you write your tests:
+    //
+
+    // Use ClassInitialize to run code before running the first test in the class
+    [ClassInitialize()]
+    public static void MyClassInitialize(TestContext testContext) {
+      //needed to load all assemblies in the current appdomain
+      new HeuristicLab.Analysis.Views.HeuristicLabAnalysisViewsPlugin();
+      new HeuristicLab.Core.Views.HeuristicLabCoreViewsPlugin();
+      new HeuristicLab.Data.Views.HeuristicLabDataViewsPlugin();
+      new HeuristicLab.Encodings.PermutationEncoding.Views.HeuristicLabEncodingsPermutationEncodingViewsPlugin();
+      new HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views.HeuristicLabEncodingsSymbolicExpressionTreeEncodingViewsPlugin();
+      new HeuristicLab.MainForm.HeuristicLabMainFormPlugin();
+      new HeuristicLab.MainForm.WindowsForms.HeuristicLabMainFormPlugin();
+      new HeuristicLab.Operators.Views.HeuristicLabOperatorsViewsPlugin();
+      new HeuristicLab.Operators.Views.GraphVisualization.HeuristicLabOperatorsViewsGraphVisualizationPlugin();
+      new HeuristicLab.Parameters.Views.HeuristicLabParametersViewsPlugin();
+      new HeuristicLab.Problems.ArtificialAnt.Views.HeuristicLabProblemsArtificialAntViewsPlugin();
+      new HeuristicLab.Problems.DataAnalysis.Views.HeuristicLabProblemsDataAnalysisViewsPlugin();
+      new HeuristicLab.Problems.ExternalEvaluation.Views.HeuristicLabProblemsExternalEvaluationViewsPlugin();
+      new HeuristicLab.Problems.Knapsack.Views.HeuristicLabProblemsKnapsackViewsPlugin();
+      new HeuristicLab.Problems.OneMax.Views.HeuristicLabProblemsKnapsackViewsPlugin();
+      new HeuristicLab.Problems.TestFunctions.Views.HeuristicLabProblemsTestFunctionsViewsPlugin();
+      new HeuristicLab.Problems.TravelingSalesman.Views.HeuristicLabProblemsTravelingSalesmanViewsPlugin();
+      new HeuristicLab.Problems.VehicleRouting.Views.HeuristicLabProblemsVehicleRoutingViewsPlugin();
+    }
+
+    // Use ClassCleanup to run code after all tests in a class have run
+    //[ClassCleanup()]
+    //public static void MyClassCleanup() {
+    //}
+    //
+    // Use TestInitialize to run code before running each test 
+    //[TestInitialize()]
+    //public void MyTestInitialize() {      }
+    //
+    // Use TestCleanup to run code after each test has run
+    // [TestCleanup()]
+    // public void MyTestCleanup() { }
+    //
+    #endregion
+
+    [TestMethod]
+    public void ContentViewAttributeTest() {
+      //get all non-generic and instantiable classes which implement IContentView
+      foreach (Type viewType in ApplicationManager.Manager.GetTypes(typeof(IContentView), true).Where(t => !t.ContainsGenericParameters)) {
+        //get all ContentAttributes on the instantiable view
+        foreach (ContentAttribute attribute in viewType.GetCustomAttributes(typeof(ContentAttribute), false).Cast<ContentAttribute>()) {
+          Assert.IsTrue(attribute.ContentType == typeof(IContent) || attribute.ContentType.GetInterfaces().Contains(typeof(IContent)),
+            "The type specified in the ContentAttribute of {0} must implement IContent.", viewType);
+        }
+        //check if view can handle null as content by calling OnContentChanged
+        IContentView view = (IContentView)Activator.CreateInstance(viewType);
+        ContentView_Accessor accessor = new ContentView_Accessor(new PrivateObject(view));
+        accessor.OnContentChanged();
+      }
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/Tests/HeuristicLab.MainForm.WindowsForms-3.3.Tests.csproj
===================================================================
--- trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/Tests/HeuristicLab.MainForm.WindowsForms-3.3.Tests.csproj	(revision 4011)
+++ trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/Tests/HeuristicLab.MainForm.WindowsForms-3.3.Tests.csproj	(revision 4011)
@@ -0,0 +1,176 @@
+﻿<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.MainForm.WindowsForms_3._3.Tests</RootNamespace>
+    <AssemblyName>HeuristicLab.MainForm.WindowsForms-3.3.Tests</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</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>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x64\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
+    <OutputPath>bin\x64\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x86\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <OutputPath>bin\x86\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
+    <Reference Include="System" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="ContentViewTests.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="AuthoringTests.txt" />
+  </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>
+    </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>
+    </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>
+    </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>
+    </ProjectReference>
+    <ProjectReference Include="..\..\..\HeuristicLab.Encodings.PermutationEncoding.Views\3.3\HeuristicLab.Encodings.PermutationEncoding.Views-3.3.csproj">
+      <Project>{3EAF1454-086D-44A2-8509-B1BA24DB1865}</Project>
+      <Name>HeuristicLab.Encodings.PermutationEncoding.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\..\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views\3.3\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.3.csproj">
+      <Project>{6F42C5F8-16CD-43EE-8208-FD4573A69D85}</Project>
+      <Name>HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.3</Name>
+    </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>
+    </ProjectReference>
+    <ProjectReference Include="..\..\..\HeuristicLab.Operators.Views.GraphVisualization\3.3\HeuristicLab.Operators.Views.GraphVisualization-3.3.csproj">
+      <Project>{57F38579-409D-4DD8-AB19-3F2C4A665126}</Project>
+      <Name>HeuristicLab.Operators.Views.GraphVisualization-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\..\HeuristicLab.Operators.Views\3.3\HeuristicLab.Operators.Views-3.3.csproj">
+      <Project>{C49CB749-8B24-4628-8003-E86475749410}</Project>
+      <Name>HeuristicLab.Operators.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\..\HeuristicLab.Optimization.Views\3.3\HeuristicLab.Optimization.Views-3.3.csproj">
+      <Project>{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}</Project>
+      <Name>HeuristicLab.Optimization.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\..\HeuristicLab.Parameters.Views\3.3\HeuristicLab.Parameters.Views-3.3.csproj">
+      <Project>{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}</Project>
+      <Name>HeuristicLab.Parameters.Views-3.3</Name>
+    </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>
+    </ProjectReference>
+    <ProjectReference Include="..\..\..\HeuristicLab.Problems.ArtificialAnt.Views\3.3\HeuristicLab.Problems.ArtificialAnt.Views-3.3.csproj">
+      <Project>{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}</Project>
+      <Name>HeuristicLab.Problems.ArtificialAnt.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\..\HeuristicLab.Problems.DataAnalysis.Views\3.3\HeuristicLab.Problems.DataAnalysis.Views-3.3.csproj">
+      <Project>{799B0B38-E384-4A17-A73C-F211EB854592}</Project>
+      <Name>HeuristicLab.Problems.DataAnalysis.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\..\HeuristicLab.Problems.ExternalEvaluation.Views\3.3\HeuristicLab.Problems.ExternalEvaluation.Views-3.3.csproj">
+      <Project>{3081630C-9521-47D7-8075-1777C12F212C}</Project>
+      <Name>HeuristicLab.Problems.ExternalEvaluation.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\..\HeuristicLab.Problems.Knapsack.Views\3.3\HeuristicLab.Problems.Knapsack.Views-3.3.csproj">
+      <Project>{A9EE65D9-405B-4C9C-B470-FC911AAC541B}</Project>
+      <Name>HeuristicLab.Problems.Knapsack.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\..\HeuristicLab.Problems.OneMax.Views\3.3\HeuristicLab.Problems.OneMax.Views-3.3.csproj">
+      <Project>{4FE983A1-AAF8-4977-B9E2-52B3224510CB}</Project>
+      <Name>HeuristicLab.Problems.OneMax.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\..\HeuristicLab.Problems.TestFunctions.Views\3.3\HeuristicLab.Problems.TestFunctions.Views-3.3.csproj">
+      <Project>{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}</Project>
+      <Name>HeuristicLab.Problems.TestFunctions.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\..\HeuristicLab.Problems.TravelingSalesman.Views\3.3\HeuristicLab.Problems.TravelingSalesman.Views-3.3.csproj">
+      <Project>{CDA28124-ACD0-4231-8EB0-C510B361F84E}</Project>
+      <Name>HeuristicLab.Problems.TravelingSalesman.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\..\HeuristicLab.Problems.VehicleRouting.Views\3.3\HeuristicLab.Problems.VehicleRouting.Views-3.3.csproj">
+      <Project>{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}</Project>
+      <Name>HeuristicLab.Problems.VehicleRouting.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.MainForm.WindowsForms-3.3.csproj">
+      <Project>{AB687BBE-1BFE-476B-906D-44237135431D}</Project>
+      <Name>HeuristicLab.MainForm.WindowsForms-3.3</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <Shadow Include="Test References\HeuristicLab.MainForm.WindowsForms-3.3.accessor" />
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <!-- 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: trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/Tests/Properties/AssemblyInfo.cs
===================================================================
--- trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/Tests/Properties/AssemblyInfo.cs	(revision 4011)
+++ trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/Tests/Properties/AssemblyInfo.cs	(revision 4011)
@@ -0,0 +1,35 @@
+﻿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.MainForm.WindowsForms-3.3.Tests")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("HeuristicLab.MainForm.WindowsForms-3.3.Tests")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2010")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM componenets.  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("771776f0-5246-4c18-8cfa-5ab3c90d64a7")]
+
+// 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 Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
Index: trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/Tests/Test References/HeuristicLab.MainForm.WindowsForms-3.3.accessor
===================================================================
--- trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/Tests/Test References/HeuristicLab.MainForm.WindowsForms-3.3.accessor	(revision 4011)
+++ trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/Tests/Test References/HeuristicLab.MainForm.WindowsForms-3.3.accessor	(revision 4011)
@@ -0,0 +1,2 @@
+HeuristicLab.MainForm.WindowsForms-3.3.dll
+Desktop
Index: trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/ViewHost.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/ViewHost.Designer.cs	(revision 4010)
+++ trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/ViewHost.Designer.cs	(revision 4011)
@@ -46,5 +46,4 @@
     private void InitializeComponent() {
       this.components = new System.ComponentModel.Container();
-      this.viewPanel = new HeuristicLab.MainForm.WindowsForms.ViewHostPanel();
       this.messageLabel = new System.Windows.Forms.Label();
       this.viewsLabel = new System.Windows.Forms.Label();
@@ -52,15 +51,4 @@
       this.toolTip = new System.Windows.Forms.ToolTip(this.components);
       this.SuspendLayout();
-      // 
-      // viewPanel
-      // 
-      this.viewPanel.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.viewPanel.Location = new System.Drawing.Point(0, 0);
-      this.viewPanel.Name = "viewPanel";
-      this.viewPanel.Size = new System.Drawing.Size(205, 184);
-      this.viewPanel.TabIndex = 1;
-      this.viewPanel.Resize += new System.EventHandler(this.viewPanel_Resize);
       // 
       // messageLabel
@@ -80,4 +68,5 @@
       this.viewsLabel.Image = HeuristicLab.Common.Resources.VS2008ImageLibrary.Windows;
       this.viewsLabel.Location = new System.Drawing.Point(211, 0);
+      this.viewsLabel.Margin = new System.Windows.Forms.Padding(3);
       this.viewsLabel.Name = "viewsLabel";
       this.viewsLabel.Size = new System.Drawing.Size(16, 16);
@@ -100,5 +89,4 @@
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.viewPanel);
       this.Controls.Add(this.viewsLabel);
       this.Controls.Add(this.messageLabel);
@@ -106,10 +94,7 @@
       this.Size = new System.Drawing.Size(227, 184);
       this.ResumeLayout(false);
-
     }
 
     #endregion
-
-    private ViewHostPanel viewPanel;
     private System.Windows.Forms.Label viewsLabel;
     private System.Windows.Forms.Label messageLabel;
Index: trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/ViewHost.cs
===================================================================
--- trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/ViewHost.cs	(revision 4010)
+++ trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/ViewHost.cs	(revision 4011)
@@ -33,13 +33,14 @@
       InitializeComponent();
       cachedViews = new Dictionary<Type, IContentView>();
-      viewType = null;
       startDragAndDrop = false;
       viewContextMenuStrip.IgnoredViewTypes = new List<Type>() { typeof(ViewHost) };
+
+      viewType = null;
       activeView = null;
       Content = null;
-      OnContentChanged();
-    }
-
-    private bool viewShown;
+      messageLabel.Visible = false;
+      viewsLabel.Visible = false;
+    }
+
     private Dictionary<Type, IContentView> cachedViews;
     public IEnumerable<IContentView> Views {
@@ -57,17 +58,28 @@
             if (view != null)
               view.OnHidden(EventArgs.Empty);
+            if (ActiveViewControl != null)
+              ActiveViewControl.Visible = false;
           }
           activeView = value;
           if (activeView != null) {
-            ViewType = activeView.GetType();
+            viewType = activeView.GetType();
             RegisterActiveViewEvents();
             View view = activeView as View;
             if (view != null)
               view.OnShown(new ViewShownEventArgs(view, false));
+            if (ActiveViewControl != null) {
+              ActiveViewControl.Visible = true;
+              ActiveViewControl.BringToFront();
+            }
           }
-          ActiveViewChanged();
-        }
-      }
-    }
+          OnActiveViewChanged();
+        }
+      }
+    }
+
+    private Control ActiveViewControl {
+      get { return ActiveView as Control; }
+    }
+
     private Type viewType;
     public Type ViewType {
@@ -75,5 +87,5 @@
       set {
         if (viewType != value) {
-          if (value != null && !ViewCanShowContent(value, Content))
+          if (value != null && Content != null && !ViewCanShowContent(value, Content))
             throw new ArgumentException(string.Format("View \"{0}\" cannot display content \"{1}\".",
                                                       value, Content.GetType()));
@@ -96,80 +108,88 @@
     protected override void OnContentChanged() {
       viewContextMenuStrip.Item = Content;
-
-      if (Content != null) {
-        if (viewContextMenuStrip.Items.Count == 0) {
-          messageLabel.Visible = true;
-          viewsLabel.Visible = false;
-          viewPanel.Visible = false;
-        } else {
-          messageLabel.Visible = false;
-          viewsLabel.Visible = true;
-          viewPanel.Visible = true;
-        }
-
+      //remove cached views which cannot show the content
+      foreach (Type type in cachedViews.Keys.ToList()) {
+        if (!ViewCanShowContent(type, Content)) {
+          Control c = cachedViews[type] as Control;
+          if (c != null) {
+            this.Controls.Remove(c);
+            c.Dispose();
+          }
+          cachedViews.Remove(type);
+        }
+      }
+
+      //change ViewType if view of ViewType can not show content or is null
+      if (Content != null && !ViewCanShowContent(viewType, Content)) {
         Type defaultViewType = MainFormManager.GetDefaultViewType(Content.GetType());
-        if (ViewType == null || !ViewCanShowContent(viewType, Content)) {
-          cachedViews.Clear();
-          if (defaultViewType == null) {
-            if (viewContextMenuStrip.Items.Count > 0)  // create first available view if default view is not available
-              ViewType = (Type)viewContextMenuStrip.Items[0].Tag;
-          } else ViewType = defaultViewType;
-        } else {
-          foreach (Type type in cachedViews.Keys.ToList()) {
-            if (!ViewCanShowContent(type, Content)) {
-              Control c = cachedViews[type] as Control;
-              if (c != null)
-                c.Dispose();
-              cachedViews.Remove(type);
-            }
-          }
-        }
-        UpdateActiveMenuItem();
-        foreach (IContentView view in cachedViews.Values)
-          view.Content = this.Content;
+        if (defaultViewType != null)
+          ViewType = defaultViewType;
+        else if (viewContextMenuStrip.Items.Count > 0)  // create first available view if no default view is available
+          ViewType = (Type)viewContextMenuStrip.Items[0].Tag;
+        else
+          ViewType = null;
+      }
+
+      foreach (IContentView view in cachedViews.Values)
+        view.Content = this.Content;
+
+      if (Content != null && viewType != null)
+        ActiveView = cachedViews[viewType];
+      else
+        ActiveView = null;
+
+      if (Content != null && viewContextMenuStrip.Items.Count > 0) {
+        messageLabel.Visible = false;
+        viewsLabel.Visible = true;
+      } else if (Content != null) {
+        messageLabel.Visible = true;
+        viewsLabel.Visible = false;
       } else {
         messageLabel.Visible = false;
         viewsLabel.Visible = false;
-        viewPanel.Visible = false;
       }
     }
 
     private void OnViewTypeChanged() {
-      for (int i = viewPanel.Controls.Count - 1; i > 0; i--)
-        viewPanel.Controls[i].Dispose();
-      viewPanel.Controls.Clear();
-
-      if (viewType == null || Content == null)
-        return;
-      if (!ViewCanShowContent(viewType, Content))
-        throw new InvalidOperationException(string.Format("View \"{0}\" cannot display content \"{1}\".",
-                                                          viewType, Content.GetType()));
-      if (viewPanel.Height <= 10 || viewPanel.Width <= 10) {
-        viewShown = false;
-        return;
-      }
-
-      viewShown = true;
-      UpdateActiveMenuItem();
-      IContentView view;
-      if (cachedViews.ContainsKey(ViewType))
-        view = cachedViews[ViewType];
-      else {
-        view = MainFormManager.CreateView(viewType);
-        view.ReadOnly = this.ReadOnly;
-        view.Locked = this.Locked;
-        view.Content = Content;
-        cachedViews.Add(viewType, view);
-      }
-      this.ActiveView = view;
-      Control control = (Control)view;
-      control.Dock = DockStyle.Fill;
-      viewPanel.Controls.Add(control);
-      viewPanel.Visible = true;
-    }
-
-    private void viewPanel_Resize(object sender, EventArgs e) {
-      if (!viewShown)
-        this.OnViewTypeChanged();
+      if (viewType != null) {
+        if (!ViewCanShowContent(viewType, Content))
+          throw new InvalidOperationException(string.Format("View \"{0}\" cannot display content \"{1}\".",
+                                                            viewType, Content.GetType()));
+        IContentView view;
+        if (!cachedViews.ContainsKey(ViewType)) {
+          view = MainFormManager.CreateView(viewType);
+          view.ReadOnly = this.ReadOnly;
+          view.Locked = this.Locked;
+          view.Content = Content;
+          cachedViews.Add(viewType, view);
+          Control c = view as Control;
+          if (c != null)
+            this.Controls.Add(c);
+        }
+        UpdateActiveMenuItem();
+        ActiveView = cachedViews[viewType];
+      }
+    }
+
+    private void OnActiveViewChanged() {
+      this.SuspendRepaint();
+      if (activeView != null) {
+        UpdateActiveMenuItem();
+        this.ActiveViewControl.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right;
+        this.ActiveViewControl.Size = new System.Drawing.Size(this.Width - this.viewsLabel.Width - this.viewsLabel.Margin.Left - this.viewsLabel.Margin.Right, this.Height);
+        this.ActiveViewChanged();
+      }
+      this.ResumeRepaint(true);
+    }
+
+    protected override void OnSizeChanged(EventArgs e) {
+      //mkommend: solution to resizing issues. taken from http://support.microsoft.com/kb/953934
+      //not implemented with a panel to reduce the number of nested controls
+      if (this.Handle != null)
+        this.BeginInvoke((Action<EventArgs>)OnSizeChangedHelper, e);
+    }
+    private void OnSizeChangedHelper(EventArgs e) {
+      base.OnSizeChanged(e);
+      this.viewsLabel.Location = new System.Drawing.Point(this.Width - this.viewsLabel.Margin.Right - this.viewsLabel.Width, this.viewsLabel.Margin.Top);
     }
 
@@ -194,4 +214,5 @@
       }
     }
+
     #region forwarding of view events
     protected override void OnReadOnlyChanged() {
Index: trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/ViewHostPanel.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/ViewHostPanel.Designer.cs	(revision 4010)
+++ 	(revision )
@@ -1,52 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-namespace HeuristicLab.MainForm.WindowsForms {
-  partial class ViewHostPanel {
-    /// <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() {
-      components = new System.ComponentModel.Container();
-    }
-
-    #endregion
-  }
-}
Index: trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/ViewHostPanel.cs
===================================================================
--- trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/ViewHostPanel.cs	(revision 4010)
+++ 	(revision )
@@ -1,47 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-
-namespace HeuristicLab.MainForm.WindowsForms {
-  public partial class ViewHostPanel : Panel {
-    public ViewHostPanel() {
-      InitializeComponent();
-    }
-
-    protected override void OnSizeChanged(EventArgs e) {
-      //mkommend: solution to resizing issues. taken from http://support.microsoft.com/kb/953934
-      if (this.Handle != null)
-        this.BeginInvoke((Action<EventArgs>) OnSizeChangedHelper,e);
-    }
-
-    private void OnSizeChangedHelper(EventArgs e) {
-      base.OnSizeChanged(e);
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/OperatorGraphVisualization/OperatorGraphView.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/OperatorGraphVisualization/OperatorGraphView.cs	(revision 4010)
+++ trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/OperatorGraphVisualization/OperatorGraphView.cs	(revision 4011)
@@ -42,5 +42,5 @@
     public OperatorGraphView() {
       InitializeComponent();
- 
+
       this.graphVisualizationInfoView.Controller.OnShowContextMenu += new EventHandler<EntityMenuEventArgs>(Controller_OnShowContextMenu);
       this.graphVisualizationInfoView.Controller.Model.Selection.OnNewSelection += new EventHandler(Controller_SelectionChanged);
@@ -58,12 +58,16 @@
 
     protected override void OnContentChanged() {
-      bool createdVisualizationInfo = false;
-      if (this.VisualizationInfo == null) {
-        this.VisualizationInfo = new OperatorGraphVisualizationInfo(this.Content);
-        createdVisualizationInfo = true;
-      }
-      this.graphVisualizationInfoView.Content = this.VisualizationInfo;
-      if (createdVisualizationInfo)
-        this.graphVisualizationInfoView.RelayoutGraph();
+      if (Content != null) {
+        bool createdVisualizationInfo = false;
+        if (this.VisualizationInfo == null) {
+          this.VisualizationInfo = new OperatorGraphVisualizationInfo(this.Content);
+          createdVisualizationInfo = true;
+        }
+        this.graphVisualizationInfoView.Content = this.VisualizationInfo;
+        if (createdVisualizationInfo)
+          this.graphVisualizationInfoView.RelayoutGraph();
+      } else {
+        this.graphVisualizationInfoView.Content = null;
+      }
     }
 
@@ -188,17 +192,17 @@
 
     private void initialOperatorToolStripMenuItem_Click(object sender, EventArgs e) {
-        IOperatorShapeInfo shapeInfo = this.shapeContextMenu.Tag as IOperatorShapeInfo;
-        if (this.VisualizationInfo.InitialShape == shapeInfo)
-          this.VisualizationInfo.InitialShape = null;
-        else
-          this.VisualizationInfo.InitialShape = shapeInfo;
+      IOperatorShapeInfo shapeInfo = this.shapeContextMenu.Tag as IOperatorShapeInfo;
+      if (this.VisualizationInfo.InitialShape == shapeInfo)
+        this.VisualizationInfo.InitialShape = null;
+      else
+        this.VisualizationInfo.InitialShape = shapeInfo;
     }
 
     private void breakPointToolStripMenuItem_Click(object sender, EventArgs e) {
-        IOperatorShapeInfo shapeInfo = this.shapeContextMenu.Tag as IOperatorShapeInfo;
-        if (shapeInfo != null) {
-          IOperator op = this.VisualizationInfo.GetOperatorForShapeInfo(shapeInfo);
-          op.Breakpoint = !op.Breakpoint;
-        }
+      IOperatorShapeInfo shapeInfo = this.shapeContextMenu.Tag as IOperatorShapeInfo;
+      if (shapeInfo != null) {
+        IOperator op = this.VisualizationInfo.GetOperatorForShapeInfo(shapeInfo);
+        op.Breakpoint = !op.Breakpoint;
+      }
     }
     #endregion
Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/AlgorithmView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/AlgorithmView.Designer.cs	(revision 4010)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/AlgorithmView.Designer.cs	(revision 4011)
@@ -50,5 +50,4 @@
       this.parameterCollectionView = new HeuristicLab.Core.Views.ParameterCollectionView();
       this.problemTabPage = new System.Windows.Forms.TabPage();
-      this.problemPanel = new System.Windows.Forms.Panel();
       this.problemViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
       this.openProblemButton = new System.Windows.Forms.Button();
@@ -69,5 +68,4 @@
       this.parametersTabPage.SuspendLayout();
       this.problemTabPage.SuspendLayout();
-      this.problemPanel.SuspendLayout();
       this.resultsTabPage.SuspendLayout();
       this.runsTabPage.SuspendLayout();
@@ -123,5 +121,5 @@
       // problemTabPage
       // 
-      this.problemTabPage.Controls.Add(this.problemPanel);
+      this.problemTabPage.Controls.Add(this.problemViewHost);
       this.problemTabPage.Controls.Add(this.openProblemButton);
       this.problemTabPage.Controls.Add(this.newProblemButton);
@@ -134,28 +132,19 @@
       this.problemTabPage.UseVisualStyleBackColor = true;
       // 
-      // problemPanel
-      // 
-      this.problemPanel.AllowDrop = true;
-      this.problemPanel.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.problemPanel.Controls.Add(this.problemViewHost);
-      this.problemPanel.Location = new System.Drawing.Point(6, 36);
-      this.problemPanel.Name = "problemPanel";
-      this.problemPanel.Size = new System.Drawing.Size(659, 332);
-      this.problemPanel.TabIndex = 3;
-      this.problemPanel.DragOver += new System.Windows.Forms.DragEventHandler(this.problemPanel_DragEnterOver);
-      this.problemPanel.DragDrop += new System.Windows.Forms.DragEventHandler(this.problemPanel_DragDrop);
-      this.problemPanel.DragEnter += new System.Windows.Forms.DragEventHandler(this.problemPanel_DragEnterOver);
-      // 
       // problemViewHost
       // 
+      this.problemViewHost.AllowDrop = true;
       this.problemViewHost.Content = null;
-      this.problemViewHost.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.problemViewHost.Location = new System.Drawing.Point(0, 0);
+      this.problemViewHost.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.problemViewHost.Location = new System.Drawing.Point(6, 36);
       this.problemViewHost.Name = "problemViewHost";
       this.problemViewHost.Size = new System.Drawing.Size(659, 332);
-      this.problemViewHost.TabIndex = 0;
+      this.problemViewHost.TabIndex = 3;
       this.problemViewHost.ViewType = null;
+      this.problemViewHost.DragOver += new System.Windows.Forms.DragEventHandler(this.problemViewHost_DragEnterOver);
+      this.problemViewHost.DragDrop += new System.Windows.Forms.DragEventHandler(this.problemViewHost_DragDrop);
+      this.problemViewHost.DragEnter += new System.Windows.Forms.DragEventHandler(this.problemViewHost_DragEnterOver);
       // 
       // openProblemButton
@@ -327,5 +316,4 @@
       this.parametersTabPage.ResumeLayout(false);
       this.problemTabPage.ResumeLayout(false);
-      this.problemPanel.ResumeLayout(false);
       this.resultsTabPage.ResumeLayout(false);
       this.runsTabPage.ResumeLayout(false);
@@ -355,6 +343,4 @@
     protected System.Windows.Forms.TabPage runsTabPage;
     protected RunCollectionView runsView;
-    protected System.Windows.Forms.Panel problemPanel;
-
   }
 }
Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/AlgorithmView.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/AlgorithmView.cs	(revision 4010)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/AlgorithmView.cs	(revision 4011)
@@ -216,5 +216,5 @@
       Content.Prepare(false);
     }
-    protected virtual void problemPanel_DragEnterOver(object sender, DragEventArgs e) {
+    protected virtual void problemViewHost_DragEnterOver(object sender, DragEventArgs e) {
       e.Effect = DragDropEffects.None;
       Type type = e.Data.GetData("Type") as Type;
@@ -227,5 +227,5 @@
       }
     }
-    protected virtual void problemPanel_DragDrop(object sender, DragEventArgs e) {
+    protected virtual void problemViewHost_DragDrop(object sender, DragEventArgs e) {
       if (e.Effect != DragDropEffects.None) {
         IProblem problem = e.Data.GetData("Value") as IProblem;
Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/BatchRunView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/BatchRunView.Designer.cs	(revision 4010)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/BatchRunView.Designer.cs	(revision 4011)
@@ -48,5 +48,4 @@
       this.tabControl = new System.Windows.Forms.TabControl();
       this.algorithmTabPage = new System.Windows.Forms.TabPage();
-      this.algorithmPanel = new System.Windows.Forms.Panel();
       this.algorithmViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
       this.openAlgorithmButton = new System.Windows.Forms.Button();
@@ -66,5 +65,4 @@
       this.tabControl.SuspendLayout();
       this.algorithmTabPage.SuspendLayout();
-      this.algorithmPanel.SuspendLayout();
       this.runsTabPage.SuspendLayout();
       ((System.ComponentModel.ISupportInitialize)(this.repetitionsNumericUpDown)).BeginInit();
@@ -96,5 +94,5 @@
       // algorithmTabPage
       // 
-      this.algorithmTabPage.Controls.Add(this.algorithmPanel);
+      this.algorithmTabPage.Controls.Add(this.algorithmViewHost);
       this.algorithmTabPage.Controls.Add(this.openAlgorithmButton);
       this.algorithmTabPage.Controls.Add(this.newAlgorithmButton);
@@ -107,28 +105,19 @@
       this.algorithmTabPage.UseVisualStyleBackColor = true;
       // 
-      // algorithmPanel
-      // 
-      this.algorithmPanel.AllowDrop = true;
-      this.algorithmPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+      // algorithmViewHost
+      // 
+      this.algorithmViewHost.Content = null;
+      this.algorithmViewHost.AllowDrop = true;
+      this.algorithmViewHost.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.algorithmPanel.Controls.Add(this.algorithmViewHost);
-      this.algorithmPanel.Location = new System.Drawing.Point(6, 36);
-      this.algorithmPanel.Name = "algorithmPanel";
-      this.algorithmPanel.Size = new System.Drawing.Size(659, 306);
-      this.algorithmPanel.TabIndex = 3;
-      this.algorithmPanel.DragOver += new System.Windows.Forms.DragEventHandler(this.algorithmPanel_DragEnterOver);
-      this.algorithmPanel.DragDrop += new System.Windows.Forms.DragEventHandler(this.algorithmPanel_DragDrop);
-      this.algorithmPanel.DragEnter += new System.Windows.Forms.DragEventHandler(this.algorithmPanel_DragEnterOver);
-      // 
-      // algorithmViewHost
-      // 
-      this.algorithmViewHost.Content = null;
-      this.algorithmViewHost.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.algorithmViewHost.Location = new System.Drawing.Point(0, 0);
+      this.algorithmViewHost.Location = new System.Drawing.Point(6, 36);
       this.algorithmViewHost.Name = "algorithmViewHost";
       this.algorithmViewHost.Size = new System.Drawing.Size(659, 306);
-      this.algorithmViewHost.TabIndex = 0;
+      this.algorithmViewHost.TabIndex = 3;
       this.algorithmViewHost.ViewType = null;
+      this.algorithmViewHost.DragOver += new System.Windows.Forms.DragEventHandler(this.algorithmViewHost_DragEnterOver);
+      this.algorithmViewHost.DragDrop += new System.Windows.Forms.DragEventHandler(this.algorithmViewHost_DragDrop);
+      this.algorithmViewHost.DragEnter += new System.Windows.Forms.DragEventHandler(this.algorithmViewHost_DragEnterOver);
       // 
       // openAlgorithmButton
@@ -317,5 +306,4 @@
       this.tabControl.ResumeLayout(false);
       this.algorithmTabPage.ResumeLayout(false);
-      this.algorithmPanel.ResumeLayout(false);
       this.runsTabPage.ResumeLayout(false);
       ((System.ComponentModel.ISupportInitialize)(this.repetitionsNumericUpDown)).EndInit();
@@ -342,6 +330,4 @@
     private RunCollectionView runsView;
     private System.Windows.Forms.Button pauseButton;
-    private System.Windows.Forms.Panel algorithmPanel;
-
   }
 }
Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/BatchRunView.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/BatchRunView.cs	(revision 4010)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/BatchRunView.cs	(revision 4011)
@@ -140,5 +140,6 @@
     }
     private void repetitionsNumericUpDown_ValueChanged(object sender, EventArgs e) {
-      Content.Repetitions = (int)repetitionsNumericUpDown.Value;
+      if (Content != null)
+        Content.Repetitions = (int)repetitionsNumericUpDown.Value;
     }
     private void newAlgorithmButton_Click(object sender, EventArgs e) {
@@ -197,5 +198,5 @@
       Content.Prepare(false);
     }
-    private void algorithmPanel_DragEnterOver(object sender, DragEventArgs e) {
+    private void algorithmViewHost_DragEnterOver(object sender, DragEventArgs e) {
       e.Effect = DragDropEffects.None;
       if (ReadOnly)
@@ -210,5 +211,5 @@
       }
     }
-    private void algorithmPanel_DragDrop(object sender, DragEventArgs e) {
+    private void algorithmViewHost_DragDrop(object sender, DragEventArgs e) {
       if (e.Effect != DragDropEffects.None) {
         IAlgorithm algorithm = e.Data.GetData("Value") as IAlgorithm;
Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/EngineAlgorithmView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/EngineAlgorithmView.Designer.cs	(revision 4010)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/EngineAlgorithmView.Designer.cs	(revision 4011)
@@ -58,5 +58,4 @@
       this.resultsTabPage.SuspendLayout();
       this.runsTabPage.SuspendLayout();
-      this.problemPanel.SuspendLayout();
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
       this.engineTabPage.SuspendLayout();
@@ -148,5 +147,5 @@
       // problemPanel
       // 
-      this.problemPanel.Size = new System.Drawing.Size(693, 399);
+      this.problemViewHost.Size = new System.Drawing.Size(693, 399);
       // 
       // nameTextBox
@@ -276,5 +275,4 @@
       this.resultsTabPage.ResumeLayout(false);
       this.runsTabPage.ResumeLayout(false);
-      this.problemPanel.ResumeLayout(false);
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
       this.engineTabPage.ResumeLayout(false);
Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/RunView.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/RunView.cs	(revision 4010)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/RunView.cs	(revision 4011)
@@ -103,6 +103,6 @@
     }
 
+    private string selectedName;
     private void FillListView() {
-      string selectedName = null;
       if (listView.SelectedItems.Count == 1) selectedName = listView.SelectedItems[0].SubItems[0].Text;
 
@@ -117,4 +117,5 @@
           for (int i = 0; i < listView.Columns.Count; i++)
             listView.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
+          selectedName = null;
         }
       }
Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.Designer.cs	(revision 4010)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.Designer.cs	(revision 4011)
@@ -54,5 +54,4 @@
       this.resultsTabPage.SuspendLayout();
       this.runsTabPage.SuspendLayout();
-      this.problemPanel.SuspendLayout();
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
       this.globalScopeTabPage.SuspendLayout();
@@ -152,5 +151,4 @@
       this.resultsTabPage.ResumeLayout(false);
       this.runsTabPage.ResumeLayout(false);
-      this.problemPanel.ResumeLayout(false);
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
       this.globalScopeTabPage.ResumeLayout(false);
Index: trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.Designer.cs	(revision 4010)
+++ trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.Designer.cs	(revision 4011)
@@ -47,6 +47,5 @@
     private void InitializeComponent() {
       this.valueGroupBox = new System.Windows.Forms.GroupBox();
-      this.valuePanel = new System.Windows.Forms.Panel();
-      this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.valueViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
       this.clearValueButton = new System.Windows.Forms.Button();
       this.setValueButton = new System.Windows.Forms.Button();
@@ -55,5 +54,4 @@
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
       this.valueGroupBox.SuspendLayout();
-      this.valuePanel.SuspendLayout();
       this.SuspendLayout();
       // 
@@ -92,5 +90,5 @@
                   | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
-      this.valueGroupBox.Controls.Add(this.valuePanel);
+      this.valueGroupBox.Controls.Add(this.valueViewHost);
       this.valueGroupBox.Controls.Add(this.clearValueButton);
       this.valueGroupBox.Controls.Add(this.setValueButton);
@@ -102,28 +100,19 @@
       this.valueGroupBox.Text = "Value";
       // 
-      // valuePanel
+      // viewHost
       // 
-      this.valuePanel.AllowDrop = true;
-      this.valuePanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+      this.valueViewHost.AllowDrop = true;
+      this.valueViewHost.Content = null;
+      this.valueViewHost.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.valuePanel.Controls.Add(this.viewHost);
-      this.valuePanel.Location = new System.Drawing.Point(6, 49);
-      this.valuePanel.Name = "valuePanel";
-      this.valuePanel.Size = new System.Drawing.Size(374, 156);
-      this.valuePanel.TabIndex = 0;
-      this.valuePanel.DragOver += new System.Windows.Forms.DragEventHandler(this.valuePanel_DragEnterOver);
-      this.valuePanel.DragDrop += new System.Windows.Forms.DragEventHandler(this.valuePanel_DragDrop);
-      this.valuePanel.DragEnter += new System.Windows.Forms.DragEventHandler(this.valuePanel_DragEnterOver);
-      // 
-      // viewHost
-      // 
-      this.viewHost.Content = null;
-      this.viewHost.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.viewHost.Location = new System.Drawing.Point(0, 0);
-      this.viewHost.Name = "viewHost";
-      this.viewHost.Size = new System.Drawing.Size(374, 156);
-      this.viewHost.TabIndex = 0;
-      this.viewHost.ViewType = null;
+      this.valueViewHost.Location = new System.Drawing.Point(6, 49);
+      this.valueViewHost.Name = "valueViewHost";
+      this.valueViewHost.Size = new System.Drawing.Size(374, 156);
+      this.valueViewHost.TabIndex = 0;
+      this.valueViewHost.ViewType = null;
+      this.valueViewHost.DragOver += new System.Windows.Forms.DragEventHandler(this.valueViewHostPanel_DragEnterOver);
+      this.valueViewHost.DragDrop += new System.Windows.Forms.DragEventHandler(this.valueViewHost_DragDrop);
+      this.valueViewHost.DragEnter += new System.Windows.Forms.DragEventHandler(this.valueViewHostPanel_DragEnterOver);
       // 
       // clearValueButton
@@ -189,5 +178,4 @@
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
       this.valueGroupBox.ResumeLayout(false);
-      this.valuePanel.ResumeLayout(false);
       this.ResumeLayout(false);
       this.PerformLayout();
@@ -198,6 +186,5 @@
 
     protected System.Windows.Forms.GroupBox valueGroupBox;
-    protected System.Windows.Forms.Panel valuePanel;
-    protected HeuristicLab.MainForm.WindowsForms.ViewHost viewHost;
+    protected HeuristicLab.MainForm.WindowsForms.ViewHost valueViewHost;
     protected System.Windows.Forms.Button setValueButton;
     protected System.Windows.Forms.Button clearValueButton;
Index: trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.cs	(revision 4010)
+++ trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.cs	(revision 4011)
@@ -79,9 +79,9 @@
       if (Content == null) {
         actualNameTextBox.Text = "-";
-        viewHost.Content = null;
+        valueViewHost.Content = null;
       } else {
         actualNameTextBox.Text = Content.ActualName;
-        viewHost.ViewType = null;
-        viewHost.Content = Content.Value;
+        valueViewHost.ViewType = null;
+        valueViewHost.Content = Content.Value;
       }
     }
@@ -107,6 +107,6 @@
       else {
         clearValueButton.Enabled = Content.Value != null && !ReadOnly;
-        viewHost.ViewType = null;
-        viewHost.Content = Content.Value;
+        valueViewHost.ViewType = null;
+        valueViewHost.Content = Content.Value;
       }
     }
@@ -133,5 +133,5 @@
       Content.Value = null;
     }
-    protected virtual void valuePanel_DragEnterOver(object sender, DragEventArgs e) {
+    protected virtual void valueViewHostPanel_DragEnterOver(object sender, DragEventArgs e) {
       e.Effect = DragDropEffects.None;
       Type type = e.Data.GetData("Type") as Type;
@@ -144,5 +144,5 @@
       }
     }
-    protected virtual void valuePanel_DragDrop(object sender, DragEventArgs e) {
+    protected virtual void valueViewHost_DragDrop(object sender, DragEventArgs e) {
       if (e.Effect != DragDropEffects.None) {
         T value = e.Data.GetData("Value") as T;
Index: trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.Designer.cs	(revision 4010)
+++ trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.Designer.cs	(revision 4011)
@@ -47,11 +47,9 @@
     private void InitializeComponent() {
       this.valueGroupBox = new System.Windows.Forms.GroupBox();
-      this.valuePanel = new System.Windows.Forms.Panel();
-      this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.valueViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
       this.clearValueButton = new System.Windows.Forms.Button();
       this.setValueButton = new System.Windows.Forms.Button();
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
       this.valueGroupBox.SuspendLayout();
-      this.valuePanel.SuspendLayout();
       this.SuspendLayout();
       // 
@@ -78,5 +76,5 @@
                   | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
-      this.valueGroupBox.Controls.Add(this.valuePanel);
+      this.valueGroupBox.Controls.Add(this.valueViewHost);
       this.valueGroupBox.Controls.Add(this.clearValueButton);
       this.valueGroupBox.Controls.Add(this.setValueButton);
@@ -88,28 +86,19 @@
       this.valueGroupBox.Text = "Value";
       // 
-      // valuePanel
+      // viewHost
       // 
-      this.valuePanel.AllowDrop = true;
-      this.valuePanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+      this.valueViewHost.AllowDrop = true;
+      this.valueViewHost.Content = null;
+      this.valueViewHost.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.valuePanel.Controls.Add(this.viewHost);
-      this.valuePanel.Location = new System.Drawing.Point(6, 49);
-      this.valuePanel.Name = "valuePanel";
-      this.valuePanel.Size = new System.Drawing.Size(374, 182);
-      this.valuePanel.TabIndex = 0;
-      this.valuePanel.DragOver += new System.Windows.Forms.DragEventHandler(this.valuePanel_DragEnterOver);
-      this.valuePanel.DragDrop += new System.Windows.Forms.DragEventHandler(this.valuePanel_DragDrop);
-      this.valuePanel.DragEnter += new System.Windows.Forms.DragEventHandler(this.valuePanel_DragEnterOver);
-      // 
-      // viewHost
-      // 
-      this.viewHost.Content = null;
-      this.viewHost.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.viewHost.Location = new System.Drawing.Point(0, 0);
-      this.viewHost.Name = "viewHost";
-      this.viewHost.Size = new System.Drawing.Size(374, 182);
-      this.viewHost.TabIndex = 0;
-      this.viewHost.ViewType = null;
+      this.valueViewHost.Location = new System.Drawing.Point(6, 49);
+      this.valueViewHost.Name = "viewHost";
+      this.valueViewHost.Size = new System.Drawing.Size(374, 182);
+      this.valueViewHost.TabIndex = 0;
+      this.valueViewHost.ViewType = null;
+      this.valueViewHost.DragOver += new System.Windows.Forms.DragEventHandler(this.valueViewHost_DragEnterOver);
+      this.valueViewHost.DragDrop += new System.Windows.Forms.DragEventHandler(this.valueViewHost_DragDrop);
+      this.valueViewHost.DragEnter += new System.Windows.Forms.DragEventHandler(this.valueViewHost_DragEnterOver);
       // 
       // clearValueButton
@@ -152,5 +141,4 @@
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
       this.valueGroupBox.ResumeLayout(false);
-      this.valuePanel.ResumeLayout(false);
       this.ResumeLayout(false);
       this.PerformLayout();
@@ -161,6 +149,5 @@
 
     protected System.Windows.Forms.GroupBox valueGroupBox;
-    protected System.Windows.Forms.Panel valuePanel;
-    protected HeuristicLab.MainForm.WindowsForms.ViewHost viewHost;
+    protected HeuristicLab.MainForm.WindowsForms.ViewHost valueViewHost;
     protected System.Windows.Forms.Button setValueButton;
     protected System.Windows.Forms.Button clearValueButton;
Index: trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.cs	(revision 4010)
+++ trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.cs	(revision 4011)
@@ -78,9 +78,9 @@
       if (Content == null) {
         clearValueButton.Visible = true;
-        viewHost.Content = null;
+        valueViewHost.Content = null;
       } else {
         clearValueButton.Visible = !(Content is ValueParameter<T>);
-        viewHost.ViewType = null;
-        viewHost.Content = Content.Value;
+        valueViewHost.ViewType = null;
+        valueViewHost.Content = Content.Value;
       }
     }
@@ -98,6 +98,6 @@
       else {
         clearValueButton.Enabled = Content.Value != null && !ReadOnly;
-        viewHost.ViewType = null;
-        viewHost.Content = Content.Value;
+        valueViewHost.ViewType = null;
+        valueViewHost.Content = Content.Value;
       }
     }
@@ -121,5 +121,5 @@
       Content.Value = null;
     }
-    protected virtual void valuePanel_DragEnterOver(object sender, DragEventArgs e) {
+    protected virtual void valueViewHost_DragEnterOver(object sender, DragEventArgs e) {
       e.Effect = DragDropEffects.None;
       Type type = e.Data.GetData("Type") as Type;
@@ -132,5 +132,5 @@
       }
     }
-    protected virtual void valuePanel_DragDrop(object sender, DragEventArgs e) {
+    protected virtual void valueViewHost_DragDrop(object sender, DragEventArgs e) {
       if (e.Effect != DragDropEffects.None) {
         T value = e.Data.GetData("Value") as T;
Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/EstimatedValuesView.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/EstimatedValuesView.cs	(revision 4010)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/EstimatedValuesView.cs	(revision 4011)
@@ -89,11 +89,14 @@
       if (InvokeRequired) Invoke((Action)UpdateEstimatedValues);
       else {
-        double[,] values =
-        MatrixExtensions<double>.Create(
-          Content.ProblemData.Dataset.GetVariableValues(Content.ProblemData.TargetVariable.Value),
-          Content.EstimatedValues.ToArray());
-        var content = new DoubleMatrix(values);
-        content.ColumnNames = new string[] { "Original", "Estimated" };
-        matrixView.Content = content;
+        DoubleMatrix matrix = null;
+        if (Content != null) {
+          double[,] values =
+          MatrixExtensions<double>.Create(
+            Content.ProblemData.Dataset.GetVariableValues(Content.ProblemData.TargetVariable.Value),
+            Content.EstimatedValues.ToArray());
+          matrix = new DoubleMatrix(values);
+          matrix.ColumnNames = new string[] { "Original", "Estimated" };
+        }
+        matrixView.Content = matrix;
       }
     }
Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/LineChartView.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/LineChartView.cs	(revision 4010)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/LineChartView.cs	(revision 4011)
@@ -61,16 +61,18 @@
     private void RedrawChart() {
       this.chart.Series.Clear();
-      this.chart.Series.Add(TARGETVARIABLE_SERIES_NAME);
-      this.chart.Series[TARGETVARIABLE_SERIES_NAME].LegendText = Content.ProblemData.TargetVariable.Value;
-      this.chart.Series[TARGETVARIABLE_SERIES_NAME].ChartType = SeriesChartType.FastLine;
-      this.chart.Series[TARGETVARIABLE_SERIES_NAME].Points.DataBindY(Content.ProblemData.Dataset.GetVariableValues(Content.ProblemData.TargetVariable.Value));
-      this.UpdateStripLines();
+      if (Content != null) {
+        this.chart.Series.Add(TARGETVARIABLE_SERIES_NAME);
+        this.chart.Series[TARGETVARIABLE_SERIES_NAME].LegendText = Content.ProblemData.TargetVariable.Value;
+        this.chart.Series[TARGETVARIABLE_SERIES_NAME].ChartType = SeriesChartType.FastLine;
+        this.chart.Series[TARGETVARIABLE_SERIES_NAME].Points.DataBindY(Content.ProblemData.Dataset.GetVariableValues(Content.ProblemData.TargetVariable.Value));
+        this.UpdateStripLines();
 
-      this.chart.Series.Add(ESTIMATEDVALUES_SERIES_NAME);
-      this.chart.Series[ESTIMATEDVALUES_SERIES_NAME].LegendText = Content.ItemName;
-      this.chart.Series[ESTIMATEDVALUES_SERIES_NAME].ChartType = SeriesChartType.FastLine;
-      this.chart.Series[ESTIMATEDVALUES_SERIES_NAME].Points.DataBindY(Content.EstimatedValues.ToArray());
-      this.chart.Series[ESTIMATEDVALUES_SERIES_NAME].Tag = Content;
-      UpdateCursorInterval();
+        this.chart.Series.Add(ESTIMATEDVALUES_SERIES_NAME);
+        this.chart.Series[ESTIMATEDVALUES_SERIES_NAME].LegendText = Content.ItemName;
+        this.chart.Series[ESTIMATEDVALUES_SERIES_NAME].ChartType = SeriesChartType.FastLine;
+        this.chart.Series[ESTIMATEDVALUES_SERIES_NAME].Points.DataBindY(Content.EstimatedValues.ToArray());
+        this.chart.Series[ESTIMATEDVALUES_SERIES_NAME].Tag = Content;
+        UpdateCursorInterval();
+      }
     }
 
