Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerControl.Designer.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerControl.Designer.cs	(revision 13335)
+++ 	(revision )
@@ -1,52 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.PluginInfrastructure.Advanced {
-  partial class InstallationManagerControl {
-    /// <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();
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
-    }
-
-    #endregion
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerControl.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerControl.cs	(revision 13335)
+++ 	(revision )
@@ -1,31 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.Windows.Forms;
-
-namespace HeuristicLab.PluginInfrastructure.Advanced {
-  internal partial class InstallationManagerControl : UserControl {
-
-    public InstallationManagerControl()
-      : base() {
-      InitializeComponent();
-    }
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerForm.Designer.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerForm.Designer.cs	(revision 13335)
+++ 	(revision )
@@ -1,180 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.PluginInfrastructure.Advanced {
-  partial class InstallationManagerForm {
-    /// <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.components = new System.ComponentModel.Container();
-      this.statusStrip = new System.Windows.Forms.StatusStrip();
-      this.toolStripProgressBar = new System.Windows.Forms.ToolStripProgressBar();
-      this.toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
-      this.tabControl = new System.Windows.Forms.TabControl();
-      this.localPluginsTabPage = new System.Windows.Forms.TabPage();
-      this.localPluginsView = new HeuristicLab.PluginInfrastructure.Advanced.InstalledPluginsView();
-      this.logTabPage = new System.Windows.Forms.TabPage();
-      this.logTextBox = new System.Windows.Forms.TextBox();
-      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
-      this.statusStrip.SuspendLayout();
-      this.tabControl.SuspendLayout();
-      this.localPluginsTabPage.SuspendLayout();
-      this.logTabPage.SuspendLayout();
-      this.SuspendLayout();
-      // 
-      // statusStrip
-      // 
-      this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
-            this.toolStripProgressBar,
-            this.toolStripStatusLabel});
-      this.statusStrip.Location = new System.Drawing.Point(0, 422);
-      this.statusStrip.Name = "statusStrip";
-      this.statusStrip.Size = new System.Drawing.Size(622, 22);
-      this.statusStrip.TabIndex = 0;
-      // 
-      // toolStripProgressBar
-      // 
-      this.toolStripProgressBar.MarqueeAnimationSpeed = 30;
-      this.toolStripProgressBar.Name = "toolStripProgressBar";
-      this.toolStripProgressBar.Size = new System.Drawing.Size(100, 16);
-      this.toolStripProgressBar.Style = System.Windows.Forms.ProgressBarStyle.Marquee;
-      this.toolStripProgressBar.Visible = false;
-      // 
-      // toolStripStatusLabel
-      // 
-      this.toolStripStatusLabel.Name = "toolStripStatusLabel";
-      this.toolStripStatusLabel.Size = new System.Drawing.Size(0, 17);
-      // 
-      // tabControl
-      // 
-      this.tabControl.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.tabControl.Controls.Add(this.localPluginsTabPage);
-      this.tabControl.Controls.Add(this.logTabPage);
-      this.tabControl.Location = new System.Drawing.Point(12, 27);
-      this.tabControl.Name = "tabControl";
-      this.tabControl.SelectedIndex = 0;
-      this.tabControl.Size = new System.Drawing.Size(598, 392);
-      this.tabControl.TabIndex = 16;
-      this.tabControl.SelectedIndexChanged += new System.EventHandler(this.tabControl_SelectedIndexChanged);
-      // 
-      // localPluginsTabPage
-      // 
-      this.localPluginsTabPage.Controls.Add(this.localPluginsView);
-      this.localPluginsTabPage.Location = new System.Drawing.Point(4, 22);
-      this.localPluginsTabPage.Name = "localPluginsTabPage";
-      this.localPluginsTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.localPluginsTabPage.Size = new System.Drawing.Size(590, 366);
-      this.localPluginsTabPage.TabIndex = 0;
-      this.localPluginsTabPage.Text = "Installed Plugins";
-      this.toolTip.SetToolTip(this.localPluginsTabPage, "Delete or update installed plugins");
-      this.localPluginsTabPage.UseVisualStyleBackColor = true;
-      // 
-      // localPluginsView
-      // 
-      this.localPluginsView.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.localPluginsView.InstallationManager = null;
-      this.localPluginsView.Location = new System.Drawing.Point(6, 6);
-      this.localPluginsView.Name = "localPluginsView";
-      this.localPluginsView.PluginManager = null;
-      this.localPluginsView.Size = new System.Drawing.Size(578, 354);
-      this.localPluginsView.TabIndex = 0;
-      // 
-      // logTabPage
-      // 
-      this.logTabPage.Controls.Add(this.logTextBox);
-      this.logTabPage.Location = new System.Drawing.Point(4, 22);
-      this.logTabPage.Name = "logTabPage";
-      this.logTabPage.Size = new System.Drawing.Size(590, 366);
-      this.logTabPage.TabIndex = 2;
-      this.logTabPage.Text = "Log";
-      this.toolTip.SetToolTip(this.logTabPage, "Show Log Messages");
-      this.logTabPage.UseVisualStyleBackColor = true;
-      // 
-      // logTextBox
-      // 
-      this.logTextBox.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.logTextBox.Location = new System.Drawing.Point(3, 3);
-      this.logTextBox.Multiline = true;
-      this.logTextBox.Name = "logTextBox";
-      this.logTextBox.ReadOnly = true;
-      this.logTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
-      this.logTextBox.Size = new System.Drawing.Size(584, 360);
-      this.logTextBox.TabIndex = 0;
-      // 
-      // InstallationManagerForm
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
-      this.ClientSize = new System.Drawing.Size(622, 444);
-      this.Controls.Add(this.tabControl);
-      this.Controls.Add(this.statusStrip);
-      this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLab;
-      this.Name = "InstallationManagerForm";
-      this.Text = "Plugin Manager";
-      this.statusStrip.ResumeLayout(false);
-      this.statusStrip.PerformLayout();
-      this.tabControl.ResumeLayout(false);
-      this.localPluginsTabPage.ResumeLayout(false);
-      this.logTabPage.ResumeLayout(false);
-      this.logTabPage.PerformLayout();
-      this.ResumeLayout(false);
-      this.PerformLayout();
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.StatusStrip statusStrip;
-    private System.Windows.Forms.ToolStripProgressBar toolStripProgressBar;
-    private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel;
-    private System.Windows.Forms.TabControl tabControl;
-    private System.Windows.Forms.TabPage localPluginsTabPage;
-    private System.Windows.Forms.TabPage logTabPage;
-    private System.Windows.Forms.TextBox logTextBox;
-    private InstalledPluginsView localPluginsView;
-    private System.Windows.Forms.ToolTip toolTip;
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerForm.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerForm.cs	(revision 13335)
+++ 	(revision )
@@ -1,46 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.Windows.Forms;
-using HeuristicLab.PluginInfrastructure.Manager;
-
-namespace HeuristicLab.PluginInfrastructure.Advanced {
-  internal partial class InstallationManagerForm : Form {
-    private string pluginDir;
-
-    public InstallationManagerForm(PluginManager pluginManager)
-      : base() {
-      InitializeComponent();
-      Text = "HeuristicLab Plugin Manager " + AssemblyHelpers.GetFileVersion(GetType().Assembly);
-
-      pluginDir = Application.StartupPath;
-
-      localPluginsView.PluginManager = pluginManager;
-      // localPluginsView.InstallationManager = installationManager;
-    }
-
-    #region button events
-    private void tabControl_SelectedIndexChanged(object sender, EventArgs e) {
-      toolStripStatusLabel.Text = string.Empty;
-    }
-    #endregion
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstalledPluginsView.Designer.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstalledPluginsView.Designer.cs	(revision 13335)
+++ 	(revision )
@@ -1,128 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.PluginInfrastructure.Advanced {
-  partial class InstalledPluginsView {
-    /// <summary> 
-    /// Required designer variable.
-    /// </summary>
-    private System.ComponentModel.IContainer components = null;
-
-    /// <summary> 
-    /// Clean up any resources being used.
-    /// </summary>
-    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-    protected override void Dispose(bool disposing) {
-      if (disposing && (components != null)) {
-        components.Dispose();
-      }
-      base.Dispose(disposing);
-    }
-
-    #region Component Designer generated code
-
-    /// <summary> 
-    /// Required method for Designer support - do not modify 
-    /// the contents of this method with the code editor.
-    /// </summary>
-    private void InitializeComponent() {
-      this.components = new System.ComponentModel.Container();
-      System.Windows.Forms.ListViewGroup listViewGroup3 = new System.Windows.Forms.ListViewGroup("Active Plugins", System.Windows.Forms.HorizontalAlignment.Left);
-      System.Windows.Forms.ListViewGroup listViewGroup4 = new System.Windows.Forms.ListViewGroup("Disabled Plugins", System.Windows.Forms.HorizontalAlignment.Left);
-      this.localPluginsListView = new HeuristicLab.PluginInfrastructure.Advanced.MultiSelectListView();
-      this.nameHeader = new System.Windows.Forms.ColumnHeader();
-      this.versionHeader = new System.Windows.Forms.ColumnHeader();
-      this.descriptionHeader = new System.Windows.Forms.ColumnHeader();
-      this.pluginImageList = new System.Windows.Forms.ImageList(this.components);
-      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
-      this.SuspendLayout();
-      // 
-      // localPluginsListView
-      // 
-      this.localPluginsListView.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.localPluginsListView.CheckBoxes = true;
-      this.localPluginsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
-            this.nameHeader,
-            this.versionHeader,
-            this.descriptionHeader});
-      listViewGroup3.Header = "Active Plugins";
-      listViewGroup3.Name = "activePluginsGroup";
-      listViewGroup4.Header = "Disabled Plugins";
-      listViewGroup4.Name = "disabledPluginsGroup";
-      this.localPluginsListView.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] {
-            listViewGroup3,
-            listViewGroup4});
-      this.localPluginsListView.Location = new System.Drawing.Point(0, 0);
-      this.localPluginsListView.Name = "localPluginsListView";
-      this.localPluginsListView.Size = new System.Drawing.Size(539, 477);
-      this.localPluginsListView.SmallImageList = this.pluginImageList;
-      this.localPluginsListView.Sorting = System.Windows.Forms.SortOrder.Ascending;
-      this.localPluginsListView.SuppressItemCheckedEvents = false;
-      this.localPluginsListView.TabIndex = 13;
-      this.localPluginsListView.UseCompatibleStateImageBehavior = false;
-      this.localPluginsListView.View = System.Windows.Forms.View.Details;
-      this.localPluginsListView.ItemActivate += new System.EventHandler(this.localPluginsListView_ItemActivate);
-      // 
-      // nameHeader
-      // 
-      this.nameHeader.Text = "Name";
-      this.nameHeader.Width = 199;
-      // 
-      // versionHeader
-      // 
-      this.versionHeader.Text = "Version";
-      this.versionHeader.Width = 84;
-      // 
-      // descriptionHeader
-      // 
-      this.descriptionHeader.Text = "Description";
-      this.descriptionHeader.Width = 245;
-      // 
-      // pluginImageList
-      // 
-      this.pluginImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
-      this.pluginImageList.ImageSize = new System.Drawing.Size(16, 16);
-      this.pluginImageList.TransparentColor = System.Drawing.Color.Transparent;
-      // 
-      // LocalPluginsView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
-      this.Controls.Add(this.localPluginsListView);
-      this.Name = "LocalPluginsView";
-      this.Size = new System.Drawing.Size(539, 508);
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private MultiSelectListView localPluginsListView;
-    private System.Windows.Forms.ColumnHeader nameHeader;
-    private System.Windows.Forms.ColumnHeader versionHeader;
-    private System.Windows.Forms.ColumnHeader descriptionHeader;
-    private System.Windows.Forms.ToolTip toolTip;
-    private System.Windows.Forms.ImageList pluginImageList;
-    // private LocalPluginManagerView localPluginManagerView;
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstalledPluginsView.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstalledPluginsView.cs	(revision 13335)
+++ 	(revision )
@@ -1,110 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.Linq;
-using System.Windows.Forms;
-using HeuristicLab.PluginInfrastructure.Manager;
-
-namespace HeuristicLab.PluginInfrastructure.Advanced {
-  internal partial class InstalledPluginsView : InstallationManagerControl {
-    private const string CheckingPluginsMessage = "Checking for updated plugins...";
-    private const string NoUpdatesAvailableMessage = "No updates available.";
-
-    private ListViewGroup enabledPluginsGroup;
-    private ListViewGroup disabledPluginsGroup;
-
-    private PluginManager pluginManager;
-    public PluginManager PluginManager {
-      get { return pluginManager; }
-      set {
-        pluginManager = value;
-        UpdateControl();
-      }
-    }
-
-    // private InstallationManager installationManager;
-    // public InstallationManager InstallationManager {
-    //   get { return installationManager; }
-    //   set { installationManager = value; }
-    // }
-
-    public InstalledPluginsView()
-      : base() {
-      InitializeComponent();
-      enabledPluginsGroup = localPluginsListView.Groups["activePluginsGroup"];
-      disabledPluginsGroup = localPluginsListView.Groups["disabledPluginsGroup"];
-      pluginImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Plugin);
-      UpdateControl();
-    }
-
-
-    #region event handlers for update plugins backgroundworker
-    // compares for two plugins with same major and minor version if plugin1 is newer than plugin2
-    private static bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) {
-      // newer: build version is higher, or if build version is the same revision is higher
-      return plugin1.Version.Build > plugin2.Version.Build ||
-        (plugin1.Version.Build == plugin2.Version.Build && plugin1.Version.Revision > plugin2.Version.Revision);
-    }
-    #endregion
-
-    private void UpdateControl() {
-      ClearPluginList();
-      if (pluginManager != null) {
-        localPluginsListView.SuppressItemCheckedEvents = true;
-        foreach (var plugin in pluginManager.Plugins) {
-          var item = CreateListViewItem(plugin);
-          if (plugin.PluginState == PluginState.Enabled) {
-            item.Group = enabledPluginsGroup;
-          } else if (plugin.PluginState == PluginState.Disabled) {
-            item.Group = disabledPluginsGroup;
-          }
-          localPluginsListView.Items.Add(item);
-        }
-        localPluginsListView.SuppressItemCheckedEvents = false;
-      }
-      Util.ResizeColumns(localPluginsListView.Columns.OfType<ColumnHeader>());
-    }
-
-    private void ClearPluginList() {
-      List<ListViewItem> itemsToRemove = new List<ListViewItem>(localPluginsListView.Items.OfType<ListViewItem>());
-      itemsToRemove.ForEach(item => localPluginsListView.Items.Remove(item));
-    }
-
-    private static ListViewItem CreateListViewItem(PluginDescription plugin) {
-      ListViewItem item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), plugin.Description });
-      item.Tag = plugin;
-      item.ImageIndex = 0;
-      return item;
-    }
-
-
-    private void localPluginsListView_ItemActivate(object sender, EventArgs e) {
-      if (localPluginsListView.SelectedItems.Count > 0) {
-        var plugin = (PluginDescription)localPluginsListView.SelectedItems[0].Tag;
-        PluginView pluginView = new PluginView(plugin);
-        pluginView.Show(this);
-      }
-    }
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/LicenseView.Designer.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/LicenseView.Designer.cs	(revision 13335)
+++ 	(revision )
@@ -1,81 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.PluginInfrastructure.Advanced {
-  partial class LicenseView {
-    /// <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() {
-      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LicenseView));
-      this.richTextBox = new System.Windows.Forms.RichTextBox();
-      this.SuspendLayout();
-      // 
-      // richTextBox
-      // 
-      this.richTextBox.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.richTextBox.Location = new System.Drawing.Point(0, 0);
-      this.richTextBox.Name = "richTextBox";
-      this.richTextBox.ReadOnly = true;
-      this.richTextBox.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
-      this.richTextBox.Size = new System.Drawing.Size(410, 445);
-      this.richTextBox.TabIndex = 1;
-      this.richTextBox.Text = "";
-      // 
-      // LicenseView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
-      this.ClientSize = new System.Drawing.Size(410, 445);
-      this.Controls.Add(this.richTextBox);
-      this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab;
-      this.Name = "LicenseView";
-      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
-      this.Text = "License Agreement";
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.RichTextBox richTextBox;
-
-
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/LicenseView.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/LicenseView.cs	(revision 13335)
+++ 	(revision )
@@ -1,39 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.Windows.Forms;
-
-namespace HeuristicLab.PluginInfrastructure.Advanced {
-  internal partial class LicenseView : Form {
-
-    public LicenseView()
-      : base() {
-      InitializeComponent();
-      Name = "License";
-    }
-
-    public LicenseView(IPluginDescription plugin)
-      : base() {
-      InitializeComponent();
-      Name = "License of: " + plugin;
-      richTextBox.Text = plugin.LicenseText;
-    }
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/MultiSelectListView.Designer.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/MultiSelectListView.Designer.cs	(revision 13335)
+++ 	(revision )
@@ -1,51 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.PluginInfrastructure.Advanced {
-  partial class MultiSelectListView {
-    /// <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: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/MultiSelectListView.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/MultiSelectListView.cs	(revision 13335)
+++ 	(revision )
@@ -1,95 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Windows.Forms;
-
-namespace HeuristicLab.PluginInfrastructure.Advanced {
-  internal partial class MultiSelectListView : ListView {
-    public MultiSelectListView() {
-      InitializeComponent();
-    }
-
-    private bool inhibitAutoCheck;
-    protected override void OnMouseDown(MouseEventArgs e) {
-      inhibitAutoCheck = true;
-      base.OnMouseDown(e);
-    }
-
-    protected override void OnMouseUp(MouseEventArgs e) {
-      base.OnMouseUp(e);
-      inhibitAutoCheck = false;
-    }
-
-    // item check is raised for each selected item that was not directly clicked (those should be ignored)
-    // and then one the item whose checkbox was clicked
-    protected override void OnItemCheck(ItemCheckEventArgs ice) {
-      if (ice == null) throw new ArgumentNullException("ice");
-      // don't change the checked state of items that were not clicked directly
-      if (inhibitAutoCheck) {
-        ice.NewValue = ice.CurrentValue;
-      }
-      // if this item was directly clicked then check if it is selected as well
-      var item = Items[ice.Index];
-      if (!item.Selected) {
-        // when the item was not selected previously 
-        // clear any selection 
-        List<ListViewItem> selectedItems = new List<ListViewItem>(SelectedItems.OfType<ListViewItem>());
-        selectedItems.ForEach(x => x.Selected = false);
-        // select only the clicked item
-        item.Selected = true;
-      }
-      base.OnItemCheck(ice);
-    }
-
-    private bool suppressItemCheckedEvents;
-    public bool SuppressItemCheckedEvents {
-      get {
-        return suppressItemCheckedEvents;
-      }
-      set {
-        suppressItemCheckedEvents = value;
-      }
-    }
-    protected override void OnItemChecked(ItemCheckedEventArgs e) {
-      if (!suppressItemCheckedEvents)
-        base.OnItemChecked(e);
-    }
-
-    public void CheckItems(IEnumerable<ListViewItem> items) {
-      suppressItemCheckedEvents = true;
-
-      foreach (var item in items)
-        item.Checked = true;
-      suppressItemCheckedEvents = false;
-    }
-
-    public void UncheckItems(IEnumerable<ListViewItem> items) {
-      suppressItemCheckedEvents = true;
-
-      foreach (var item in items)
-        item.Checked = false;
-      suppressItemCheckedEvents = false;
-    }
-
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/PluginView.Designer.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/PluginView.Designer.cs	(revision 13335)
+++ 	(revision )
@@ -1,356 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.PluginInfrastructure.Advanced {
-  partial class PluginView {
-    /// <summary> 
-    /// Required designer variable.
-    /// </summary>
-    private System.ComponentModel.IContainer components = null;
-
-    /// <summary> 
-    /// Clean up any resources being used.
-    /// </summary>
-    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-    protected override void Dispose(bool disposing) {
-      if (disposing && (components != null)) {
-        components.Dispose();
-      }
-      base.Dispose(disposing);
-    }
-
-    #region Component Designer generated code
-
-    /// <summary> 
-    /// Required method for Designer support - do not modify 
-    /// the contents of this method with the code editor.
-    /// </summary>
-    private void InitializeComponent() {
-      this.components = new System.ComponentModel.Container();
-      this.nameLabel = new System.Windows.Forms.Label();
-      this.nameTextBox = new System.Windows.Forms.TextBox();
-      this.versionTextBox = new System.Windows.Forms.TextBox();
-      this.versionLabel = new System.Windows.Forms.Label();
-      this.contactTextBox = new System.Windows.Forms.TextBox();
-      this.contactInfoLabel = new System.Windows.Forms.Label();
-      this.dependenciesGroupBox = new System.Windows.Forms.GroupBox();
-      this.dependenciesListView = new System.Windows.Forms.ListView();
-      this.pluginNameHeader = new System.Windows.Forms.ColumnHeader();
-      this.pluginVersionHeader = new System.Windows.Forms.ColumnHeader();
-      this.pluginDescriptionHeader = new System.Windows.Forms.ColumnHeader();
-      this.pluginsImageList = new System.Windows.Forms.ImageList(this.components);
-      this.filesListView = new System.Windows.Forms.ListView();
-      this.fileNameHeader = new System.Windows.Forms.ColumnHeader();
-      this.fileTypeHeader = new System.Windows.Forms.ColumnHeader();
-      this.filesImageList = new System.Windows.Forms.ImageList(this.components);
-      this.filesGroupBox = new System.Windows.Forms.GroupBox();
-      this.stateTextBox = new System.Windows.Forms.TextBox();
-      this.stateLabel = new System.Windows.Forms.Label();
-      this.errorLabel = new System.Windows.Forms.Label();
-      this.descriptionLabel = new System.Windows.Forms.Label();
-      this.descriptionTextBox = new System.Windows.Forms.TextBox();
-      this.errorTextBox = new System.Windows.Forms.TextBox();
-      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
-      this.showLicenseButton = new System.Windows.Forms.Button();
-      this.dependenciesGroupBox.SuspendLayout();
-      this.filesGroupBox.SuspendLayout();
-      this.SuspendLayout();
-      // 
-      // nameLabel
-      // 
-      this.nameLabel.AutoSize = true;
-      this.nameLabel.Location = new System.Drawing.Point(9, 15);
-      this.nameLabel.Name = "nameLabel";
-      this.nameLabel.Size = new System.Drawing.Size(38, 13);
-      this.nameLabel.TabIndex = 0;
-      this.nameLabel.Text = "Name:";
-      // 
-      // nameTextBox
-      // 
-      this.nameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.nameTextBox.Location = new System.Drawing.Point(78, 12);
-      this.nameTextBox.Name = "nameTextBox";
-      this.nameTextBox.ReadOnly = true;
-      this.nameTextBox.Size = new System.Drawing.Size(594, 20);
-      this.nameTextBox.TabIndex = 1;
-      // 
-      // versionTextBox
-      // 
-      this.versionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.versionTextBox.Location = new System.Drawing.Point(78, 38);
-      this.versionTextBox.Name = "versionTextBox";
-      this.versionTextBox.ReadOnly = true;
-      this.versionTextBox.Size = new System.Drawing.Size(594, 20);
-      this.versionTextBox.TabIndex = 3;
-      // 
-      // versionLabel
-      // 
-      this.versionLabel.AutoSize = true;
-      this.versionLabel.Location = new System.Drawing.Point(9, 41);
-      this.versionLabel.Name = "versionLabel";
-      this.versionLabel.Size = new System.Drawing.Size(45, 13);
-      this.versionLabel.TabIndex = 2;
-      this.versionLabel.Text = "Version:";
-      // 
-      // contactTextBox
-      // 
-      this.contactTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.contactTextBox.Location = new System.Drawing.Point(78, 64);
-      this.contactTextBox.Name = "contactTextBox";
-      this.contactTextBox.ReadOnly = true;
-      this.contactTextBox.Size = new System.Drawing.Size(594, 20);
-      this.contactTextBox.TabIndex = 5;
-      // 
-      // contactInfoLabel
-      // 
-      this.contactInfoLabel.AutoSize = true;
-      this.contactInfoLabel.Location = new System.Drawing.Point(9, 67);
-      this.contactInfoLabel.Name = "contactInfoLabel";
-      this.contactInfoLabel.Size = new System.Drawing.Size(47, 13);
-      this.contactInfoLabel.TabIndex = 4;
-      this.contactInfoLabel.Text = "Contact:";
-      // 
-      // dependenciesGroupBox
-      // 
-      this.dependenciesGroupBox.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.dependenciesGroupBox.Controls.Add(this.dependenciesListView);
-      this.dependenciesGroupBox.Location = new System.Drawing.Point(12, 324);
-      this.dependenciesGroupBox.Name = "dependenciesGroupBox";
-      this.dependenciesGroupBox.Size = new System.Drawing.Size(663, 198);
-      this.dependenciesGroupBox.TabIndex = 1;
-      this.dependenciesGroupBox.TabStop = false;
-      this.dependenciesGroupBox.Text = "Dependencies";
-      // 
-      // dependenciesListView
-      // 
-      this.dependenciesListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
-            this.pluginNameHeader,
-            this.pluginVersionHeader,
-            this.pluginDescriptionHeader});
-      this.dependenciesListView.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.dependenciesListView.Location = new System.Drawing.Point(3, 16);
-      this.dependenciesListView.Name = "dependenciesListView";
-      this.dependenciesListView.Size = new System.Drawing.Size(657, 179);
-      this.dependenciesListView.SmallImageList = this.pluginsImageList;
-      this.dependenciesListView.Sorting = System.Windows.Forms.SortOrder.Ascending;
-      this.dependenciesListView.TabIndex = 0;
-      this.dependenciesListView.UseCompatibleStateImageBehavior = false;
-      this.dependenciesListView.View = System.Windows.Forms.View.Details;
-      this.dependenciesListView.ItemActivate += new System.EventHandler(this.dependenciesListView_ItemActivate);
-      // 
-      // pluginNameHeader
-      // 
-      this.pluginNameHeader.Text = "Name";
-      this.pluginNameHeader.Width = 200;
-      // 
-      // pluginVersionHeader
-      // 
-      this.pluginVersionHeader.Text = "Version";
-      this.pluginVersionHeader.Width = 120;
-      // 
-      // pluginDescriptionHeader
-      // 
-      this.pluginDescriptionHeader.Text = "Description";
-      this.pluginDescriptionHeader.Width = 325;
-      // 
-      // pluginsImageList
-      // 
-      this.pluginsImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
-      this.pluginsImageList.ImageSize = new System.Drawing.Size(16, 16);
-      this.pluginsImageList.TransparentColor = System.Drawing.Color.Transparent;
-      // 
-      // filesListView
-      // 
-      this.filesListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
-            this.fileNameHeader,
-            this.fileTypeHeader});
-      this.filesListView.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.filesListView.Location = new System.Drawing.Point(3, 16);
-      this.filesListView.Name = "filesListView";
-      this.filesListView.Size = new System.Drawing.Size(657, 131);
-      this.filesListView.SmallImageList = this.filesImageList;
-      this.filesListView.TabIndex = 0;
-      this.filesListView.UseCompatibleStateImageBehavior = false;
-      this.filesListView.View = System.Windows.Forms.View.Details;
-      // 
-      // fileNameHeader
-      // 
-      this.fileNameHeader.Text = "Name";
-      this.fileNameHeader.Width = 200;
-      // 
-      // fileTypeHeader
-      // 
-      this.fileTypeHeader.Text = "Type";
-      this.fileTypeHeader.Width = 120;
-      // 
-      // filesImageList
-      // 
-      this.filesImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
-      this.filesImageList.ImageSize = new System.Drawing.Size(16, 16);
-      this.filesImageList.TransparentColor = System.Drawing.Color.Transparent;
-      // 
-      // filesGroupBox
-      // 
-      this.filesGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.filesGroupBox.Controls.Add(this.filesListView);
-      this.filesGroupBox.Location = new System.Drawing.Point(12, 168);
-      this.filesGroupBox.Name = "filesGroupBox";
-      this.filesGroupBox.Size = new System.Drawing.Size(663, 150);
-      this.filesGroupBox.TabIndex = 11;
-      this.filesGroupBox.TabStop = false;
-      this.filesGroupBox.Text = "Files";
-      // 
-      // stateTextBox
-      // 
-      this.stateTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.stateTextBox.Location = new System.Drawing.Point(78, 116);
-      this.stateTextBox.Name = "stateTextBox";
-      this.stateTextBox.ReadOnly = true;
-      this.stateTextBox.Size = new System.Drawing.Size(594, 20);
-      this.stateTextBox.TabIndex = 13;
-      // 
-      // stateLabel
-      // 
-      this.stateLabel.AutoSize = true;
-      this.stateLabel.Location = new System.Drawing.Point(9, 119);
-      this.stateLabel.Name = "stateLabel";
-      this.stateLabel.Size = new System.Drawing.Size(35, 13);
-      this.stateLabel.TabIndex = 12;
-      this.stateLabel.Text = "State:";
-      // 
-      // errorLabel
-      // 
-      this.errorLabel.AutoSize = true;
-      this.errorLabel.Location = new System.Drawing.Point(9, 145);
-      this.errorLabel.Name = "errorLabel";
-      this.errorLabel.Size = new System.Drawing.Size(32, 13);
-      this.errorLabel.TabIndex = 15;
-      this.errorLabel.Text = "Error:";
-      // 
-      // descriptionLabel
-      // 
-      this.descriptionLabel.AutoSize = true;
-      this.descriptionLabel.Location = new System.Drawing.Point(9, 93);
-      this.descriptionLabel.Name = "descriptionLabel";
-      this.descriptionLabel.Size = new System.Drawing.Size(63, 13);
-      this.descriptionLabel.TabIndex = 17;
-      this.descriptionLabel.Text = "Description:";
-      // 
-      // descriptionTextBox
-      // 
-      this.descriptionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.descriptionTextBox.Location = new System.Drawing.Point(78, 90);
-      this.descriptionTextBox.Multiline = true;
-      this.descriptionTextBox.Name = "descriptionTextBox";
-      this.descriptionTextBox.ReadOnly = true;
-      this.descriptionTextBox.Size = new System.Drawing.Size(594, 20);
-      this.descriptionTextBox.TabIndex = 20;
-      // 
-      // errorTextBox
-      // 
-      this.errorTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.errorTextBox.Location = new System.Drawing.Point(78, 142);
-      this.errorTextBox.Multiline = true;
-      this.errorTextBox.Name = "errorTextBox";
-      this.errorTextBox.ReadOnly = true;
-      this.errorTextBox.Size = new System.Drawing.Size(594, 20);
-      this.errorTextBox.TabIndex = 21;
-      // 
-      // showLicenseButton
-      // 
-      this.showLicenseButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.showLicenseButton.Location = new System.Drawing.Point(12, 528);
-      this.showLicenseButton.Name = "showLicenseButton";
-      this.showLicenseButton.Size = new System.Drawing.Size(87, 23);
-      this.showLicenseButton.TabIndex = 22;
-      this.showLicenseButton.Text = "Show License";
-      this.toolTip.SetToolTip(this.showLicenseButton, "Show Plugin License");
-      this.showLicenseButton.UseVisualStyleBackColor = true;
-      this.showLicenseButton.Click += new System.EventHandler(this.showLicenseButton_Click);
-      // 
-      // PluginView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
-      this.ClientSize = new System.Drawing.Size(687, 565);
-      this.Controls.Add(this.showLicenseButton);
-      this.Controls.Add(this.errorTextBox);
-      this.Controls.Add(this.descriptionTextBox);
-      this.Controls.Add(this.errorLabel);
-      this.Controls.Add(this.descriptionLabel);
-      this.Controls.Add(this.stateTextBox);
-      this.Controls.Add(this.stateLabel);
-      this.Controls.Add(this.dependenciesGroupBox);
-      this.Controls.Add(this.filesGroupBox);
-      this.Controls.Add(this.contactTextBox);
-      this.Controls.Add(this.contactInfoLabel);
-      this.Controls.Add(this.versionTextBox);
-      this.Controls.Add(this.versionLabel);
-      this.Controls.Add(this.nameTextBox);
-      this.Controls.Add(this.nameLabel);
-      this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLab;
-      this.Name = "PluginView";
-      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
-      this.dependenciesGroupBox.ResumeLayout(false);
-      this.filesGroupBox.ResumeLayout(false);
-      this.ResumeLayout(false);
-      this.PerformLayout();
-
-    }
-
-    #endregion
-
-    protected System.Windows.Forms.Label nameLabel;
-    protected System.Windows.Forms.TextBox nameTextBox;
-    protected System.Windows.Forms.TextBox versionTextBox;
-    protected System.Windows.Forms.Label versionLabel;
-    protected System.Windows.Forms.TextBox contactTextBox;
-    protected System.Windows.Forms.Label contactInfoLabel;
-    protected System.Windows.Forms.GroupBox dependenciesGroupBox;
-    private System.Windows.Forms.ColumnHeader pluginNameHeader;
-    private System.Windows.Forms.ColumnHeader pluginVersionHeader;
-    protected System.Windows.Forms.ListView dependenciesListView;
-    private System.Windows.Forms.ListView filesListView;
-    private System.Windows.Forms.GroupBox filesGroupBox;
-    private System.Windows.Forms.ImageList pluginsImageList;
-    private System.Windows.Forms.ColumnHeader fileNameHeader;
-    private System.Windows.Forms.ColumnHeader fileTypeHeader;
-    protected System.Windows.Forms.TextBox stateTextBox;
-    protected System.Windows.Forms.Label stateLabel;
-    protected System.Windows.Forms.Label errorLabel;
-    protected System.Windows.Forms.Label descriptionLabel;
-    protected System.Windows.Forms.TextBox descriptionTextBox;
-    protected System.Windows.Forms.TextBox errorTextBox;
-    private System.Windows.Forms.ImageList filesImageList;
-    private System.Windows.Forms.ColumnHeader pluginDescriptionHeader;
-    private System.Windows.Forms.ToolTip toolTip;
-    private System.Windows.Forms.Button showLicenseButton;
-
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/PluginView.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/PluginView.cs	(revision 13335)
+++ 	(revision )
@@ -1,122 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.IO;
-using System.Linq;
-using System.Windows.Forms;
-using HeuristicLab.PluginInfrastructure.Manager;
-
-namespace HeuristicLab.PluginInfrastructure.Advanced {
-  internal partial class PluginView : Form {
-    private const string IMAGE_KEY_PLUGIN = "Plugin";
-    private const string IMAGE_KEY_ASSEMBLY = "Assembly";
-    private const string IMAGE_KEY_FILE = "File";
-    private const string IMAGE_KEY_DOCUMENT = "Document";
-
-    private IPluginDescription plugin;
-
-    public PluginView()
-      : base() {
-      InitializeComponent();
-      PopulateImageList();
-    }
-
-    public PluginView(IPluginDescription plugin)
-      : base() {
-      InitializeComponent();
-      PopulateImageList();
-
-      this.plugin = plugin;
-      this.Text = "Plugin Details: " + plugin.ToString();
-      UpdateControls();
-    }
-
-    private void PopulateImageList() {
-      pluginsImageList.Images.Add(IMAGE_KEY_PLUGIN, HeuristicLab.PluginInfrastructure.Resources.Plugin);
-      filesImageList.Images.Add(IMAGE_KEY_ASSEMBLY, HeuristicLab.PluginInfrastructure.Resources.Assembly);
-      filesImageList.Images.Add(IMAGE_KEY_FILE, HeuristicLab.PluginInfrastructure.Resources.File);
-      filesImageList.Images.Add(IMAGE_KEY_DOCUMENT, HeuristicLab.PluginInfrastructure.Resources.Document);
-    }
-
-    public void UpdateControls() {
-      string appDir = Path.GetDirectoryName(Application.ExecutablePath);
-      nameTextBox.Text = plugin.Name;
-      versionTextBox.Text = plugin.Version.ToString();
-      contactTextBox.Text = CombineStrings(plugin.ContactName, plugin.ContactEmail);
-      toolTip.SetToolTip(contactTextBox, contactTextBox.Text);
-      descriptionTextBox.Text = plugin.Description;
-      toolTip.SetToolTip(descriptionTextBox, plugin.Description);
-      var localPlugin = plugin as PluginDescription;
-      if (localPlugin != null) {
-        stateTextBox.Text = localPlugin.PluginState.ToString();
-        if (!string.IsNullOrEmpty(localPlugin.LoadingErrorInformation))
-          errorTextBox.Text = localPlugin.LoadingErrorInformation.Replace(Environment.NewLine, " ");
-        toolTip.SetToolTip(stateTextBox, stateTextBox.Text + Environment.NewLine + errorTextBox.Text);
-        toolTip.SetToolTip(errorTextBox, errorTextBox.Text);
-      }
-      foreach (PluginDescription dependency in plugin.Dependencies) {
-        var depItem = new ListViewItem(new string[] { dependency.Name, dependency.Version.ToString(), dependency.Description });
-        depItem.Tag = dependency;
-        depItem.ImageKey = IMAGE_KEY_PLUGIN;
-        dependenciesListView.Items.Add(depItem);
-      }
-      foreach (var file in plugin.Files) {
-        string displayedFileName = file.Name.Replace(appDir, string.Empty);
-        displayedFileName = displayedFileName.TrimStart(Path.DirectorySeparatorChar);
-        var fileItem = new ListViewItem(new string[] { displayedFileName, file.Type.ToString() });
-        if (file.Type == PluginFileType.Assembly) {
-          fileItem.ImageKey = IMAGE_KEY_ASSEMBLY;
-        } else if (file.Type == PluginFileType.License) {
-          fileItem.ImageKey = IMAGE_KEY_DOCUMENT;
-        } else fileItem.ImageKey = IMAGE_KEY_FILE;
-        filesListView.Items.Add(fileItem);
-      }
-      Util.ResizeColumns(dependenciesListView.Columns.OfType<ColumnHeader>());
-      Util.ResizeColumns(filesListView.Columns.OfType<ColumnHeader>());
-
-      showLicenseButton.Enabled = !string.IsNullOrEmpty(plugin.LicenseText);
-    }
-
-    private string CombineStrings(string a, string b) {
-      if (string.IsNullOrEmpty(a))
-        // a is empty
-        if (!string.IsNullOrEmpty(b)) return CombineStrings(b, string.Empty);
-        else return string.Empty;
-      // a is not empty
-      else if (string.IsNullOrEmpty(b)) return a;
-      // and b are not empty
-      else return a + ", " + b;
-    }
-
-    private void dependenciesListView_ItemActivate(object sender, EventArgs e) {
-      if (dependenciesListView.SelectedItems.Count > 0) {
-        var dep = (PluginDescription)dependenciesListView.SelectedItems[0].Tag;
-        PluginView view = new PluginView(dep);
-        view.Show(this);
-      }
-    }
-
-    private void showLicenseButton_Click(object sender, EventArgs e) {
-      LicenseView view = new LicenseView(plugin);
-      view.Show(this);
-    }
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/Util.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Advanced/Util.cs	(revision 13335)
+++ 	(revision )
@@ -1,42 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Windows.Forms;
-
-namespace HeuristicLab.PluginInfrastructure.Advanced {
-  internal static class Util {
-    internal static void ResizeColumn(ColumnHeader columnHeader) {
-      columnHeader.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
-      int headerSize = columnHeader.Width;
-      columnHeader.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
-      int contentSize = columnHeader.Width;
-      columnHeader.Width = Math.Max(headerSize, contentSize);
-    }
-
-    internal static void ResizeColumns(IEnumerable<ColumnHeader> columnHeaders) {
-      foreach (var columnHeader in columnHeaders)
-        ResizeColumn(columnHeader);
-    }
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/AssemblyExtensions.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/AssemblyExtensions.cs	(revision 13338)
+++ branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/AssemblyExtensions.cs	(revision 13338)
@@ -0,0 +1,55 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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.Reflection;
+
+namespace HeuristicLab.PluginInfrastructure {
+  public static class AssemblyExtensions {
+    //Based on the code from http://stackoverflow.com/a/7156425
+    public static string GetCustomAttributeValue<T>(this Assembly assembly, string propertyName)
+       where T : Attribute {
+      if (assembly == null || string.IsNullOrEmpty(propertyName)) {
+        throw new ArgumentException("Arguments are not allowed to be null.");
+      }
+
+      object[] attributes = assembly.GetCustomAttributes(typeof(T), false);
+      if (attributes.Length == 0) {
+        throw new InvalidOperationException(string.Format("No attributes of type {0} found in assembly {1}", typeof(T).Name,
+          assembly.FullName));
+      }
+
+      var attribute = (T)attributes[0];
+      var propertyInfo = attribute.GetType().GetProperty(propertyName);
+      if (propertyInfo == null) {
+        throw new InvalidOperationException(string.Format("No property {0} found in attribute {1}, assembly: {2}",
+          propertyName, typeof(T).Name, assembly.FullName));
+      }
+
+      var value = propertyInfo.GetValue(attribute, null);
+      return value.ToString();
+    }
+
+    public static string GetFileVersion(this Assembly assembly) {
+      return GetCustomAttributeValue<AssemblyFileVersionAttribute>(assembly, "Version");
+    }
+  }
+}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/AssemblyHelpers.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/AssemblyHelpers.cs	(revision 13335)
+++ 	(revision )
@@ -1,55 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.Reflection;
-
-namespace HeuristicLab.PluginInfrastructure {
-  public static class AssemblyHelpers {
-    //Based on the code from http://stackoverflow.com/a/7156425
-    public static string GetCustomAttributeValue<T>(Assembly assembly, string propertyName)
-       where T : Attribute {
-      if (assembly == null || string.IsNullOrEmpty(propertyName)) {
-        throw new ArgumentException("Arguments are not allowed to be null.");
-      }
-
-      object[] attributes = assembly.GetCustomAttributes(typeof(T), false);
-      if (attributes.Length == 0) {
-        throw new InvalidOperationException(string.Format("No attributes of type {0} found in assembly {1}", typeof(T).Name,
-          assembly.FullName));
-      }
-
-      var attribute = (T)attributes[0];
-      var propertyInfo = attribute.GetType().GetProperty(propertyName);
-      if (propertyInfo == null) {
-        throw new InvalidOperationException(string.Format("No property {0} found in attribute {1}, assembly: {2}",
-          propertyName, typeof(T).Name, assembly.FullName));
-      }
-
-      var value = propertyInfo.GetValue(attribute, null);
-      return value.ToString();
-    }
-
-    public static string GetFileVersion(Assembly assembly) {
-      return GetCustomAttributeValue<AssemblyFileVersionAttribute>(assembly, "Version");
-    }
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/ErrorDialog.Designer.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/ErrorDialog.Designer.cs	(revision 13335)
+++ 	(revision )
@@ -1,182 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.PluginInfrastructure {
-  partial class ErrorDialog {
-    /// <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.iconLabel = new System.Windows.Forms.Label();
-      this.messageTextBox = new System.Windows.Forms.TextBox();
-      this.detailsGroupBox = new System.Windows.Forms.GroupBox();
-      this.detailsTextBox = new System.Windows.Forms.TextBox();
-      this.supportLabel = new System.Windows.Forms.Label();
-      this.supportLinkLabel = new System.Windows.Forms.LinkLabel();
-      this.detailsGroupBox.SuspendLayout();
-      this.SuspendLayout();
-      // 
-      // okButton
-      // 
-      this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-      this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK;
-      this.okButton.Location = new System.Drawing.Point(497, 327);
-      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;
-      // 
-      // iconLabel
-      // 
-      this.iconLabel.Image = global::HeuristicLab.PluginInfrastructure.Resources.Error;
-      this.iconLabel.Location = new System.Drawing.Point(12, 9);
-      this.iconLabel.Name = "iconLabel";
-      this.iconLabel.Size = new System.Drawing.Size(50, 60);
-      this.iconLabel.TabIndex = 1;
-      // 
-      // messageTextBox
-      // 
-      this.messageTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.messageTextBox.BackColor = System.Drawing.SystemColors.Control;
-      this.messageTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
-      this.messageTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.messageTextBox.Location = new System.Drawing.Point(68, 12);
-      this.messageTextBox.Multiline = true;
-      this.messageTextBox.Name = "messageTextBox";
-      this.messageTextBox.ReadOnly = true;
-      this.messageTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
-      this.messageTextBox.Size = new System.Drawing.Size(504, 57);
-      this.messageTextBox.TabIndex = 2;
-      this.messageTextBox.Text = "Error Message";
-      // 
-      // detailsGroupBox
-      // 
-      this.detailsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.detailsGroupBox.Controls.Add(this.detailsTextBox);
-      this.detailsGroupBox.Location = new System.Drawing.Point(12, 75);
-      this.detailsGroupBox.Name = "detailsGroupBox";
-      this.detailsGroupBox.Size = new System.Drawing.Size(560, 246);
-      this.detailsGroupBox.TabIndex = 3;
-      this.detailsGroupBox.TabStop = false;
-      this.detailsGroupBox.Text = "Details";
-      // 
-      // detailsTextBox
-      // 
-      this.detailsTextBox.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.detailsTextBox.BackColor = System.Drawing.SystemColors.Control;
-      this.detailsTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
-      this.detailsTextBox.Location = new System.Drawing.Point(6, 19);
-      this.detailsTextBox.Multiline = true;
-      this.detailsTextBox.Name = "detailsTextBox";
-      this.detailsTextBox.ReadOnly = true;
-      this.detailsTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both;
-      this.detailsTextBox.Size = new System.Drawing.Size(548, 221);
-      this.detailsTextBox.TabIndex = 0;
-      this.detailsTextBox.Text = "Stack Trace";
-      this.detailsTextBox.WordWrap = false;
-      // 
-      // supportLabel
-      // 
-      this.supportLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.supportLabel.AutoSize = true;
-      this.supportLabel.Location = new System.Drawing.Point(12, 332);
-      this.supportLabel.Name = "supportLabel";
-      this.supportLabel.Size = new System.Drawing.Size(264, 13);
-      this.supportLabel.TabIndex = 4;
-      this.supportLabel.Text = "If you have any problems or questions, please contact:";
-      // 
-      // supportLinkLabel
-      // 
-      this.supportLinkLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.supportLinkLabel.AutoSize = true;
-      this.supportLinkLabel.Location = new System.Drawing.Point(298, 332);
-      this.supportLinkLabel.Name = "supportLinkLabel";
-      this.supportLinkLabel.Size = new System.Drawing.Size(129, 13);
-      this.supportLinkLabel.TabIndex = 5;
-      this.supportLinkLabel.TabStop = true;
-      this.supportLinkLabel.Text = "support@heuristiclab.com";
-      this.supportLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.supportLinkLabel_LinkClicked);
-      // 
-      // ErrorDialog
-      // 
-      this.AcceptButton = this.okButton;
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
-      this.CancelButton = this.okButton;
-      this.ClientSize = new System.Drawing.Size(584, 362);
-      this.Controls.Add(this.supportLinkLabel);
-      this.Controls.Add(this.supportLabel);
-      this.Controls.Add(this.detailsGroupBox);
-      this.Controls.Add(this.messageTextBox);
-      this.Controls.Add(this.iconLabel);
-      this.Controls.Add(this.okButton);
-      this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.ErrorIcon;
-      this.MaximizeBox = false;
-      this.MinimizeBox = false;
-      this.Name = "ErrorDialog";
-      this.ShowInTaskbar = false;
-      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
-      this.Text = "Error";
-      this.TopMost = true;
-      this.detailsGroupBox.ResumeLayout(false);
-      this.detailsGroupBox.PerformLayout();
-      this.ResumeLayout(false);
-      this.PerformLayout();
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.Button okButton;
-    private System.Windows.Forms.Label iconLabel;
-    private System.Windows.Forms.TextBox messageTextBox;
-    private System.Windows.Forms.GroupBox detailsGroupBox;
-    private System.Windows.Forms.TextBox detailsTextBox;
-    private System.Windows.Forms.Label supportLabel;
-    private System.Windows.Forms.LinkLabel supportLinkLabel;
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/ErrorDialog.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/ErrorDialog.cs	(revision 13335)
+++ 	(revision )
@@ -1,64 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.Windows.Forms;
-
-namespace HeuristicLab.PluginInfrastructure {
-  public partial class ErrorDialog : Form {
-    public ErrorDialog() {
-      InitializeComponent();
-      Initialize(null, null);
-    }
-    public ErrorDialog(Exception exception)
-      : this() {
-      Initialize(null, exception);
-    }
-    public ErrorDialog(string message, Exception exception)
-      : this() {
-      Initialize(message, exception);
-    }
-
-    private void Initialize(string message, Exception exception) {
-      Text = "Error";
-      if (exception != null) Text += "  -  " + exception.GetType().Name;
-
-      if (!string.IsNullOrEmpty(message))
-        messageTextBox.Text = message;
-      else if (exception != null)
-        messageTextBox.Text = exception.Message;
-      else
-        messageTextBox.Text = "Sorry, but something went wrong.";
-      messageTextBox.Enabled = !string.IsNullOrEmpty(messageTextBox.Text);
-
-      detailsTextBox.Text = ErrorHandling.BuildErrorMessage(exception);
-      detailsGroupBox.Enabled = !string.IsNullOrEmpty(detailsTextBox.Text);
-    }
-
-    private void supportLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
-      try {
-        System.Diagnostics.Process.Start("mailto:" + supportLinkLabel.Text);
-        supportLinkLabel.LinkVisited = true;
-      }
-      catch (Exception) { }
-    }
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/ErrorHandling.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/ErrorHandling.cs	(revision 13335)
+++ 	(revision )
@@ -1,70 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.Windows.Forms;
-
-namespace HeuristicLab.PluginInfrastructure {
-  public static class ErrorHandling {
-    public static string BuildErrorMessage(Exception exception) {
-      if (exception == null) {
-        return string.Empty;
-      } else {
-        string message =
-          "HeuristicLab version: " + AssemblyHelpers.GetFileVersion(typeof(ErrorHandling).Assembly) + Environment.NewLine +
-          exception.GetType().Name + ": " + exception.Message + Environment.NewLine +
-                         exception.StackTrace;
-
-        while (exception.InnerException != null) {
-          exception = exception.InnerException;
-          message += Environment.NewLine +
-                     "-----" + Environment.NewLine +
-                     exception.GetType().Name + ": " + exception.Message + Environment.NewLine +
-                     exception.StackTrace;
-        }
-        return message;
-      }
-    }
-
-    public static void ShowErrorDialog(Exception exception) {
-      ShowErrorDialog(string.Empty, exception);
-    }
-    public static void ShowErrorDialog(Control owner, Exception exception) {
-      ShowErrorDialog(owner, string.Empty, exception);
-    }
-    public static void ShowErrorDialog(string message, Exception exception) {
-      using (ErrorDialog dialog = new ErrorDialog(message, exception)) {
-        dialog.StartPosition = FormStartPosition.CenterScreen;
-        dialog.ShowDialog();
-      }
-    }
-    public static void ShowErrorDialog(Control owner, string message, Exception exception) {
-      if (owner == null) throw new ArgumentNullException("owner");
-      if (owner.InvokeRequired) {
-        owner.Invoke(new Action<Control, string, Exception>(ShowErrorDialog), owner, message, exception);
-      } else {
-        using (ErrorDialog dialog = new ErrorDialog(message, exception)) {
-          dialog.ShowDialog(owner);
-        }
-      }
-    }
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/FrameworkVersionErrorDialog.Designer.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/FrameworkVersionErrorDialog.Designer.cs	(revision 13335)
+++ 	(revision )
@@ -1,145 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
-* Copyright (C) 2002-2015 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.PluginInfrastructure {
-  partial class FrameworkVersionErrorDialog {
-    /// <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.iconLabel = new System.Windows.Forms.Label();
-      this.closeButton = new System.Windows.Forms.Button();
-      this.linkLabel = new System.Windows.Forms.LinkLabel();
-      this.label = new System.Windows.Forms.Label();
-      this.linkLabelMono = new System.Windows.Forms.LinkLabel();
-      this.SuspendLayout();
-      // 
-      // iconLabel
-      // 
-      this.iconLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left)));
-      this.iconLabel.Image = global::HeuristicLab.PluginInfrastructure.Resources.Error;
-      this.iconLabel.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
-      this.iconLabel.Location = new System.Drawing.Point(12, 9);
-      this.iconLabel.Name = "iconLabel";
-      this.iconLabel.Size = new System.Drawing.Size(50, 121);
-      this.iconLabel.TabIndex = 0;
-      // 
-      // closeButton
-      // 
-      this.closeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-      this.closeButton.DialogResult = System.Windows.Forms.DialogResult.OK;
-      this.closeButton.Location = new System.Drawing.Point(294, 104);
-      this.closeButton.Name = "closeButton";
-      this.closeButton.Size = new System.Drawing.Size(75, 23);
-      this.closeButton.TabIndex = 3;
-      this.closeButton.Text = "&Close";
-      this.closeButton.UseVisualStyleBackColor = true;
-      this.closeButton.Click += new System.EventHandler(this.cancelButton_Click);
-      // 
-      // linkLabel
-      // 
-      this.linkLabel.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.linkLabel.Location = new System.Drawing.Point(68, 52);
-      this.linkLabel.Name = "linkLabel";
-      this.linkLabel.Size = new System.Drawing.Size(301, 49);
-      this.linkLabel.TabIndex = 2;
-      this.linkLabel.TabStop = true;
-      this.linkLabel.Text = "Download Microsoft .NET Framework 4.5";
-      this.linkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel_LinkClicked);
-      // 
-      // label
-      // 
-      this.label.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.label.Location = new System.Drawing.Point(68, 9);
-      this.label.Name = "label";
-      this.label.Size = new System.Drawing.Size(301, 43);
-      this.label.TabIndex = 1;
-      this.label.Text = "To run HeuristicLab you need at least the Microsoft .NET Framework 4.5 or Mono ve" +
-    "rsion 3.6.0 or higher. Please download and install it.";
-      // 
-      // linkLabelMono
-      // 
-      this.linkLabelMono.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.linkLabelMono.Location = new System.Drawing.Point(68, 72);
-      this.linkLabelMono.Name = "linkLabelMono";
-      this.linkLabelMono.Size = new System.Drawing.Size(301, 16);
-      this.linkLabelMono.TabIndex = 4;
-      this.linkLabelMono.TabStop = true;
-      this.linkLabelMono.Text = "Download Mono";
-      this.linkLabelMono.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabelMono_LinkClicked);
-      // 
-      // FrameworkVersionErrorDialog
-      // 
-      this.AcceptButton = this.closeButton;
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
-      this.CancelButton = this.closeButton;
-      this.ClientSize = new System.Drawing.Size(381, 139);
-      this.Controls.Add(this.linkLabelMono);
-      this.Controls.Add(this.label);
-      this.Controls.Add(this.linkLabel);
-      this.Controls.Add(this.closeButton);
-      this.Controls.Add(this.iconLabel);
-      this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
-      this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLab;
-      this.MaximizeBox = false;
-      this.MinimizeBox = false;
-      this.Name = "FrameworkVersionErrorDialog";
-      this.ShowInTaskbar = false;
-      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
-      this.Text = "Error";
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.Label iconLabel;
-    private System.Windows.Forms.Button closeButton;
-    private System.Windows.Forms.LinkLabel linkLabel;
-    private System.Windows.Forms.Label label;
-    private System.Windows.Forms.LinkLabel linkLabelMono;
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/FrameworkVersionErrorDialog.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/FrameworkVersionErrorDialog.cs	(revision 13335)
+++ 	(revision )
@@ -1,115 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.Reflection;
-using System.Windows.Forms;
-
-namespace HeuristicLab.PluginInfrastructure {
-  public partial class FrameworkVersionErrorDialog : Form {
-    private const string NETVersionPath = @"Software\Microsoft\NET Framework Setup\NDP\v4\Full";
-    private const string NETVersion = "Version";
-
-    public static bool NET4_5Installed {
-      get {
-        try {
-          var registryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(NETVersionPath);
-          if (registryKey != null) {
-            var versionKey = registryKey.GetValue(NETVersion);
-            if (versionKey != null) {
-              Version version = new Version(versionKey.ToString());
-              return version.Major >= 4 && version.Minor >= 5;
-            }
-          }
-        }
-        catch (System.Security.SecurityException) {
-          return false;
-        }
-        return false;
-      }
-    }
-
-    public static bool MonoInstalled {
-      get { return Type.GetType("Mono.Runtime") != null; }
-    }
-
-    public static bool MonoCorrectVersionInstalled {
-      get {
-        var monoVersion = MonoVersion;
-        var minRequiredVersion = new Version(3, 6, 0);
-
-        //we need at least mono version 3.6.0
-        if (monoVersion != null && monoVersion >= minRequiredVersion) {
-          return true;
-        } else {
-          return false;
-        }
-      }
-    }
-
-    public static Version MonoVersion {
-      get {
-        Type type = Type.GetType("Mono.Runtime");
-        if (type != null) {
-          MethodInfo dispalayName = type.GetMethod("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static);
-          if (dispalayName != null) {
-            string versionString = dispalayName.Invoke(null, null) as string;
-            if (versionString != null) {
-              // the version string looks something like: 2.11.4 (master/99d5e54 Thu Sep  6 15:55:44 CEST 2012)
-              var subVerStrings = versionString.Split(' ');
-              if (subVerStrings.Length > 0) {
-                try {
-                  return Version.Parse(subVerStrings[0]);
-                }
-                catch { }
-              }
-            }
-          }
-        }
-        return null;
-      }
-    }
-
-    public FrameworkVersionErrorDialog() {
-      InitializeComponent();
-    }
-
-    private void linkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
-      try {
-        System.Diagnostics.Process.Start("http://www.microsoft.com/en-us/download/details.aspx?id=30653");
-        linkLabel.LinkVisited = true;
-      }
-      catch (Exception) { }
-    }
-
-    private void cancelButton_Click(object sender, EventArgs e) {
-      Application.Exit();
-    }
-
-    private void linkLabelMono_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
-      try {
-        System.Diagnostics.Process.Start("http://www.mono-project.org");
-        linkLabelMono.LinkVisited = true;
-      }
-      catch (Exception) { }
-    }
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/HeuristicLab.PluginInfrastructure-3.3.csproj
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/HeuristicLab.PluginInfrastructure-3.3.csproj	(revision 13335)
+++ branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/HeuristicLab.PluginInfrastructure-3.3.csproj	(revision 13338)
@@ -110,55 +110,7 @@
     <Reference Include="System" />
     <Reference Include="System.Core" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Deployment" />
-    <Reference Include="System.Drawing" />
-    <Reference Include="System.IdentityModel" />
-    <Reference Include="System.IO.Compression" />
-    <Reference Include="System.Runtime.Serialization" />
-    <Reference Include="System.ServiceModel" />
-    <Reference Include="System.Windows.Forms" />
-    <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="Advanced\InstallationManagerControl.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="Advanced\InstallationManagerControl.Designer.cs">
-      <DependentUpon>InstallationManagerControl.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Advanced\InstallationManagerForm.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="Advanced\InstallationManagerForm.Designer.cs">
-      <DependentUpon>InstallationManagerForm.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Advanced\InstalledPluginsView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="Advanced\InstalledPluginsView.Designer.cs">
-      <DependentUpon>InstalledPluginsView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Advanced\LicenseView.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="Advanced\LicenseView.Designer.cs">
-      <DependentUpon>LicenseView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Advanced\MultiSelectListView.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="Advanced\MultiSelectListView.Designer.cs">
-      <DependentUpon>MultiSelectListView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Advanced\PluginView.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="Advanced\PluginView.Designer.cs">
-      <DependentUpon>PluginView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Advanced\Util.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="AssemblyHelpers.cs" />
+    <Compile Include="AssemblyExtensions.cs" />
     <Compile Include="CommandLineArgumentHandling\Arguments\OpenArgument.cs" />
     <Compile Include="CommandLineArgumentHandling\Arguments\HideStarterArgument.cs" />
@@ -175,25 +127,6 @@
     <Compile Include="BaseClasses\ApplicationBase.cs" />
     <Compile Include="BaseClasses\PluginBase.cs" />
-    <Compile Include="Resources.Designer.cs">
-      <AutoGen>True</AutoGen>
-      <DesignTime>True</DesignTime>
-      <DependentUpon>Resources.resx</DependentUpon>
-    </Compile>
     <Compile Include="SandboxApplicationManager.cs" />
     <Compile Include="DefaultApplicationManager.cs" />
-    <Compile Include="ErrorHandling\ErrorDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="ErrorHandling\ErrorDialog.Designer.cs">
-      <DependentUpon>ErrorDialog.cs</DependentUpon>
-    </Compile>
-    <Compile Include="ErrorHandling\ErrorHandling.cs">
-    </Compile>
-    <Compile Include="ErrorHandling\FrameworkVersionErrorDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="ErrorHandling\FrameworkVersionErrorDialog.Designer.cs">
-      <DependentUpon>FrameworkVersionErrorDialog.cs</DependentUpon>
-    </Compile>
     <Compile Include="LightweightApplicationManager.cs" />
     <Compile Include="Interfaces\IPluginFile.cs" />
@@ -214,5 +147,4 @@
     <Compile Include="ApplicationManager.cs" />
     <Compile Include="PluginState.cs" />
-    <Compile Include="Main.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="Sandboxing\SandboxManager.cs">
@@ -225,43 +157,4 @@
     <None Include="HeuristicLab.snk" />
     <None Include="Properties\AssemblyInfo.cs.frame" />
-    <Compile Include="Starter\AboutDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="Starter\AboutDialog.Designer.cs">
-      <DependentUpon>AboutDialog.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Starter\SplashScreen.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="Starter\SplashScreen.Designer.cs">
-      <DependentUpon>SplashScreen.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Starter\StarterForm.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="Starter\StarterForm.Designer.cs">
-      <DependentUpon>StarterForm.cs</DependentUpon>
-    </Compile>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Resources\Error.ico" />
-    <Content Include="Resources\HeuristicLab.ico" />
-    <None Include="Resources\HeuristicLabLogo.png" />
-    <None Include="Resources\HeuristicLabBanner.png" />
-    <None Include="Resources\VS2008ImageLibrary_Annotations_Error.png" />
-    <Content Include="Resources\VS2008ImageLibrary_Objects_Plugin.png" />
-    <EmbeddedResource Include="Resources.resx">
-      <Generator>ResXFileCodeGenerator</Generator>
-      <SubType>Designer</SubType>
-      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
-    </EmbeddedResource>
-    <None Include="Resources\show_icons.png" />
-    <None Include="Resources\show_details.png" />
-    <None Include="Resources\VS2008ImageLibrary_Objects_File.png" />
-    <None Include="Resources\VS2008ImageLibrary_Objects_Document.png" />
-    <None Include="Resources\VS2008ImageLibrary_Objects_Assembly.png" />
-  </ItemGroup>
-  <ItemGroup>
-    <WCFMetadata Include="Service References\" />
   </ItemGroup>
   <ItemGroup>
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Main.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Main.cs	(revision 13335)
+++ 	(revision )
@@ -1,53 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.Windows.Forms;
-using HeuristicLab.PluginInfrastructure.Starter;
-
-namespace HeuristicLab.PluginInfrastructure {
-  /// <summary>
-  /// Static class that contains the main entry point of the plugin infrastructure.
-  /// </summary>
-  public static class Main {
-    /// <summary>
-    /// Main entry point of the plugin infrastructure. Loads the starter form.
-    /// </summary>
-    /// <param name="args">Command line arguments</param>
-    public static void Run(string[] args) {
-      if ((!FrameworkVersionErrorDialog.NET4_5Installed && !FrameworkVersionErrorDialog.MonoInstalled)
-        || (FrameworkVersionErrorDialog.MonoInstalled && !FrameworkVersionErrorDialog.MonoCorrectVersionInstalled)) {
-        Application.EnableVisualStyles();
-        Application.SetCompatibleTextRenderingDefault(false);
-        Application.Run(new FrameworkVersionErrorDialog());
-      } else {
-        try {
-          Application.EnableVisualStyles();
-          Application.SetCompatibleTextRenderingDefault(false);
-          Application.Run(new StarterForm(args));
-        }
-        catch (Exception ex) {
-          ErrorHandling.ShowErrorDialog(ex);
-        }
-      }
-    }
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Manager/ApplicationDescription.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Manager/ApplicationDescription.cs	(revision 13335)
+++ branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Manager/ApplicationDescription.cs	(revision 13338)
@@ -42,7 +42,7 @@
     /// Gets or sets the version of the application.
     /// </summary>
-    internal Version Version {
+    public Version Version {
       get { return version; }
-      set { version = value; }
+      internal set { version = value; }
     }
     private string description;
@@ -60,7 +60,7 @@
     /// Gets or sets the boolean flag if the application should be automatically restarted.
     /// </summary>
-    internal bool AutoRestart {
+    public bool AutoRestart {
       get { return autoRestart; }
-      set { autoRestart = value; }
+      internal set { autoRestart = value; }
     }
 
@@ -69,7 +69,7 @@
     /// Gets or sets the name of the assembly that contains the IApplication type.
     /// </summary>
-    internal string DeclaringAssemblyName {
+    public string DeclaringAssemblyName {
       get { return declaringAssemblyName; }
-      set { declaringAssemblyName = value; }
+      internal set { declaringAssemblyName = value; }
     }
 
@@ -78,7 +78,7 @@
     /// Gets or sets the name of the type that implements the interface IApplication.
     /// </summary>
-    internal string DeclaringTypeName {
+    public string DeclaringTypeName {
       get { return declaringTypeName; }
-      set { declaringTypeName = value; }
+      internal set { declaringTypeName = value; }
     }
 
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Manager/PluginDescription.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Manager/PluginDescription.cs	(revision 13335)
+++ branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Manager/PluginDescription.cs	(revision 13338)
@@ -97,5 +97,5 @@
     /// Gets the error message why this plugin has been disabled.
     /// </summary>
-    internal string LoadingErrorInformation {
+    public string LoadingErrorInformation {
       get {
         return loadingErrorInformation;
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Resources.Designer.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Resources.Designer.cs	(revision 13335)
+++ 	(revision )
@@ -1,192 +1,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.34209
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace HeuristicLab.PluginInfrastructure {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class Resources {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal Resources() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HeuristicLab.PluginInfrastructure.Resources", typeof(Resources).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap Assembly {
-            get {
-                object obj = ResourceManager.GetObject("Assembly", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap Document {
-            get {
-                object obj = ResourceManager.GetObject("Document", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap Error {
-            get {
-                object obj = ResourceManager.GetObject("Error", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
-        /// </summary>
-        internal static System.Drawing.Icon ErrorIcon {
-            get {
-                object obj = ResourceManager.GetObject("ErrorIcon", resourceCulture);
-                return ((System.Drawing.Icon)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap File {
-            get {
-                object obj = ResourceManager.GetObject("File", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
-        /// </summary>
-        internal static System.Drawing.Icon HeuristicLab {
-            get {
-                object obj = ResourceManager.GetObject("HeuristicLab", resourceCulture);
-                return ((System.Drawing.Icon)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap HeuristicLabBanner {
-            get {
-                object obj = ResourceManager.GetObject("HeuristicLabBanner", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap HeuristicLabLogo {
-            get {
-                object obj = ResourceManager.GetObject("HeuristicLabLogo", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to 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 t [rest of string was truncated]&quot;;.
-        /// </summary>
-        internal static string LicenseText {
-            get {
-                return ResourceManager.GetString("LicenseText", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap Plugin {
-            get {
-                object obj = ResourceManager.GetObject("Plugin", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap ShowDetails {
-            get {
-                object obj = ResourceManager.GetObject("ShowDetails", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap ShowIcons {
-            get {
-                object obj = ResourceManager.GetObject("ShowIcons", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-    }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Resources.resx
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Resources.resx	(revision 13335)
+++ 	(revision )
@@ -1,169 +1,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="Assembly" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>Resources\VS2008ImageLibrary_Objects_Assembly.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="Document" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>Resources\VS2008ImageLibrary_Objects_Document.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="Error" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>Resources\VS2008ImageLibrary_Annotations_Error.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="ErrorIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>Resources\Error.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="File" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>Resources\VS2008ImageLibrary_Objects_File.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="HeuristicLab" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>Resources\HeuristicLab.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="HeuristicLabBanner" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>Resources\HeuristicLabBanner.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="HeuristicLabLogo" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>Resources\HeuristicLabLogo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="LicenseText" xml:space="preserve">
-    <value>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.</value>
-    <comment>Displayed in about dialog</comment>
-  </data>
-  <data name="Plugin" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>Resources\VS2008ImageLibrary_Objects_Plugin.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="ShowDetails" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>Resources\show_details.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="ShowIcons" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>Resources\show_icons.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-</root>
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Starter/AboutDialog.Designer.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Starter/AboutDialog.Designer.cs	(revision 13335)
+++ 	(revision )
@@ -1,331 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.PluginInfrastructure.Starter {
-  partial class AboutDialog {
-    /// <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.components = new System.ComponentModel.Container();
-      this.okButton = new System.Windows.Forms.Button();
-      this.pluginListView = new System.Windows.Forms.ListView();
-      this.pluginNameColumnHeader = new System.Windows.Forms.ColumnHeader();
-      this.pluginVersionColumnHeader = new System.Windows.Forms.ColumnHeader();
-      this.pluginDescriptionColumnHeader = new System.Windows.Forms.ColumnHeader();
-      this.imageList = new System.Windows.Forms.ImageList(this.components);
-      this.pictureBox = new System.Windows.Forms.PictureBox();
-      this.label = new System.Windows.Forms.Label();
-      this.label1 = new System.Windows.Forms.Label();
-      this.label3 = new System.Windows.Forms.Label();
-      this.productTextBox = new System.Windows.Forms.TextBox();
-      this.versionTextBox = new System.Windows.Forms.TextBox();
-      this.copyrightTextBox = new System.Windows.Forms.TextBox();
-      this.pluginsGroupBox = new System.Windows.Forms.GroupBox();
-      this.licenseTextBox = new System.Windows.Forms.RichTextBox();
-      this.label2 = new System.Windows.Forms.Label();
-      this.panel1 = new System.Windows.Forms.Panel();
-      this.label4 = new System.Windows.Forms.Label();
-      this.webLinkLabel = new System.Windows.Forms.LinkLabel();
-      this.mailLinkLabel = new System.Windows.Forms.LinkLabel();
-      ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit();
-      this.pluginsGroupBox.SuspendLayout();
-      this.panel1.SuspendLayout();
-      this.SuspendLayout();
-      // 
-      // okButton
-      // 
-      this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-      this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK;
-      this.okButton.Location = new System.Drawing.Point(538, 13);
-      this.okButton.Name = "okButton";
-      this.okButton.Size = new System.Drawing.Size(75, 23);
-      this.okButton.TabIndex = 0;
-      this.okButton.Text = "&Close";
-      this.okButton.UseVisualStyleBackColor = true;
-      this.okButton.Click += new System.EventHandler(this.okButton_Click);
-      // 
-      // pluginListView
-      // 
-      this.pluginListView.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.pluginListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
-            this.pluginNameColumnHeader,
-            this.pluginVersionColumnHeader,
-            this.pluginDescriptionColumnHeader});
-      this.pluginListView.Location = new System.Drawing.Point(6, 19);
-      this.pluginListView.Name = "pluginListView";
-      this.pluginListView.ShowGroups = false;
-      this.pluginListView.Size = new System.Drawing.Size(589, 201);
-      this.pluginListView.SmallImageList = this.imageList;
-      this.pluginListView.Sorting = System.Windows.Forms.SortOrder.Ascending;
-      this.pluginListView.TabIndex = 0;
-      this.pluginListView.UseCompatibleStateImageBehavior = false;
-      this.pluginListView.View = System.Windows.Forms.View.Details;
-      this.pluginListView.ItemActivate += new System.EventHandler(this.pluginListView_ItemActivate);
-      // 
-      // pluginNameColumnHeader
-      // 
-      this.pluginNameColumnHeader.Text = "Name";
-      // 
-      // pluginVersionColumnHeader
-      // 
-      this.pluginVersionColumnHeader.Text = "Version";
-      // 
-      // pluginDescriptionColumnHeader
-      // 
-      this.pluginDescriptionColumnHeader.Text = "Description";
-      // 
-      // imageList
-      // 
-      this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
-      this.imageList.ImageSize = new System.Drawing.Size(16, 16);
-      this.imageList.TransparentColor = System.Drawing.Color.Transparent;
-      // 
-      // pictureBox
-      // 
-      this.pictureBox.Location = new System.Drawing.Point(12, 12);
-      this.pictureBox.Name = "pictureBox";
-      this.pictureBox.Size = new System.Drawing.Size(160, 180);
-      this.pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
-      this.pictureBox.TabIndex = 2;
-      this.pictureBox.TabStop = false;
-      // 
-      // label
-      // 
-      this.label.AutoSize = true;
-      this.label.Location = new System.Drawing.Point(183, 12);
-      this.label.Name = "label";
-      this.label.Size = new System.Drawing.Size(47, 13);
-      this.label.TabIndex = 1;
-      this.label.Text = "Product:";
-      // 
-      // label1
-      // 
-      this.label1.AutoSize = true;
-      this.label1.Location = new System.Drawing.Point(183, 31);
-      this.label1.Name = "label1";
-      this.label1.Size = new System.Drawing.Size(45, 13);
-      this.label1.TabIndex = 3;
-      this.label1.Text = "Version:";
-      // 
-      // label3
-      // 
-      this.label3.AutoSize = true;
-      this.label3.Location = new System.Drawing.Point(183, 50);
-      this.label3.Name = "label3";
-      this.label3.Size = new System.Drawing.Size(54, 13);
-      this.label3.TabIndex = 5;
-      this.label3.Text = "Copyright:";
-      // 
-      // productTextBox
-      // 
-      this.productTextBox.BackColor = System.Drawing.SystemColors.HighlightText;
-      this.productTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
-      this.productTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.productTextBox.Location = new System.Drawing.Point(258, 12);
-      this.productTextBox.Name = "productTextBox";
-      this.productTextBox.ReadOnly = true;
-      this.productTextBox.Size = new System.Drawing.Size(355, 13);
-      this.productTextBox.TabIndex = 2;
-      this.productTextBox.Text = "HeuristicLab";
-      // 
-      // versionTextBox
-      // 
-      this.versionTextBox.BackColor = System.Drawing.SystemColors.HighlightText;
-      this.versionTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
-      this.versionTextBox.Location = new System.Drawing.Point(258, 31);
-      this.versionTextBox.Name = "versionTextBox";
-      this.versionTextBox.ReadOnly = true;
-      this.versionTextBox.Size = new System.Drawing.Size(355, 13);
-      this.versionTextBox.TabIndex = 4;
-      this.versionTextBox.Text = "1.0";
-      // 
-      // copyrightTextBox
-      // 
-      this.copyrightTextBox.BackColor = System.Drawing.SystemColors.HighlightText;
-      this.copyrightTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
-      this.copyrightTextBox.Location = new System.Drawing.Point(258, 50);
-      this.copyrightTextBox.Name = "copyrightTextBox";
-      this.copyrightTextBox.ReadOnly = true;
-      this.copyrightTextBox.Size = new System.Drawing.Size(355, 13);
-      this.copyrightTextBox.TabIndex = 6;
-      this.copyrightTextBox.Text = "(C)";
-      // 
-      // pluginsGroupBox
-      // 
-      this.pluginsGroupBox.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.pluginsGroupBox.Controls.Add(this.pluginListView);
-      this.pluginsGroupBox.Location = new System.Drawing.Point(12, 306);
-      this.pluginsGroupBox.Name = "pluginsGroupBox";
-      this.pluginsGroupBox.Size = new System.Drawing.Size(601, 226);
-      this.pluginsGroupBox.TabIndex = 12;
-      this.pluginsGroupBox.TabStop = false;
-      this.pluginsGroupBox.Text = "Plugins";
-      // 
-      // licenseTextBox
-      // 
-      this.licenseTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.licenseTextBox.BackColor = System.Drawing.SystemColors.HighlightText;
-      this.licenseTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
-      this.licenseTextBox.Location = new System.Drawing.Point(186, 115);
-      this.licenseTextBox.Name = "licenseTextBox";
-      this.licenseTextBox.ReadOnly = true;
-      this.licenseTextBox.Size = new System.Drawing.Size(427, 185);
-      this.licenseTextBox.TabIndex = 11;
-      this.licenseTextBox.Text = "License Text";
-      this.licenseTextBox.WordWrap = false;
-      this.licenseTextBox.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.licenseTextBox_LinkClicked);
-      // 
-      // label2
-      // 
-      this.label2.AutoSize = true;
-      this.label2.Location = new System.Drawing.Point(183, 69);
-      this.label2.Name = "label2";
-      this.label2.Size = new System.Drawing.Size(49, 13);
-      this.label2.TabIndex = 7;
-      this.label2.Text = "Website:";
-      // 
-      // panel1
-      // 
-      this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.panel1.BackColor = System.Drawing.SystemColors.Control;
-      this.panel1.Controls.Add(this.okButton);
-      this.panel1.Location = new System.Drawing.Point(0, 538);
-      this.panel1.Name = "panel1";
-      this.panel1.Size = new System.Drawing.Size(626, 48);
-      this.panel1.TabIndex = 0;
-      // 
-      // label4
-      // 
-      this.label4.AutoSize = true;
-      this.label4.Location = new System.Drawing.Point(183, 88);
-      this.label4.Name = "label4";
-      this.label4.Size = new System.Drawing.Size(47, 13);
-      this.label4.TabIndex = 9;
-      this.label4.Text = "Contact:";
-      // 
-      // webLinkLabel
-      // 
-      this.webLinkLabel.AutoSize = true;
-      this.webLinkLabel.Location = new System.Drawing.Point(255, 69);
-      this.webLinkLabel.Name = "webLinkLabel";
-      this.webLinkLabel.Size = new System.Drawing.Size(135, 13);
-      this.webLinkLabel.TabIndex = 8;
-      this.webLinkLabel.TabStop = true;
-      this.webLinkLabel.Text = "http://dev.heuristiclab.com";
-      this.webLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.webLinkLabel_LinkClicked);
-      // 
-      // mailLinkLabel
-      // 
-      this.mailLinkLabel.AutoSize = true;
-      this.mailLinkLabel.Location = new System.Drawing.Point(255, 88);
-      this.mailLinkLabel.Name = "mailLinkLabel";
-      this.mailLinkLabel.Size = new System.Drawing.Size(129, 13);
-      this.mailLinkLabel.TabIndex = 10;
-      this.mailLinkLabel.TabStop = true;
-      this.mailLinkLabel.Text = "support@heuristiclab.com";
-      this.mailLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.mailLinkLabel_LinkClicked);
-      // 
-      // AboutDialog
-      // 
-      this.AcceptButton = this.okButton;
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
-      this.BackColor = System.Drawing.SystemColors.Window;
-      this.CancelButton = this.okButton;
-      this.ClientSize = new System.Drawing.Size(625, 586);
-      this.Controls.Add(this.mailLinkLabel);
-      this.Controls.Add(this.webLinkLabel);
-      this.Controls.Add(this.label4);
-      this.Controls.Add(this.panel1);
-      this.Controls.Add(this.label2);
-      this.Controls.Add(this.licenseTextBox);
-      this.Controls.Add(this.pluginsGroupBox);
-      this.Controls.Add(this.copyrightTextBox);
-      this.Controls.Add(this.versionTextBox);
-      this.Controls.Add(this.productTextBox);
-      this.Controls.Add(this.label3);
-      this.Controls.Add(this.label1);
-      this.Controls.Add(this.label);
-      this.Controls.Add(this.pictureBox);
-      this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLab;
-      this.MaximizeBox = false;
-      this.MinimizeBox = false;
-      this.Name = "AboutDialog";
-      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
-      this.Text = "About HeuristicLab";
-      ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit();
-      this.pluginsGroupBox.ResumeLayout(false);
-      this.panel1.ResumeLayout(false);
-      this.ResumeLayout(false);
-      this.PerformLayout();
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.Button okButton;
-    private System.Windows.Forms.ListView pluginListView;
-    private System.Windows.Forms.ImageList imageList;
-    private System.Windows.Forms.ColumnHeader pluginNameColumnHeader;
-    private System.Windows.Forms.ColumnHeader pluginVersionColumnHeader;
-    private System.Windows.Forms.ColumnHeader pluginDescriptionColumnHeader;
-    private System.Windows.Forms.PictureBox pictureBox;
-    private System.Windows.Forms.Label label;
-    private System.Windows.Forms.Label label1;
-    private System.Windows.Forms.Label label3;
-    private System.Windows.Forms.TextBox productTextBox;
-    private System.Windows.Forms.TextBox versionTextBox;
-    private System.Windows.Forms.TextBox copyrightTextBox;
-    private System.Windows.Forms.GroupBox pluginsGroupBox;
-    private System.Windows.Forms.RichTextBox licenseTextBox;
-    private System.Windows.Forms.Label label2;
-    private System.Windows.Forms.Panel panel1;
-    private System.Windows.Forms.Label label4;
-    private System.Windows.Forms.LinkLabel webLinkLabel;
-    private System.Windows.Forms.LinkLabel mailLinkLabel;
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Starter/AboutDialog.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Starter/AboutDialog.cs	(revision 13335)
+++ 	(revision )
@@ -1,116 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using System.Windows.Forms;
-using HeuristicLab.PluginInfrastructure.Advanced;
-
-namespace HeuristicLab.PluginInfrastructure.Starter {
-  /// <summary>
-  /// Shows product, version and copyright information for HeuristicLab and all plugins.
-  /// </summary>
-  public partial class AboutDialog : Form {
-    /// <summary>
-    /// Creates a new about dialog with all plugins loaded in the current application.
-    /// </summary>
-    public AboutDialog() {
-      InitializeComponent();
-      var curAssembly = this.GetType().Assembly;
-      productTextBox.Text = GetProduct(curAssembly);
-      versionTextBox.Text = GetVersion();
-      copyrightTextBox.Text = GetCopyright(curAssembly);
-      imageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Plugin);
-      pictureBox.Image = HeuristicLab.PluginInfrastructure.Resources.HeuristicLabLogo;
-      licenseTextBox.Text = HeuristicLab.PluginInfrastructure.Resources.LicenseText;
-      UpdatePluginList(ApplicationManager.Manager.Plugins);
-      ActiveControl = okButton;
-    }
-
-    /// <summary>
-    /// Creates a new about dialog listing all plugins in the <paramref name="plugins"/> enumerable.
-    /// </summary>
-    /// <param name="plugins">Enumerable of plugins that should be listed.</param>
-    public AboutDialog(IEnumerable<IPluginDescription> plugins)
-      : this() {
-      UpdatePluginList(plugins);
-    }
-
-    private void UpdatePluginList(IEnumerable<IPluginDescription> plugins) {
-      pluginListView.Items.Clear();
-      foreach (var plugin in plugins) {
-        ListViewItem pluginItem = CreateListViewItem(plugin);
-        pluginListView.Items.Add(pluginItem);
-      }
-      Util.ResizeColumns(pluginListView.Columns.OfType<ColumnHeader>());
-    }
-
-    private ListViewItem CreateListViewItem(IPluginDescription plugin) {
-      ListViewItem item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), plugin.Description });
-      item.Tag = plugin;
-      item.ImageIndex = 0;
-      return item;
-    }
-
-    private string GetCopyright(Assembly asm) {
-      AssemblyCopyrightAttribute attribute = GetAttribute<AssemblyCopyrightAttribute>(asm);
-      return attribute.Copyright;
-    }
-
-    private string GetVersion() {
-      return AssemblyHelpers.GetFileVersion(GetType().Assembly);
-    }
-
-    private string GetProduct(Assembly asm) {
-      AssemblyProductAttribute attribute = GetAttribute<AssemblyProductAttribute>(asm);
-      return attribute.Product;
-    }
-
-    private T GetAttribute<T>(Assembly asm) {
-      return (T)asm.GetCustomAttributes(typeof(T), false).Single();
-    }
-
-    private void okButton_Click(object sender, EventArgs e) {
-      Close();
-    }
-
-    private void pluginListView_ItemActivate(object sender, EventArgs e) {
-      if (pluginListView.SelectedItems.Count > 0) {
-        PluginView view = new PluginView((IPluginDescription)pluginListView.SelectedItems[0].Tag);
-        view.Show(this);
-      }
-    }
-
-    private void licenseTextBox_LinkClicked(object sender, LinkClickedEventArgs e) {
-      System.Diagnostics.Process.Start(e.LinkText);
-    }
-
-    private void webLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
-      System.Diagnostics.Process.Start(webLinkLabel.Text);
-    }
-
-    private void mailLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
-      System.Diagnostics.Process.Start("mailto:" + mailLinkLabel.Text);
-    }
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Starter/SplashScreen.Designer.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Starter/SplashScreen.Designer.cs	(revision 13335)
+++ 	(revision )
@@ -1,134 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.PluginInfrastructure.Starter {
-  partial class SplashScreen {
-    /// <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.versionLabel = new System.Windows.Forms.Label();
-      this.infoLabel = new System.Windows.Forms.Label();
-      this.copyrightLabel = new System.Windows.Forms.Label();
-      this.pictureBox = new System.Windows.Forms.PictureBox();
-      ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit();
-      this.SuspendLayout();
-      // 
-      // versionLabel
-      // 
-      this.versionLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-      this.versionLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 6F);
-      this.versionLabel.Location = new System.Drawing.Point(436, 147);
-      this.versionLabel.Name = "versionLabel";
-      this.versionLabel.Size = new System.Drawing.Size(150, 9);
-      this.versionLabel.TabIndex = 1;
-      this.versionLabel.Text = "Version ";
-      this.versionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
-      // 
-      // infoLabel
-      // 
-      this.infoLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.infoLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.infoLabel.ForeColor = System.Drawing.Color.DarkOrange;
-      this.infoLabel.Location = new System.Drawing.Point(12, 113);
-      this.infoLabel.Name = "infoLabel";
-      this.infoLabel.Size = new System.Drawing.Size(574, 30);
-      this.infoLabel.TabIndex = 6;
-      this.infoLabel.Text = "Startup Information";
-      this.infoLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
-      // 
-      // copyrightLabel
-      // 
-      this.copyrightLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.copyrightLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 6F);
-      this.copyrightLabel.Location = new System.Drawing.Point(12, 147);
-      this.copyrightLabel.Name = "copyrightLabel";
-      this.copyrightLabel.Size = new System.Drawing.Size(150, 9);
-      this.copyrightLabel.TabIndex = 2;
-      this.copyrightLabel.Text = "Copyright";
-      this.copyrightLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
-      // 
-      // pictureBox
-      // 
-      this.pictureBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.pictureBox.Image = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLabBanner;
-      this.pictureBox.Location = new System.Drawing.Point(0, 0);
-      this.pictureBox.Name = "pictureBox";
-      this.pictureBox.Size = new System.Drawing.Size(598, 110);
-      this.pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
-      this.pictureBox.TabIndex = 0;
-      this.pictureBox.TabStop = false;
-      // 
-      // SplashScreen
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
-      this.BackColor = System.Drawing.Color.White;
-      this.ClientSize = new System.Drawing.Size(598, 165);
-      this.ControlBox = false;
-      this.Controls.Add(this.pictureBox);
-      this.Controls.Add(this.versionLabel);
-      this.Controls.Add(this.copyrightLabel);
-      this.Controls.Add(this.infoLabel);
-      this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
-      this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab;
-      this.MaximizeBox = false;
-      this.MinimizeBox = false;
-      this.Name = "SplashScreen";
-      this.Opacity = 0.99D;
-      this.ShowInTaskbar = false;
-      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
-      ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit();
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.PictureBox pictureBox;
-    private System.Windows.Forms.Label versionLabel;
-    private System.Windows.Forms.Label copyrightLabel;
-    private System.Windows.Forms.Label infoLabel;
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Starter/SplashScreen.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Starter/SplashScreen.cs	(revision 13335)
+++ 	(revision )
@@ -1,167 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.Reflection;
-using System.Windows.Forms;
-using HeuristicLab.PluginInfrastructure.Manager;
-
-namespace HeuristicLab.PluginInfrastructure.Starter {
-  internal partial class SplashScreen : Form {
-    private const int FADE_INTERVAL = 50;
-    private Timer fadeTimer;
-    private int initialInterval;
-    private PluginManager pluginManager;
-
-    internal SplashScreen() {
-      InitializeComponent();
-    }
-
-    internal SplashScreen(PluginManager manager, int initialInterval)
-      : this() {
-      this.initialInterval = initialInterval;
-      this.pluginManager = manager;
-
-      RegisterPluginManagerEventHandlers();
-
-      versionLabel.Text = "Version " + AssemblyHelpers.GetFileVersion(GetType().Assembly);
-      infoLabel.Text = "";
-
-      var attr = (AssemblyCopyrightAttribute)this.GetType().Assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false).Single();
-      copyrightLabel.Text = "Copyright " + attr.Copyright;
-
-      fadeTimer = new Timer();
-      fadeTimer.Tick += fadeTimer_Elapsed;
-      fadeTimer.Interval = initialInterval;
-    }
-
-    #region events
-    private void RegisterPluginManagerEventHandlers() {
-      pluginManager.ApplicationStarted += new EventHandler<PluginInfrastructureEventArgs>(manager_ApplicationStarted);
-      pluginManager.ApplicationStarting += new EventHandler<PluginInfrastructureEventArgs>(manager_ApplicationStarting);
-      pluginManager.Initializing += new EventHandler<PluginInfrastructureEventArgs>(manager_Initializing);
-      pluginManager.Initialized += new EventHandler<PluginInfrastructureEventArgs>(manager_Initialized);
-      pluginManager.PluginLoaded += new EventHandler<PluginInfrastructureEventArgs>(manager_PluginLoaded);
-      pluginManager.PluginUnloaded += new EventHandler<PluginInfrastructureEventArgs>(manager_PluginUnloaded);
-    }
-
-    private void DeregisterPluginManagerEventHandlers() {
-      pluginManager.ApplicationStarted -= new EventHandler<PluginInfrastructureEventArgs>(manager_ApplicationStarted);
-      pluginManager.ApplicationStarting -= new EventHandler<PluginInfrastructureEventArgs>(manager_ApplicationStarting);
-      pluginManager.Initializing -= new EventHandler<PluginInfrastructureEventArgs>(manager_Initializing);
-      pluginManager.Initialized -= new EventHandler<PluginInfrastructureEventArgs>(manager_Initialized);
-      pluginManager.PluginLoaded -= new EventHandler<PluginInfrastructureEventArgs>(manager_PluginLoaded);
-      pluginManager.PluginUnloaded -= new EventHandler<PluginInfrastructureEventArgs>(manager_PluginUnloaded);
-    }
-
-    private void manager_PluginUnloaded(object sender, PluginInfrastructureEventArgs e) {
-      SafeUpdateMessage("Unloaded " + e.Entity);
-    }
-
-    private void manager_PluginLoaded(object sender, PluginInfrastructureEventArgs e) {
-      SafeUpdateMessage("Loaded " + e.Entity);
-    }
-
-    private void manager_Initialized(object sender, PluginInfrastructureEventArgs e) {
-      SafeUpdateMessage("Initialized");
-    }
-
-    private void manager_Initializing(object sender, PluginInfrastructureEventArgs e) {
-      SafeUpdateMessage("Initializing");
-    }
-
-    private void manager_ApplicationStarting(object sender, PluginInfrastructureEventArgs e) {
-      SafeUpdateMessage("Starting " + e.Entity);
-    }
-
-    private void manager_ApplicationStarted(object sender, PluginInfrastructureEventArgs e) {
-      SafeUpdateMessage("Started " + e.Entity);
-    }
-    // called from event handlers
-    private void SafeUpdateMessage(string msg) {
-      try {
-        Invoke((Action<string>)UpdateMessage, msg);
-      }
-      catch (ObjectDisposedException) { }
-    }
-
-    // each tick of the timer reduce opacity and restart timer
-    private void fadeTimer_Elapsed(object sender, EventArgs e) {
-      // only called from local timer: no need to invoke here
-      FadeOut();
-    }
-    #endregion
-
-    public void Show(string initialText) {
-      if (InvokeRequired) Invoke((Action<string>)Show, initialText);
-      else {
-        Opacity = 1;
-        infoLabel.Text = initialText;
-        ResetFadeTimer();
-        Show();
-      }
-    }
-
-    public void Show(IWin32Window owner, string initialText) {
-      if (InvokeRequired) Invoke((Action<IWin32Window, string>)Show, owner, initialText);
-      else {
-        Opacity = 1;
-        infoLabel.Text = initialText;
-        ResetFadeTimer();
-        Show(owner);
-      }
-    }
-
-    private void ResetFadeTimer() {
-      // wait initialInterval again for the first tick
-      fadeTimer.Stop();
-      fadeTimer.Interval = initialInterval;
-      fadeTimer.Start();
-    }
-
-    private void UpdateMessage(string msg) {
-      ResetFadeTimer();
-      infoLabel.Text = msg;
-      Application.DoEvents(); // force immediate update of splash screen control
-    }
-
-    // reduces opacity of the splashscreen one step and restarts the fade-timer
-    private void FadeOut() {
-      fadeTimer.Stop();
-      fadeTimer.Interval = FADE_INTERVAL;
-      if (this.Opacity > 0) {
-        Opacity -= 0.1;
-        fadeTimer.Start();
-      } else {
-        Opacity = 0;
-        fadeTimer.Stop();
-        Hide();
-      }
-    }
-
-    protected override void OnClosing(System.ComponentModel.CancelEventArgs e) {
-      // deregister events when form is closing
-      DeregisterPluginManagerEventHandlers();
-      base.OnClosing(e);
-    }
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Starter/StarterForm.Designer.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Starter/StarterForm.Designer.cs	(revision 13335)
+++ 	(revision )
@@ -1,203 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.PluginInfrastructure.Starter {
-  partial class StarterForm {
-    /// <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.components = new System.ComponentModel.Container();
-      System.Windows.Forms.ListViewGroup listViewGroup1 = new System.Windows.Forms.ListViewGroup("Applications", System.Windows.Forms.HorizontalAlignment.Left);
-      System.Windows.Forms.ListViewGroup listViewGroup2 = new System.Windows.Forms.ListViewGroup("Plugin Management", System.Windows.Forms.HorizontalAlignment.Left);
-      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(StarterForm));
-      this.startButton = new System.Windows.Forms.Button();
-      this.largeImageList = new System.Windows.Forms.ImageList(this.components);
-      this.applicationsListView = new System.Windows.Forms.ListView();
-      this.nameColumnHeader = new System.Windows.Forms.ColumnHeader();
-      this.versionColumnHeader = new System.Windows.Forms.ColumnHeader();
-      this.descriptionColumnHeader = new System.Windows.Forms.ColumnHeader();
-      this.smallImageList = new System.Windows.Forms.ImageList(this.components);
-      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
-      this.showLargeIconsButton = new System.Windows.Forms.RadioButton();
-      this.showDetailsButton = new System.Windows.Forms.RadioButton();
-      this.aboutButton = new System.Windows.Forms.Button();
-      this.SuspendLayout();
-      // 
-      // startButton
-      // 
-      this.startButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-      this.startButton.Enabled = false;
-      this.startButton.Location = new System.Drawing.Point(498, 511);
-      this.startButton.Name = "startButton";
-      this.startButton.Size = new System.Drawing.Size(75, 23);
-      this.startButton.TabIndex = 1;
-      this.startButton.Text = "&Start";
-      this.toolTip.SetToolTip(this.startButton, "Start Selected Application");
-      this.startButton.UseVisualStyleBackColor = true;
-      this.startButton.Click += new System.EventHandler(this.applicationsListView_ItemActivate);
-      // 
-      // largeImageList
-      // 
-      this.largeImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
-      this.largeImageList.ImageSize = new System.Drawing.Size(32, 32);
-      this.largeImageList.TransparentColor = System.Drawing.Color.Transparent;
-      // 
-      // applicationsListView
-      // 
-      this.applicationsListView.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.applicationsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
-            this.nameColumnHeader,
-            this.versionColumnHeader,
-            this.descriptionColumnHeader});
-      listViewGroup1.Header = "Applications";
-      listViewGroup1.Name = "Applications";
-      listViewGroup2.Header = "Plugin Management";
-      listViewGroup2.Name = "Plugin Management";
-      this.applicationsListView.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] {
-            listViewGroup1,
-            listViewGroup2});
-      this.applicationsListView.LargeImageList = this.largeImageList;
-      this.applicationsListView.Location = new System.Drawing.Point(12, 12);
-      this.applicationsListView.MultiSelect = false;
-      this.applicationsListView.Name = "applicationsListView";
-      this.applicationsListView.ShowItemToolTips = true;
-      this.applicationsListView.Size = new System.Drawing.Size(642, 493);
-      this.applicationsListView.SmallImageList = this.smallImageList;
-      this.applicationsListView.TabIndex = 0;
-      this.applicationsListView.UseCompatibleStateImageBehavior = false;
-      this.applicationsListView.ItemActivate += new System.EventHandler(this.applicationsListView_ItemActivate);
-      this.applicationsListView.SelectedIndexChanged += new System.EventHandler(this.applicationsListView_SelectedIndexChanged);
-      // 
-      // nameColumnHeader
-      // 
-      this.nameColumnHeader.Text = "Name";
-      this.nameColumnHeader.Width = 125;
-      // 
-      // versionColumnHeader
-      // 
-      this.versionColumnHeader.Text = "Version";
-      // 
-      // descriptionColumnHeader
-      // 
-      this.descriptionColumnHeader.Text = "Description";
-      this.descriptionColumnHeader.Width = 453;
-      // 
-      // smallImageList
-      // 
-      this.smallImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
-      this.smallImageList.ImageSize = new System.Drawing.Size(16, 16);
-      this.smallImageList.TransparentColor = System.Drawing.Color.Transparent;
-      // 
-      // showLargeIconsButton
-      // 
-      this.showLargeIconsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.showLargeIconsButton.Appearance = System.Windows.Forms.Appearance.Button;
-      this.showLargeIconsButton.Checked = true;
-      this.showLargeIconsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.ShowIcons;
-      this.showLargeIconsButton.Location = new System.Drawing.Point(12, 511);
-      this.showLargeIconsButton.Name = "showLargeIconsButton";
-      this.showLargeIconsButton.Size = new System.Drawing.Size(23, 23);
-      this.showLargeIconsButton.TabIndex = 2;
-      this.showLargeIconsButton.TabStop = true;
-      this.toolTip.SetToolTip(this.showLargeIconsButton, "Show Large Icons");
-      this.showLargeIconsButton.UseVisualStyleBackColor = false;
-      this.showLargeIconsButton.Click += new System.EventHandler(this.largeIconsButton_Click);
-      // 
-      // showDetailsButton
-      // 
-      this.showDetailsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.showDetailsButton.Appearance = System.Windows.Forms.Appearance.Button;
-      this.showDetailsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.ShowDetails;
-      this.showDetailsButton.Location = new System.Drawing.Point(41, 511);
-      this.showDetailsButton.Name = "showDetailsButton";
-      this.showDetailsButton.Size = new System.Drawing.Size(23, 23);
-      this.showDetailsButton.TabIndex = 3;
-      this.toolTip.SetToolTip(this.showDetailsButton, "Show Details");
-      this.showDetailsButton.UseVisualStyleBackColor = false;
-      this.showDetailsButton.Click += new System.EventHandler(this.detailsButton_Click);
-      // 
-      // aboutButton
-      // 
-      this.aboutButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-      this.aboutButton.Location = new System.Drawing.Point(579, 511);
-      this.aboutButton.Name = "aboutButton";
-      this.aboutButton.Size = new System.Drawing.Size(75, 23);
-      this.aboutButton.TabIndex = 4;
-      this.aboutButton.Text = "&About...";
-      this.aboutButton.UseVisualStyleBackColor = true;
-      this.aboutButton.Click += new System.EventHandler(this.aboutButton_Click);
-      // 
-      // StarterForm
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
-      this.ClientSize = new System.Drawing.Size(666, 546);
-      this.Controls.Add(this.aboutButton);
-      this.Controls.Add(this.showDetailsButton);
-      this.Controls.Add(this.showLargeIconsButton);
-      this.Controls.Add(this.applicationsListView);
-      this.Controls.Add(this.startButton);
-      this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab;
-      this.Name = "StarterForm";
-      this.Text = "HeuristicLab Starter";
-      this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.StarterForm_FormClosing);
-      this.Load += new System.EventHandler(this.StarterForm_Load);
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.Button startButton;
-    private System.Windows.Forms.ImageList largeImageList;
-    private System.Windows.Forms.ListView applicationsListView;
-    private System.Windows.Forms.ColumnHeader nameColumnHeader;
-    private System.Windows.Forms.ColumnHeader versionColumnHeader;
-    private System.Windows.Forms.ColumnHeader descriptionColumnHeader;
-    private System.Windows.Forms.ImageList smallImageList;
-    private System.Windows.Forms.ToolTip toolTip;
-    private System.Windows.Forms.RadioButton showLargeIconsButton;
-    private System.Windows.Forms.RadioButton showDetailsButton;
-    private System.Windows.Forms.Button aboutButton;
-  }
-}
Index: branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Starter/StarterForm.cs
===================================================================
--- branches/RefactorPluginInfrastructure-2522/HeuristicLab.PluginInfrastructure/3.3/Starter/StarterForm.cs	(revision 13335)
+++ 	(revision )
@@ -1,242 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.IO;
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-using HeuristicLab.PluginInfrastructure.Advanced;
-using HeuristicLab.PluginInfrastructure.Manager;
-
-namespace HeuristicLab.PluginInfrastructure.Starter {
-  /// <summary>
-  /// The starter form is responsible for initializing the plugin infrastructure
-  /// and shows a list of installed applications.
-  /// </summary>
-  public partial class StarterForm : Form {
-    private const string pluginManagerItemName = "Plugin Manager";
-    // private const string updatePluginsItemName = "Updates Available";
-    private const string optimizerItemName = "Optimizer"; // TODO: encoding a specific name of an application here is problematic (applications are discovered dynamically)
-
-    private readonly ICommandLineArgument[] arguments;
-
-    private ListViewItem pluginManagerListViewItem;
-    private bool abortRequested; // TODO: necessary
-    private PluginManager pluginManager;
-    private SplashScreen splashScreen;
-
-    /// <summary>
-    /// Initializes an instance of the starter form.
-    /// The starter form shows a splashscreen and initializes the plugin infrastructure.
-    /// </summary>
-    public StarterForm()
-      : base() {
-      InitializeComponent();
-      largeImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.HeuristicLab.ToBitmap());
-      smallImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.HeuristicLab.ToBitmap());
-      Text = "HeuristicLab " + AssemblyHelpers.GetFileVersion(GetType().Assembly);
-
-      string pluginPath = Path.GetFullPath(Application.StartupPath);
-      pluginManager = new PluginManager(pluginPath);
-      splashScreen = new SplashScreen(pluginManager, 1000);
-      splashScreen.VisibleChanged += new EventHandler(splashScreen_VisibleChanged);
-      splashScreen.Show(this, "Loading HeuristicLab...");
-
-      pluginManager.DiscoverAndCheckPlugins();
-      UpdateApplicationsList();
-    }
-
-    /// <summary>
-    /// Creates a new StarterForm and passes the arguments in <paramref name="args"/>.
-    /// </summary>
-    /// <param name="args">The arguments that should be processed</param>
-    public StarterForm(string[] args)
-      : this() {
-      arguments = CommandLineArgumentHandling.GetArguments(args);
-    }
-
-    protected override void SetVisibleCore(bool value) {
-      value &= !(arguments.OfType<HideStarterArgument>().Any() || arguments.OfType<OpenArgument>().Any());
-      if (!value) HandleArguments();
-      base.SetVisibleCore(value);
-    }
-
-    #region Events
-    private void StarterForm_Load(object sender, EventArgs e) {
-      HandleArguments();
-    }
-
-    private void StarterForm_FormClosing(object sender, FormClosingEventArgs e) {
-      splashScreen.Close();
-      abortRequested = true;
-    }
-
-    private void applicationsListView_SelectedIndexChanged(object sender, EventArgs e) {
-      startButton.Enabled = applicationsListView.SelectedItems.Count > 0;
-    }
-
-    private void applicationsListView_ItemActivate(object sender, EventArgs e) {
-      if (applicationsListView.SelectedItems.Count > 0) {
-        ListViewItem selected = applicationsListView.SelectedItems[0];
-        if (selected.Text == pluginManagerItemName) {
-          if (pluginManager.Plugins.Any(x => x.PluginState == PluginState.Loaded)) {
-            MessageBox.Show("Installation Manager cannot be started while another HeuristicLab application is active." + Environment.NewLine +
-              "Please stop all active HeuristicLab applications and try again.", "Plugin Manager",
-              MessageBoxButtons.OK, MessageBoxIcon.Information);
-          } else {
-            try {
-              Cursor = Cursors.AppStarting;
-              using (InstallationManagerForm form = new InstallationManagerForm(pluginManager)) {
-                form.ShowDialog(this);
-              }
-              UpdateApplicationsList();
-            }
-            finally {
-              Cursor = Cursors.Arrow;
-            }
-          }
-        } else {
-          ApplicationDescription app = (ApplicationDescription)applicationsListView.SelectedItems[0].Tag;
-          StartApplication(app, arguments);
-        }
-      }
-    }
-
-    private void largeIconsButton_Click(object sender, EventArgs e) {
-      applicationsListView.View = View.LargeIcon;
-    }
-
-    private void detailsButton_Click(object sender, EventArgs e) {
-      applicationsListView.View = View.Details;
-      foreach (ColumnHeader column in applicationsListView.Columns) {
-        if (applicationsListView.Items.Count > 0)
-          column.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
-        else column.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
-      }
-    }
-
-    private void aboutButton_Click(object sender, EventArgs e) {
-      List<IPluginDescription> plugins = new List<IPluginDescription>(pluginManager.Plugins.OfType<IPluginDescription>());
-      using (var dialog = new AboutDialog(plugins)) {
-        dialog.ShowDialog();
-      }
-    }
-
-    private void splashScreen_VisibleChanged(object sender, EventArgs e) {
-      // close hidden starter form
-      if (!splashScreen.Visible && arguments != null &&
-           (arguments.OfType<HideStarterArgument>().Any() || arguments.OfType<OpenArgument>().Any()))
-        Close();
-    }
-    #endregion
-
-    #region Helpers
-    private void UpdateApplicationsList() {
-      if (InvokeRequired) Invoke((Action)UpdateApplicationsList);
-      else {
-        applicationsListView.Items.Clear();
-        AddPluginManagerItem();
-
-        foreach (ApplicationDescription info in pluginManager.Applications) {
-          ListViewItem item = new ListViewItem(info.Name, 0);
-          item.Tag = info;
-          item.Group = applicationsListView.Groups["Applications"];
-          item.SubItems.Add(new ListViewItem.ListViewSubItem(item, info.Version.ToString()));
-          item.SubItems.Add(new ListViewItem.ListViewSubItem(item, info.Description));
-          item.ToolTipText = info.Description;
-          applicationsListView.Items.Add(item);
-        }
-        foreach (ColumnHeader column in applicationsListView.Columns) {
-          if (applicationsListView.Items.Count > 0)
-            column.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
-          else column.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
-        }
-      }
-    }
-
-    private void AddPluginManagerItem() {
-      pluginManagerListViewItem = new ListViewItem(pluginManagerItemName, 0);
-      pluginManagerListViewItem.Group = applicationsListView.Groups["Plugin Management"];
-      pluginManagerListViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(pluginManagerListViewItem, AssemblyHelpers.GetFileVersion(GetType().Assembly)));
-      pluginManagerListViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(pluginManagerListViewItem, "Install, upgrade or delete plugins"));
-      pluginManagerListViewItem.ToolTipText = "Install, upgrade or delete plugins";
-
-      applicationsListView.Items.Add(pluginManagerListViewItem);
-    }
-
-    private void HandleArguments() {
-      try {
-        if (arguments.OfType<OpenArgument>().Any() && !arguments.OfType<StartArgument>().Any()) {
-          InitiateApplicationStart(optimizerItemName);
-        }
-        foreach (var argument in arguments) {
-          if (argument is StartArgument) {
-            var arg = (StartArgument)argument;
-            InitiateApplicationStart(arg.Value);
-          }
-        }
-      }
-      catch (AggregateException ex) {
-        ErrorHandling.ShowErrorDialog(this, "One or more errors occurred while initializing the application.", ex);
-      }
-    }
-
-    private void InitiateApplicationStart(string appName) {
-      var appDesc = (from desc in pluginManager.Applications
-                     where desc.Name.Equals(appName)
-                     select desc).SingleOrDefault();
-      if (appDesc != null) {
-        StartApplication(appDesc, arguments);
-      } else {
-        MessageBox.Show("Cannot start application " + appName + ".",
-                        "HeuristicLab",
-                        MessageBoxButtons.OK,
-                        MessageBoxIcon.Warning);
-      }
-    }
-
-    private void StartApplication(ApplicationDescription app, ICommandLineArgument[] args) {
-      splashScreen.Show("Loading " + app.Name);
-      Thread t = new Thread(delegate() {
-        bool stopped = false;
-        do {
-          try {
-            if (!abortRequested) {
-              pluginManager.Run(app, args);
-            }
-            stopped = true;
-          }
-          catch (Exception ex) {
-            stopped = false;
-            ThreadPool.QueueUserWorkItem(delegate(object exception) { ErrorHandling.ShowErrorDialog(this, (Exception)exception); }, ex);
-            Thread.Sleep(5000); // sleep 5 seconds before autorestart
-          }
-        } while (!abortRequested && !stopped && app.AutoRestart);
-      });
-      t.SetApartmentState(ApartmentState.STA); // needed for the AdvancedOptimizationFrontent
-      t.Start();
-    }
-    #endregion
-  }
-}
