Index: trunk/sources/HeuristicLab.SGA/3.3/HeuristicLab.SGA-3.3.csproj
===================================================================
--- trunk/sources/HeuristicLab.SGA/3.3/HeuristicLab.SGA-3.3.csproj	(revision 2526)
+++ trunk/sources/HeuristicLab.SGA/3.3/HeuristicLab.SGA-3.3.csproj	(revision 2546)
@@ -87,9 +87,9 @@
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="SGA.cs" />
-    <Compile Include="SGAEditor.cs">
+    <Compile Include="SGAView.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="SGAEditor.Designer.cs">
-      <DependentUpon>SGAEditor.cs</DependentUpon>
+    <Compile Include="SGAView.Designer.cs">
+      <DependentUpon>SGAView.cs</DependentUpon>
     </Compile>
   </ItemGroup>
@@ -157,7 +157,6 @@
   </ItemGroup>
   <ItemGroup>
-    <EmbeddedResource Include="SGAEditor.resx">
-      <SubType>Designer</SubType>
-      <DependentUpon>SGAEditor.cs</DependentUpon>
+    <EmbeddedResource Include="SGAView.resx">
+      <DependentUpon>SGAView.cs</DependentUpon>
     </EmbeddedResource>
   </ItemGroup>
Index: trunk/sources/HeuristicLab.SGA/3.3/SGAEditor.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.SGA/3.3/SGAEditor.Designer.cs	(revision 2526)
+++ 	(revision )
@@ -1,644 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.SGA {
-  partial class SGAEditor {
-    /// <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 (chooseOperatorDialog != null) chooseOperatorDialog.Dispose();
-      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.executeButton = new System.Windows.Forms.Button();
-      this.tabControl = new System.Windows.Forms.TabControl();
-      this.parametersTabPage = new System.Windows.Forms.TabPage();
-      this.setEvaluationButton = new System.Windows.Forms.Button();
-      this.setMutationButton = new System.Windows.Forms.Button();
-      this.setCrossoverButton = new System.Windows.Forms.Button();
-      this.setSelectionButton = new System.Windows.Forms.Button();
-      this.setSolutionGenerationButton = new System.Windows.Forms.Button();
-      this.setProblemInitializationButton = new System.Windows.Forms.Button();
-      this.evaluationTextBox = new System.Windows.Forms.TextBox();
-      this.mutationTextBox = new System.Windows.Forms.TextBox();
-      this.crossoverTextBox = new System.Windows.Forms.TextBox();
-      this.selectionTextBox = new System.Windows.Forms.TextBox();
-      this.solutionGenerationTextBox = new System.Windows.Forms.TextBox();
-      this.problemInitializationTextBox = new System.Windows.Forms.TextBox();
-      this.setRandomSeedRandomlyCheckBox = new System.Windows.Forms.CheckBox();
-      this.elitesTextBox = new System.Windows.Forms.TextBox();
-      this.evaluationLabel = new System.Windows.Forms.Label();
-      this.mutationLabel = new System.Windows.Forms.Label();
-      this.selectionLabel = new System.Windows.Forms.Label();
-      this.crossoverLabel = new System.Windows.Forms.Label();
-      this.solutionGenerationLabel = new System.Windows.Forms.Label();
-      this.problemInitializationLabel = new System.Windows.Forms.Label();
-      this.elitesLabel = new System.Windows.Forms.Label();
-      this.mutationRateTextBox = new System.Windows.Forms.TextBox();
-      this.mutationRateLabel = new System.Windows.Forms.Label();
-      this.maximumGenerationsTextBox = new System.Windows.Forms.TextBox();
-      this.maximumGenerationsLabel = new System.Windows.Forms.Label();
-      this.randomSeedTextBox = new System.Windows.Forms.TextBox();
-      this.populationSizeTextBox = new System.Windows.Forms.TextBox();
-      this.setRandomSeedRandomlyLabel = new System.Windows.Forms.Label();
-      this.randomSeedLabel = new System.Windows.Forms.Label();
-      this.populationSizeLabel = new System.Windows.Forms.Label();
-      this.scopesTabPage = new System.Windows.Forms.TabPage();
-      this.scopeView = new HeuristicLab.Core.Views.ScopeView();
-      this.abortButton = new System.Windows.Forms.Button();
-      this.resetButton = new System.Windows.Forms.Button();
-      this.cloneEngineButton = new System.Windows.Forms.Button();
-      this.viewProblemInitializationButton = new System.Windows.Forms.Button();
-      this.viewSolutionGenerationButton = new System.Windows.Forms.Button();
-      this.viewSelectionButton = new System.Windows.Forms.Button();
-      this.viewCrossoverButton = new System.Windows.Forms.Button();
-      this.viewMutationButton = new System.Windows.Forms.Button();
-      this.viewEvaluationButton = new System.Windows.Forms.Button();
-      this.tabControl.SuspendLayout();
-      this.parametersTabPage.SuspendLayout();
-      this.scopesTabPage.SuspendLayout();
-      this.SuspendLayout();
-      // 
-      // executeButton
-      // 
-      this.executeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.executeButton.Location = new System.Drawing.Point(0, 396);
-      this.executeButton.Name = "executeButton";
-      this.executeButton.Size = new System.Drawing.Size(75, 23);
-      this.executeButton.TabIndex = 1;
-      this.executeButton.Text = "&Execute";
-      this.executeButton.UseVisualStyleBackColor = true;
-      this.executeButton.Click += new System.EventHandler(this.executeButton_Click);
-      // 
-      // 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.parametersTabPage);
-      this.tabControl.Controls.Add(this.scopesTabPage);
-      this.tabControl.Location = new System.Drawing.Point(0, 0);
-      this.tabControl.Name = "tabControl";
-      this.tabControl.SelectedIndex = 0;
-      this.tabControl.Size = new System.Drawing.Size(526, 390);
-      this.tabControl.TabIndex = 0;
-      // 
-      // parametersTabPage
-      // 
-      this.parametersTabPage.Controls.Add(this.setEvaluationButton);
-      this.parametersTabPage.Controls.Add(this.setMutationButton);
-      this.parametersTabPage.Controls.Add(this.setCrossoverButton);
-      this.parametersTabPage.Controls.Add(this.setSelectionButton);
-      this.parametersTabPage.Controls.Add(this.setSolutionGenerationButton);
-      this.parametersTabPage.Controls.Add(this.viewEvaluationButton);
-      this.parametersTabPage.Controls.Add(this.viewMutationButton);
-      this.parametersTabPage.Controls.Add(this.viewCrossoverButton);
-      this.parametersTabPage.Controls.Add(this.viewSelectionButton);
-      this.parametersTabPage.Controls.Add(this.viewSolutionGenerationButton);
-      this.parametersTabPage.Controls.Add(this.viewProblemInitializationButton);
-      this.parametersTabPage.Controls.Add(this.setProblemInitializationButton);
-      this.parametersTabPage.Controls.Add(this.evaluationTextBox);
-      this.parametersTabPage.Controls.Add(this.mutationTextBox);
-      this.parametersTabPage.Controls.Add(this.crossoverTextBox);
-      this.parametersTabPage.Controls.Add(this.selectionTextBox);
-      this.parametersTabPage.Controls.Add(this.solutionGenerationTextBox);
-      this.parametersTabPage.Controls.Add(this.problemInitializationTextBox);
-      this.parametersTabPage.Controls.Add(this.setRandomSeedRandomlyCheckBox);
-      this.parametersTabPage.Controls.Add(this.elitesTextBox);
-      this.parametersTabPage.Controls.Add(this.evaluationLabel);
-      this.parametersTabPage.Controls.Add(this.mutationLabel);
-      this.parametersTabPage.Controls.Add(this.selectionLabel);
-      this.parametersTabPage.Controls.Add(this.crossoverLabel);
-      this.parametersTabPage.Controls.Add(this.solutionGenerationLabel);
-      this.parametersTabPage.Controls.Add(this.problemInitializationLabel);
-      this.parametersTabPage.Controls.Add(this.elitesLabel);
-      this.parametersTabPage.Controls.Add(this.mutationRateTextBox);
-      this.parametersTabPage.Controls.Add(this.mutationRateLabel);
-      this.parametersTabPage.Controls.Add(this.maximumGenerationsTextBox);
-      this.parametersTabPage.Controls.Add(this.maximumGenerationsLabel);
-      this.parametersTabPage.Controls.Add(this.randomSeedTextBox);
-      this.parametersTabPage.Controls.Add(this.populationSizeTextBox);
-      this.parametersTabPage.Controls.Add(this.setRandomSeedRandomlyLabel);
-      this.parametersTabPage.Controls.Add(this.randomSeedLabel);
-      this.parametersTabPage.Controls.Add(this.populationSizeLabel);
-      this.parametersTabPage.Location = new System.Drawing.Point(4, 22);
-      this.parametersTabPage.Name = "parametersTabPage";
-      this.parametersTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.parametersTabPage.Size = new System.Drawing.Size(518, 364);
-      this.parametersTabPage.TabIndex = 0;
-      this.parametersTabPage.Text = "Parameters";
-      this.parametersTabPage.UseVisualStyleBackColor = true;
-      // 
-      // setEvaluationButton
-      // 
-      this.setEvaluationButton.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.setEvaluationButton.Location = new System.Drawing.Point(469, 338);
-      this.setEvaluationButton.Name = "setEvaluationButton";
-      this.setEvaluationButton.Size = new System.Drawing.Size(43, 20);
-      this.setEvaluationButton.TabIndex = 35;
-      this.setEvaluationButton.Text = "Set...";
-      this.setEvaluationButton.UseVisualStyleBackColor = true;
-      this.setEvaluationButton.Click += new System.EventHandler(this.setEvaluationButton_Click);
-      // 
-      // setMutationButton
-      // 
-      this.setMutationButton.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.setMutationButton.Location = new System.Drawing.Point(469, 312);
-      this.setMutationButton.Name = "setMutationButton";
-      this.setMutationButton.Size = new System.Drawing.Size(43, 20);
-      this.setMutationButton.TabIndex = 31;
-      this.setMutationButton.Text = "Set...";
-      this.setMutationButton.UseVisualStyleBackColor = true;
-      this.setMutationButton.Click += new System.EventHandler(this.setMutationButton_Click);
-      // 
-      // setCrossoverButton
-      // 
-      this.setCrossoverButton.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.setCrossoverButton.Location = new System.Drawing.Point(469, 286);
-      this.setCrossoverButton.Name = "setCrossoverButton";
-      this.setCrossoverButton.Size = new System.Drawing.Size(43, 20);
-      this.setCrossoverButton.TabIndex = 27;
-      this.setCrossoverButton.Text = "Set...";
-      this.setCrossoverButton.UseVisualStyleBackColor = true;
-      this.setCrossoverButton.Click += new System.EventHandler(this.setCrossoverButton_Click);
-      // 
-      // setSelectionButton
-      // 
-      this.setSelectionButton.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.setSelectionButton.Location = new System.Drawing.Point(469, 260);
-      this.setSelectionButton.Name = "setSelectionButton";
-      this.setSelectionButton.Size = new System.Drawing.Size(43, 20);
-      this.setSelectionButton.TabIndex = 23;
-      this.setSelectionButton.Text = "Set...";
-      this.setSelectionButton.UseVisualStyleBackColor = true;
-      this.setSelectionButton.Click += new System.EventHandler(this.setSelectionButton_Click);
-      // 
-      // setSolutionGenerationButton
-      // 
-      this.setSolutionGenerationButton.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.setSolutionGenerationButton.Location = new System.Drawing.Point(469, 234);
-      this.setSolutionGenerationButton.Name = "setSolutionGenerationButton";
-      this.setSolutionGenerationButton.Size = new System.Drawing.Size(43, 20);
-      this.setSolutionGenerationButton.TabIndex = 19;
-      this.setSolutionGenerationButton.Text = "Set...";
-      this.setSolutionGenerationButton.UseVisualStyleBackColor = true;
-      this.setSolutionGenerationButton.Click += new System.EventHandler(this.setSolutionGenerationButton_Click);
-      // 
-      // setProblemInitializationButton
-      // 
-      this.setProblemInitializationButton.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.setProblemInitializationButton.Location = new System.Drawing.Point(469, 208);
-      this.setProblemInitializationButton.Name = "setProblemInitializationButton";
-      this.setProblemInitializationButton.Size = new System.Drawing.Size(43, 20);
-      this.setProblemInitializationButton.TabIndex = 15;
-      this.setProblemInitializationButton.Text = "Set...";
-      this.setProblemInitializationButton.UseVisualStyleBackColor = true;
-      this.setProblemInitializationButton.Click += new System.EventHandler(this.setProblemInitializationButton_Click);
-      // 
-      // evaluationTextBox
-      // 
-      this.evaluationTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.evaluationTextBox.Location = new System.Drawing.Point(218, 338);
-      this.evaluationTextBox.Name = "evaluationTextBox";
-      this.evaluationTextBox.ReadOnly = true;
-      this.evaluationTextBox.Size = new System.Drawing.Size(186, 20);
-      this.evaluationTextBox.TabIndex = 33;
-      // 
-      // mutationTextBox
-      // 
-      this.mutationTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.mutationTextBox.Location = new System.Drawing.Point(218, 312);
-      this.mutationTextBox.Name = "mutationTextBox";
-      this.mutationTextBox.ReadOnly = true;
-      this.mutationTextBox.Size = new System.Drawing.Size(186, 20);
-      this.mutationTextBox.TabIndex = 29;
-      // 
-      // crossoverTextBox
-      // 
-      this.crossoverTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.crossoverTextBox.Location = new System.Drawing.Point(218, 286);
-      this.crossoverTextBox.Name = "crossoverTextBox";
-      this.crossoverTextBox.ReadOnly = true;
-      this.crossoverTextBox.Size = new System.Drawing.Size(186, 20);
-      this.crossoverTextBox.TabIndex = 25;
-      // 
-      // selectionTextBox
-      // 
-      this.selectionTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.selectionTextBox.Location = new System.Drawing.Point(218, 260);
-      this.selectionTextBox.Name = "selectionTextBox";
-      this.selectionTextBox.ReadOnly = true;
-      this.selectionTextBox.Size = new System.Drawing.Size(186, 20);
-      this.selectionTextBox.TabIndex = 21;
-      // 
-      // solutionGenerationTextBox
-      // 
-      this.solutionGenerationTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.solutionGenerationTextBox.Location = new System.Drawing.Point(218, 234);
-      this.solutionGenerationTextBox.Name = "solutionGenerationTextBox";
-      this.solutionGenerationTextBox.ReadOnly = true;
-      this.solutionGenerationTextBox.Size = new System.Drawing.Size(186, 20);
-      this.solutionGenerationTextBox.TabIndex = 17;
-      // 
-      // problemInitializationTextBox
-      // 
-      this.problemInitializationTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.problemInitializationTextBox.Location = new System.Drawing.Point(218, 208);
-      this.problemInitializationTextBox.Name = "problemInitializationTextBox";
-      this.problemInitializationTextBox.ReadOnly = true;
-      this.problemInitializationTextBox.Size = new System.Drawing.Size(186, 20);
-      this.problemInitializationTextBox.TabIndex = 13;
-      // 
-      // setRandomSeedRandomlyCheckBox
-      // 
-      this.setRandomSeedRandomlyCheckBox.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.setRandomSeedRandomlyCheckBox.AutoSize = true;
-      this.setRandomSeedRandomlyCheckBox.Location = new System.Drawing.Point(218, 6);
-      this.setRandomSeedRandomlyCheckBox.Name = "setRandomSeedRandomlyCheckBox";
-      this.setRandomSeedRandomlyCheckBox.Size = new System.Drawing.Size(15, 14);
-      this.setRandomSeedRandomlyCheckBox.TabIndex = 1;
-      this.setRandomSeedRandomlyCheckBox.UseVisualStyleBackColor = true;
-      // 
-      // elitesTextBox
-      // 
-      this.elitesTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.elitesTextBox.Location = new System.Drawing.Point(218, 156);
-      this.elitesTextBox.Name = "elitesTextBox";
-      this.elitesTextBox.Size = new System.Drawing.Size(186, 20);
-      this.elitesTextBox.TabIndex = 11;
-      // 
-      // evaluationLabel
-      // 
-      this.evaluationLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.evaluationLabel.AutoSize = true;
-      this.evaluationLabel.Location = new System.Drawing.Point(65, 341);
-      this.evaluationLabel.Name = "evaluationLabel";
-      this.evaluationLabel.Size = new System.Drawing.Size(60, 13);
-      this.evaluationLabel.TabIndex = 32;
-      this.evaluationLabel.Text = "&Evaluation:";
-      // 
-      // mutationLabel
-      // 
-      this.mutationLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.mutationLabel.AutoSize = true;
-      this.mutationLabel.Location = new System.Drawing.Point(65, 315);
-      this.mutationLabel.Name = "mutationLabel";
-      this.mutationLabel.Size = new System.Drawing.Size(51, 13);
-      this.mutationLabel.TabIndex = 28;
-      this.mutationLabel.Text = "&Mutation:";
-      // 
-      // selectionLabel
-      // 
-      this.selectionLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.selectionLabel.AutoSize = true;
-      this.selectionLabel.Location = new System.Drawing.Point(65, 263);
-      this.selectionLabel.Name = "selectionLabel";
-      this.selectionLabel.Size = new System.Drawing.Size(54, 13);
-      this.selectionLabel.TabIndex = 20;
-      this.selectionLabel.Text = "&Selection:";
-      // 
-      // crossoverLabel
-      // 
-      this.crossoverLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.crossoverLabel.AutoSize = true;
-      this.crossoverLabel.Location = new System.Drawing.Point(65, 289);
-      this.crossoverLabel.Name = "crossoverLabel";
-      this.crossoverLabel.Size = new System.Drawing.Size(57, 13);
-      this.crossoverLabel.TabIndex = 24;
-      this.crossoverLabel.Text = "&Crossover:";
-      // 
-      // solutionGenerationLabel
-      // 
-      this.solutionGenerationLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.solutionGenerationLabel.AutoSize = true;
-      this.solutionGenerationLabel.Location = new System.Drawing.Point(65, 237);
-      this.solutionGenerationLabel.Name = "solutionGenerationLabel";
-      this.solutionGenerationLabel.Size = new System.Drawing.Size(103, 13);
-      this.solutionGenerationLabel.TabIndex = 16;
-      this.solutionGenerationLabel.Text = "&Solution Generation:";
-      // 
-      // problemInitializationLabel
-      // 
-      this.problemInitializationLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.problemInitializationLabel.AutoSize = true;
-      this.problemInitializationLabel.Location = new System.Drawing.Point(65, 211);
-      this.problemInitializationLabel.Name = "problemInitializationLabel";
-      this.problemInitializationLabel.Size = new System.Drawing.Size(105, 13);
-      this.problemInitializationLabel.TabIndex = 12;
-      this.problemInitializationLabel.Text = "&Problem Initialization:";
-      // 
-      // elitesLabel
-      // 
-      this.elitesLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.elitesLabel.AutoSize = true;
-      this.elitesLabel.Location = new System.Drawing.Point(65, 159);
-      this.elitesLabel.Name = "elitesLabel";
-      this.elitesLabel.Size = new System.Drawing.Size(35, 13);
-      this.elitesLabel.TabIndex = 10;
-      this.elitesLabel.Text = "&Elites:";
-      // 
-      // mutationRateTextBox
-      // 
-      this.mutationRateTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.mutationRateTextBox.Location = new System.Drawing.Point(218, 130);
-      this.mutationRateTextBox.Name = "mutationRateTextBox";
-      this.mutationRateTextBox.Size = new System.Drawing.Size(186, 20);
-      this.mutationRateTextBox.TabIndex = 9;
-      // 
-      // mutationRateLabel
-      // 
-      this.mutationRateLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.mutationRateLabel.AutoSize = true;
-      this.mutationRateLabel.Location = new System.Drawing.Point(65, 133);
-      this.mutationRateLabel.Name = "mutationRateLabel";
-      this.mutationRateLabel.Size = new System.Drawing.Size(77, 13);
-      this.mutationRateLabel.TabIndex = 8;
-      this.mutationRateLabel.Text = "&Mutation Rate:";
-      // 
-      // maximumGenerationsTextBox
-      // 
-      this.maximumGenerationsTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.maximumGenerationsTextBox.Location = new System.Drawing.Point(218, 104);
-      this.maximumGenerationsTextBox.Name = "maximumGenerationsTextBox";
-      this.maximumGenerationsTextBox.Size = new System.Drawing.Size(186, 20);
-      this.maximumGenerationsTextBox.TabIndex = 7;
-      // 
-      // maximumGenerationsLabel
-      // 
-      this.maximumGenerationsLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.maximumGenerationsLabel.AutoSize = true;
-      this.maximumGenerationsLabel.Location = new System.Drawing.Point(65, 107);
-      this.maximumGenerationsLabel.Name = "maximumGenerationsLabel";
-      this.maximumGenerationsLabel.Size = new System.Drawing.Size(114, 13);
-      this.maximumGenerationsLabel.TabIndex = 6;
-      this.maximumGenerationsLabel.Text = "Maximum &Generations:";
-      // 
-      // randomSeedTextBox
-      // 
-      this.randomSeedTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.randomSeedTextBox.Location = new System.Drawing.Point(218, 26);
-      this.randomSeedTextBox.Name = "randomSeedTextBox";
-      this.randomSeedTextBox.Size = new System.Drawing.Size(186, 20);
-      this.randomSeedTextBox.TabIndex = 3;
-      // 
-      // populationSizeTextBox
-      // 
-      this.populationSizeTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.populationSizeTextBox.Location = new System.Drawing.Point(218, 78);
-      this.populationSizeTextBox.Name = "populationSizeTextBox";
-      this.populationSizeTextBox.Size = new System.Drawing.Size(186, 20);
-      this.populationSizeTextBox.TabIndex = 5;
-      // 
-      // setRandomSeedRandomlyLabel
-      // 
-      this.setRandomSeedRandomlyLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.setRandomSeedRandomlyLabel.AutoSize = true;
-      this.setRandomSeedRandomlyLabel.Location = new System.Drawing.Point(65, 6);
-      this.setRandomSeedRandomlyLabel.Name = "setRandomSeedRandomlyLabel";
-      this.setRandomSeedRandomlyLabel.Size = new System.Drawing.Size(147, 13);
-      this.setRandomSeedRandomlyLabel.TabIndex = 0;
-      this.setRandomSeedRandomlyLabel.Text = "Set &Random Seed Randomly:";
-      // 
-      // randomSeedLabel
-      // 
-      this.randomSeedLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.randomSeedLabel.AutoSize = true;
-      this.randomSeedLabel.Location = new System.Drawing.Point(65, 29);
-      this.randomSeedLabel.Name = "randomSeedLabel";
-      this.randomSeedLabel.Size = new System.Drawing.Size(78, 13);
-      this.randomSeedLabel.TabIndex = 2;
-      this.randomSeedLabel.Text = "&Random Seed:";
-      // 
-      // populationSizeLabel
-      // 
-      this.populationSizeLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.populationSizeLabel.AutoSize = true;
-      this.populationSizeLabel.Location = new System.Drawing.Point(65, 81);
-      this.populationSizeLabel.Name = "populationSizeLabel";
-      this.populationSizeLabel.Size = new System.Drawing.Size(83, 13);
-      this.populationSizeLabel.TabIndex = 4;
-      this.populationSizeLabel.Text = "&Population Size:";
-      // 
-      // scopesTabPage
-      // 
-      this.scopesTabPage.Controls.Add(this.scopeView);
-      this.scopesTabPage.Location = new System.Drawing.Point(4, 22);
-      this.scopesTabPage.Name = "scopesTabPage";
-      this.scopesTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.scopesTabPage.Size = new System.Drawing.Size(518, 364);
-      this.scopesTabPage.TabIndex = 2;
-      this.scopesTabPage.Text = "Scopes";
-      this.scopesTabPage.UseVisualStyleBackColor = true;
-      // 
-      // scopeView
-      // 
-      this.scopeView.Caption = "Scope";
-      this.scopeView.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.scopeView.Location = new System.Drawing.Point(3, 3);
-      this.scopeView.Name = "scopeView";
-      this.scopeView.Scope = null;
-      this.scopeView.Size = new System.Drawing.Size(512, 358);
-      this.scopeView.TabIndex = 0;
-      // 
-      // abortButton
-      // 
-      this.abortButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.abortButton.Enabled = false;
-      this.abortButton.Location = new System.Drawing.Point(81, 396);
-      this.abortButton.Name = "abortButton";
-      this.abortButton.Size = new System.Drawing.Size(75, 23);
-      this.abortButton.TabIndex = 2;
-      this.abortButton.Text = "&Abort";
-      this.abortButton.UseVisualStyleBackColor = true;
-      this.abortButton.Click += new System.EventHandler(this.abortButton_Click);
-      // 
-      // resetButton
-      // 
-      this.resetButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.resetButton.Location = new System.Drawing.Point(162, 396);
-      this.resetButton.Name = "resetButton";
-      this.resetButton.Size = new System.Drawing.Size(75, 23);
-      this.resetButton.TabIndex = 3;
-      this.resetButton.Text = "&Reset";
-      this.resetButton.UseVisualStyleBackColor = true;
-      this.resetButton.Click += new System.EventHandler(this.resetButton_Click);
-      // 
-      // cloneEngineButton
-      // 
-      this.cloneEngineButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-      this.cloneEngineButton.Location = new System.Drawing.Point(420, 396);
-      this.cloneEngineButton.Name = "cloneEngineButton";
-      this.cloneEngineButton.Size = new System.Drawing.Size(106, 23);
-      this.cloneEngineButton.TabIndex = 4;
-      this.cloneEngineButton.Text = "&Clone Engine...";
-      this.cloneEngineButton.UseVisualStyleBackColor = true;
-      this.cloneEngineButton.Click += new System.EventHandler(this.cloneEngineButton_Click);
-      // 
-      // viewProblemInitializationButton
-      // 
-      this.viewProblemInitializationButton.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.viewProblemInitializationButton.Location = new System.Drawing.Point(410, 208);
-      this.viewProblemInitializationButton.Name = "viewProblemInitializationButton";
-      this.viewProblemInitializationButton.Size = new System.Drawing.Size(53, 20);
-      this.viewProblemInitializationButton.TabIndex = 14;
-      this.viewProblemInitializationButton.Text = "View...";
-      this.viewProblemInitializationButton.UseVisualStyleBackColor = true;
-      this.viewProblemInitializationButton.Click += new System.EventHandler(this.viewProblemInitializationButton_Click);
-      // 
-      // viewSolutionGenerationButton
-      // 
-      this.viewSolutionGenerationButton.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.viewSolutionGenerationButton.Location = new System.Drawing.Point(410, 234);
-      this.viewSolutionGenerationButton.Name = "viewSolutionGenerationButton";
-      this.viewSolutionGenerationButton.Size = new System.Drawing.Size(53, 20);
-      this.viewSolutionGenerationButton.TabIndex = 18;
-      this.viewSolutionGenerationButton.Text = "View...";
-      this.viewSolutionGenerationButton.UseVisualStyleBackColor = true;
-      this.viewSolutionGenerationButton.Click += new System.EventHandler(this.viewSolutionGenerationButton_Click);
-      // 
-      // viewSelectionButton
-      // 
-      this.viewSelectionButton.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.viewSelectionButton.Location = new System.Drawing.Point(410, 260);
-      this.viewSelectionButton.Name = "viewSelectionButton";
-      this.viewSelectionButton.Size = new System.Drawing.Size(53, 20);
-      this.viewSelectionButton.TabIndex = 22;
-      this.viewSelectionButton.Text = "View...";
-      this.viewSelectionButton.UseVisualStyleBackColor = true;
-      this.viewSelectionButton.Click += new System.EventHandler(this.viewSelectionButton_Click);
-      // 
-      // viewCrossoverButton
-      // 
-      this.viewCrossoverButton.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.viewCrossoverButton.Location = new System.Drawing.Point(410, 286);
-      this.viewCrossoverButton.Name = "viewCrossoverButton";
-      this.viewCrossoverButton.Size = new System.Drawing.Size(53, 20);
-      this.viewCrossoverButton.TabIndex = 26;
-      this.viewCrossoverButton.Text = "View...";
-      this.viewCrossoverButton.UseVisualStyleBackColor = true;
-      this.viewCrossoverButton.Click += new System.EventHandler(this.viewCrossoverButton_Click);
-      // 
-      // viewMutationButton
-      // 
-      this.viewMutationButton.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.viewMutationButton.Location = new System.Drawing.Point(410, 312);
-      this.viewMutationButton.Name = "viewMutationButton";
-      this.viewMutationButton.Size = new System.Drawing.Size(53, 20);
-      this.viewMutationButton.TabIndex = 30;
-      this.viewMutationButton.Text = "View...";
-      this.viewMutationButton.UseVisualStyleBackColor = true;
-      this.viewMutationButton.Click += new System.EventHandler(this.viewMutationButton_Click);
-      // 
-      // viewEvaluationButton
-      // 
-      this.viewEvaluationButton.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.viewEvaluationButton.Location = new System.Drawing.Point(410, 338);
-      this.viewEvaluationButton.Name = "viewEvaluationButton";
-      this.viewEvaluationButton.Size = new System.Drawing.Size(53, 20);
-      this.viewEvaluationButton.TabIndex = 34;
-      this.viewEvaluationButton.Text = "View...";
-      this.viewEvaluationButton.UseVisualStyleBackColor = true;
-      this.viewEvaluationButton.Click += new System.EventHandler(this.viewEvaluationButton_Click);
-      // 
-      // SGAEditor
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.tabControl);
-      this.Controls.Add(this.cloneEngineButton);
-      this.Controls.Add(this.resetButton);
-      this.Controls.Add(this.abortButton);
-      this.Controls.Add(this.executeButton);
-      this.Name = "SGAEditor";
-      this.Size = new System.Drawing.Size(526, 419);
-      this.tabControl.ResumeLayout(false);
-      this.parametersTabPage.ResumeLayout(false);
-      this.parametersTabPage.PerformLayout();
-      this.scopesTabPage.ResumeLayout(false);
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.Button executeButton;
-    private System.Windows.Forms.TabControl tabControl;
-    private System.Windows.Forms.TabPage parametersTabPage;
-    private System.Windows.Forms.Button abortButton;
-    private System.Windows.Forms.Button resetButton;
-    private System.Windows.Forms.TextBox mutationRateTextBox;
-    private System.Windows.Forms.Label mutationRateLabel;
-    private System.Windows.Forms.TextBox populationSizeTextBox;
-    private System.Windows.Forms.Label populationSizeLabel;
-    private System.Windows.Forms.TabPage scopesTabPage;
-    private System.Windows.Forms.TextBox maximumGenerationsTextBox;
-    private System.Windows.Forms.Label maximumGenerationsLabel;
-    private System.Windows.Forms.TextBox elitesTextBox;
-    private System.Windows.Forms.Label elitesLabel;
-    private System.Windows.Forms.TextBox randomSeedTextBox;
-    private System.Windows.Forms.Label setRandomSeedRandomlyLabel;
-    private System.Windows.Forms.Label randomSeedLabel;
-    private System.Windows.Forms.CheckBox setRandomSeedRandomlyCheckBox;
-    private System.Windows.Forms.Label problemInitializationLabel;
-    private System.Windows.Forms.Label evaluationLabel;
-    private System.Windows.Forms.Label mutationLabel;
-    private System.Windows.Forms.Label crossoverLabel;
-    private System.Windows.Forms.Label solutionGenerationLabel;
-    private System.Windows.Forms.Button cloneEngineButton;
-    private System.Windows.Forms.TextBox mutationTextBox;
-    private System.Windows.Forms.TextBox crossoverTextBox;
-    private System.Windows.Forms.TextBox selectionTextBox;
-    private System.Windows.Forms.TextBox solutionGenerationTextBox;
-    private System.Windows.Forms.TextBox problemInitializationTextBox;
-    private System.Windows.Forms.Label selectionLabel;
-    private System.Windows.Forms.TextBox evaluationTextBox;
-    private System.Windows.Forms.Button setProblemInitializationButton;
-    private System.Windows.Forms.Button setEvaluationButton;
-    private System.Windows.Forms.Button setMutationButton;
-    private System.Windows.Forms.Button setCrossoverButton;
-    private System.Windows.Forms.Button setSelectionButton;
-    private System.Windows.Forms.Button setSolutionGenerationButton;
-    private HeuristicLab.Core.Views.ScopeView scopeView;
-    private System.Windows.Forms.Button viewEvaluationButton;
-    private System.Windows.Forms.Button viewMutationButton;
-    private System.Windows.Forms.Button viewCrossoverButton;
-    private System.Windows.Forms.Button viewSelectionButton;
-    private System.Windows.Forms.Button viewSolutionGenerationButton;
-    private System.Windows.Forms.Button viewProblemInitializationButton;
-  }
-}
Index: trunk/sources/HeuristicLab.SGA/3.3/SGAEditor.cs
===================================================================
--- trunk/sources/HeuristicLab.SGA/3.3/SGAEditor.cs	(revision 2526)
+++ 	(revision )
@@ -1,224 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
-using System.Windows.Forms;
-using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.Core;
-using HeuristicLab.Common;
-using HeuristicLab.Core.Views;
-using HeuristicLab.MainForm;
-
-namespace HeuristicLab.SGA {
-  /// <summary>
-  /// Visual representation of the <see cref="SGA"/> class.
-  /// </summary>
-  [Content(typeof(SGA), true)]
-  public partial class SGAEditor : EditorBase {
-    private ChooseOperatorDialog chooseOperatorDialog;
-
-    /// <summary>
-    /// Gets or sets the <see cref="SGA"/> item to represent visually.
-    /// </summary>
-    /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="EditorBase"/>.
-    /// No own data storage present!</remarks>
-    public SGA SGA {
-      get { return (SGA)Item; }
-      set { base.Item = value; }
-    }
-
-    /// <summary>
-    /// Initializes a new instance of <see cref="SGAEditor"/>.
-    /// </summary>
-    public SGAEditor() {
-      InitializeComponent();
-    }
-    /// <summary>
-    /// Initializes a new instance of <see cref="SGAEditor"/> with the given <paramref name="sga"/>.
-    /// </summary>
-    /// <param name="sga">The simple genetic algorithm to represent visually.</param>
-    public SGAEditor(SGA sga)
-      : this() {
-      SGA = sga;
-    }
-
-    /// <summary>
-    /// Removes the eventhandlers from the underlying <see cref="IEngine"/> of the <see cref="SGA"/>.
-    /// </summary>
-    /// <remarks>Calls <see cref="ViewBase.RemoveItemEvents"/> of base class <see cref="EditorBase"/>.</remarks>
-    protected override void RemoveItemEvents() {
-      SGA.Engine.ExceptionOccurred -= new EventHandler<EventArgs<Exception>>(Engine_ExceptionOccurred);
-      SGA.Engine.Finished -= new EventHandler(Engine_Finished);
-      scopeView.Scope = null;
-      base.RemoveItemEvents();
-    }
-    /// <summary>
-    /// Adds eventhandlers to the underlying <see cref="IEngine"/> of the <see cref="SGA"/>.
-    /// </summary>
-    /// <remarks>Calls <see cref="ViewBase.AddItemEvents"/> of base class <see cref="EditorBase"/>.</remarks>
-    protected override void AddItemEvents() {
-      base.AddItemEvents();
-      SGA.Engine.ExceptionOccurred += new EventHandler<EventArgs<Exception>>(Engine_ExceptionOccurred);
-      SGA.Engine.Finished += new EventHandler(Engine_Finished);
-      SetDataBinding();
-      scopeView.Scope = SGA.Engine.GlobalScope;
-    }
-
-    /// <summary>
-    /// Updates all controls with the latest data of the model.
-    /// </summary>
-    /// <remarks>Calls <see cref="EditorBase.UpdateControls"/> of base class <see cref="EditorBase"/>.</remarks>
-    protected override void UpdateControls() {
-      base.UpdateControls();
-      if (SGA == null) {
-        tabControl.Enabled = false;
-      } else {
-        tabControl.Enabled = true;
-        problemInitializationTextBox.Text = SGA.ProblemInjector.GetType().Name;
-        solutionGenerationTextBox.Text = SGA.SolutionGenerator.GetType().Name;
-        selectionTextBox.Text = SGA.Selector.GetType().Name;
-        crossoverTextBox.Text = SGA.Crossover.GetType().Name;
-        mutationTextBox.Text = SGA.Mutator.GetType().Name;
-        evaluationTextBox.Text = SGA.Evaluator.GetType().Name;
-      }
-    }
-
-    private void SetDataBinding() {
-      setRandomSeedRandomlyCheckBox.DataBindings.Add("Checked", SGA, "SetSeedRandomly");
-      randomSeedTextBox.DataBindings.Add("Text", SGA, "Seed");
-      populationSizeTextBox.DataBindings.Add("Text", SGA, "PopulationSize");
-      maximumGenerationsTextBox.DataBindings.Add("Text", SGA, "MaximumGenerations");
-      mutationRateTextBox.DataBindings.Add("Text", SGA, "MutationRate");
-      elitesTextBox.DataBindings.Add("Text", SGA, "Elites");
-    }
-
-    #region Button Events
-    private void viewProblemInitializationButton_Click(object sender, EventArgs e) {
-      HeuristicLab.Core.Views.IView view = (HeuristicLab.Core.Views.IView)MainFormManager.CreateDefaultView(SGA.ProblemInjector);
-      if (view != null)
-        PluginManager.ControlManager.ShowControl(view);
-    }
-    private void viewSolutionGenerationButton_Click(object sender, EventArgs e) {
-      HeuristicLab.Core.Views.IView view = (HeuristicLab.Core.Views.IView)MainFormManager.CreateDefaultView(SGA.SolutionGenerator);
-      if (view != null)
-        PluginManager.ControlManager.ShowControl(view);
-    }
-    private void viewSelectionButton_Click(object sender, EventArgs e) {
-      HeuristicLab.Core.Views.IView view = (HeuristicLab.Core.Views.IView)MainFormManager.CreateDefaultView(SGA.Selector);
-      if (view != null)
-        PluginManager.ControlManager.ShowControl(view);
-    }
-    private void viewCrossoverButton_Click(object sender, EventArgs e) {
-      HeuristicLab.Core.Views.IView view = (HeuristicLab.Core.Views.IView)MainFormManager.CreateDefaultView(SGA.Crossover);
-      if (view != null)
-        PluginManager.ControlManager.ShowControl(view);
-    }
-    private void viewMutationButton_Click(object sender, EventArgs e) {
-      HeuristicLab.Core.Views.IView view = (HeuristicLab.Core.Views.IView)MainFormManager.CreateDefaultView(SGA.Mutator);
-      if (view != null)
-        PluginManager.ControlManager.ShowControl(view);
-    }
-    private void viewEvaluationButton_Click(object sender, EventArgs e) {
-      HeuristicLab.Core.Views.IView view = (HeuristicLab.Core.Views.IView)MainFormManager.CreateDefaultView(SGA.Evaluator);
-      if (view != null)
-        PluginManager.ControlManager.ShowControl(view);
-    }
-    private void setProblemInitializationButton_Click(object sender, EventArgs e) {
-      if (chooseOperatorDialog == null) chooseOperatorDialog = new ChooseOperatorDialog();
-      if (chooseOperatorDialog.ShowDialog(this) == DialogResult.OK) {
-        SGA.ProblemInjector = chooseOperatorDialog.Operator;
-        problemInitializationTextBox.Text = SGA.ProblemInjector.GetType().Name;
-      }
-    }
-    private void setSolutionGenerationButton_Click(object sender, EventArgs e) {
-      if (chooseOperatorDialog == null) chooseOperatorDialog = new ChooseOperatorDialog();
-      if (chooseOperatorDialog.ShowDialog(this) == DialogResult.OK) {
-        SGA.SolutionGenerator= chooseOperatorDialog.Operator;
-        solutionGenerationTextBox.Text = SGA.SolutionGenerator.GetType().Name;
-      }
-    }
-    private void setSelectionButton_Click(object sender, EventArgs e) {
-      if (chooseOperatorDialog == null) chooseOperatorDialog = new ChooseOperatorDialog();
-      if (chooseOperatorDialog.ShowDialog(this) == DialogResult.OK) {
-        SGA.Selector = chooseOperatorDialog.Operator;
-        selectionTextBox.Text = SGA.Selector.GetType().Name;
-      }
-    }
-    private void setCrossoverButton_Click(object sender, EventArgs e) {
-      if (chooseOperatorDialog == null) chooseOperatorDialog = new ChooseOperatorDialog();
-      if (chooseOperatorDialog.ShowDialog(this) == DialogResult.OK) {
-        SGA.Crossover = chooseOperatorDialog.Operator;
-        crossoverTextBox.Text = SGA.Crossover.GetType().Name;
-      }
-    }
-    private void setMutationButton_Click(object sender, EventArgs e) {
-      if (chooseOperatorDialog == null) chooseOperatorDialog = new ChooseOperatorDialog();
-      if (chooseOperatorDialog.ShowDialog(this) == DialogResult.OK) {
-        SGA.Mutator = chooseOperatorDialog.Operator;
-        mutationTextBox.Text = SGA.Mutator.GetType().Name;
-      }
-    }
-    private void setEvaluationButton_Click(object sender, EventArgs e) {
-      if (chooseOperatorDialog == null) chooseOperatorDialog = new ChooseOperatorDialog();
-      if (chooseOperatorDialog.ShowDialog(this) == DialogResult.OK) {
-        SGA.Evaluator = chooseOperatorDialog.Operator;
-        evaluationTextBox.Text = SGA.Evaluator.GetType().Name;
-      }
-    }
-    private void executeButton_Click(object sender, EventArgs e) {
-      executeButton.Enabled = false;
-      abortButton.Enabled = true;
-      SGA.Engine.Execute();
-    }
-    private void abortButton_Click(object sender, EventArgs e) {
-      SGA.Engine.Abort();
-    }
-    private void resetButton_Click(object sender, EventArgs e) {
-      SGA.Engine.Reset();
-    }
-    private void cloneEngineButton_Click(object sender, EventArgs e) {
-      IEngine clone = (IEngine)SGA.Engine.Clone();
-      IEditor editor = (IEditor)MainFormManager.CreateDefaultView(clone);
-      PluginManager.ControlManager.ShowControl(editor);
-    }
-    #endregion
-
-    #region Engine Events
-    private delegate void OnExceptionEventDelegate(object sender, EventArgs<Exception> e);
-    private void Engine_ExceptionOccurred(object sender, EventArgs<Exception> e) {
-      if (InvokeRequired)
-        Invoke(new OnExceptionEventDelegate(Engine_ExceptionOccurred), sender, e);
-      else
-        HeuristicLab.Core.Views.Auxiliary.ShowErrorMessageBox(e.Value);
-    }
-    private void Engine_Finished(object sender, EventArgs e) {
-      scopeView.Refresh();
-      executeButton.Enabled = true;
-      abortButton.Enabled = false;
-    }
-    #endregion
-  }
-}
Index: trunk/sources/HeuristicLab.SGA/3.3/SGAEditor.resx
===================================================================
--- trunk/sources/HeuristicLab.SGA/3.3/SGAEditor.resx	(revision 2526)
+++ 	(revision )
@@ -1,120 +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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>
Index: trunk/sources/HeuristicLab.SGA/3.3/SGAView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.SGA/3.3/SGAView.Designer.cs	(revision 2546)
+++ trunk/sources/HeuristicLab.SGA/3.3/SGAView.Designer.cs	(revision 2546)
@@ -0,0 +1,644 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 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.SGA {
+  partial class SGAView {
+    /// <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 (chooseOperatorDialog != null) chooseOperatorDialog.Dispose();
+      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.executeButton = new System.Windows.Forms.Button();
+      this.tabControl = new System.Windows.Forms.TabControl();
+      this.parametersTabPage = new System.Windows.Forms.TabPage();
+      this.setEvaluationButton = new System.Windows.Forms.Button();
+      this.setMutationButton = new System.Windows.Forms.Button();
+      this.setCrossoverButton = new System.Windows.Forms.Button();
+      this.setSelectionButton = new System.Windows.Forms.Button();
+      this.setSolutionGenerationButton = new System.Windows.Forms.Button();
+      this.setProblemInitializationButton = new System.Windows.Forms.Button();
+      this.evaluationTextBox = new System.Windows.Forms.TextBox();
+      this.mutationTextBox = new System.Windows.Forms.TextBox();
+      this.crossoverTextBox = new System.Windows.Forms.TextBox();
+      this.selectionTextBox = new System.Windows.Forms.TextBox();
+      this.solutionGenerationTextBox = new System.Windows.Forms.TextBox();
+      this.problemInitializationTextBox = new System.Windows.Forms.TextBox();
+      this.setRandomSeedRandomlyCheckBox = new System.Windows.Forms.CheckBox();
+      this.elitesTextBox = new System.Windows.Forms.TextBox();
+      this.evaluationLabel = new System.Windows.Forms.Label();
+      this.mutationLabel = new System.Windows.Forms.Label();
+      this.selectionLabel = new System.Windows.Forms.Label();
+      this.crossoverLabel = new System.Windows.Forms.Label();
+      this.solutionGenerationLabel = new System.Windows.Forms.Label();
+      this.problemInitializationLabel = new System.Windows.Forms.Label();
+      this.elitesLabel = new System.Windows.Forms.Label();
+      this.mutationRateTextBox = new System.Windows.Forms.TextBox();
+      this.mutationRateLabel = new System.Windows.Forms.Label();
+      this.maximumGenerationsTextBox = new System.Windows.Forms.TextBox();
+      this.maximumGenerationsLabel = new System.Windows.Forms.Label();
+      this.randomSeedTextBox = new System.Windows.Forms.TextBox();
+      this.populationSizeTextBox = new System.Windows.Forms.TextBox();
+      this.setRandomSeedRandomlyLabel = new System.Windows.Forms.Label();
+      this.randomSeedLabel = new System.Windows.Forms.Label();
+      this.populationSizeLabel = new System.Windows.Forms.Label();
+      this.scopesTabPage = new System.Windows.Forms.TabPage();
+      this.scopeView = new HeuristicLab.Core.Views.ScopeView();
+      this.abortButton = new System.Windows.Forms.Button();
+      this.resetButton = new System.Windows.Forms.Button();
+      this.cloneEngineButton = new System.Windows.Forms.Button();
+      this.viewProblemInitializationButton = new System.Windows.Forms.Button();
+      this.viewSolutionGenerationButton = new System.Windows.Forms.Button();
+      this.viewSelectionButton = new System.Windows.Forms.Button();
+      this.viewCrossoverButton = new System.Windows.Forms.Button();
+      this.viewMutationButton = new System.Windows.Forms.Button();
+      this.viewEvaluationButton = new System.Windows.Forms.Button();
+      this.tabControl.SuspendLayout();
+      this.parametersTabPage.SuspendLayout();
+      this.scopesTabPage.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // executeButton
+      // 
+      this.executeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.executeButton.Location = new System.Drawing.Point(0, 396);
+      this.executeButton.Name = "executeButton";
+      this.executeButton.Size = new System.Drawing.Size(75, 23);
+      this.executeButton.TabIndex = 1;
+      this.executeButton.Text = "&Execute";
+      this.executeButton.UseVisualStyleBackColor = true;
+      this.executeButton.Click += new System.EventHandler(this.executeButton_Click);
+      // 
+      // 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.parametersTabPage);
+      this.tabControl.Controls.Add(this.scopesTabPage);
+      this.tabControl.Location = new System.Drawing.Point(0, 0);
+      this.tabControl.Name = "tabControl";
+      this.tabControl.SelectedIndex = 0;
+      this.tabControl.Size = new System.Drawing.Size(526, 390);
+      this.tabControl.TabIndex = 0;
+      // 
+      // parametersTabPage
+      // 
+      this.parametersTabPage.Controls.Add(this.setEvaluationButton);
+      this.parametersTabPage.Controls.Add(this.setMutationButton);
+      this.parametersTabPage.Controls.Add(this.setCrossoverButton);
+      this.parametersTabPage.Controls.Add(this.setSelectionButton);
+      this.parametersTabPage.Controls.Add(this.setSolutionGenerationButton);
+      this.parametersTabPage.Controls.Add(this.viewEvaluationButton);
+      this.parametersTabPage.Controls.Add(this.viewMutationButton);
+      this.parametersTabPage.Controls.Add(this.viewCrossoverButton);
+      this.parametersTabPage.Controls.Add(this.viewSelectionButton);
+      this.parametersTabPage.Controls.Add(this.viewSolutionGenerationButton);
+      this.parametersTabPage.Controls.Add(this.viewProblemInitializationButton);
+      this.parametersTabPage.Controls.Add(this.setProblemInitializationButton);
+      this.parametersTabPage.Controls.Add(this.evaluationTextBox);
+      this.parametersTabPage.Controls.Add(this.mutationTextBox);
+      this.parametersTabPage.Controls.Add(this.crossoverTextBox);
+      this.parametersTabPage.Controls.Add(this.selectionTextBox);
+      this.parametersTabPage.Controls.Add(this.solutionGenerationTextBox);
+      this.parametersTabPage.Controls.Add(this.problemInitializationTextBox);
+      this.parametersTabPage.Controls.Add(this.setRandomSeedRandomlyCheckBox);
+      this.parametersTabPage.Controls.Add(this.elitesTextBox);
+      this.parametersTabPage.Controls.Add(this.evaluationLabel);
+      this.parametersTabPage.Controls.Add(this.mutationLabel);
+      this.parametersTabPage.Controls.Add(this.selectionLabel);
+      this.parametersTabPage.Controls.Add(this.crossoverLabel);
+      this.parametersTabPage.Controls.Add(this.solutionGenerationLabel);
+      this.parametersTabPage.Controls.Add(this.problemInitializationLabel);
+      this.parametersTabPage.Controls.Add(this.elitesLabel);
+      this.parametersTabPage.Controls.Add(this.mutationRateTextBox);
+      this.parametersTabPage.Controls.Add(this.mutationRateLabel);
+      this.parametersTabPage.Controls.Add(this.maximumGenerationsTextBox);
+      this.parametersTabPage.Controls.Add(this.maximumGenerationsLabel);
+      this.parametersTabPage.Controls.Add(this.randomSeedTextBox);
+      this.parametersTabPage.Controls.Add(this.populationSizeTextBox);
+      this.parametersTabPage.Controls.Add(this.setRandomSeedRandomlyLabel);
+      this.parametersTabPage.Controls.Add(this.randomSeedLabel);
+      this.parametersTabPage.Controls.Add(this.populationSizeLabel);
+      this.parametersTabPage.Location = new System.Drawing.Point(4, 22);
+      this.parametersTabPage.Name = "parametersTabPage";
+      this.parametersTabPage.Padding = new System.Windows.Forms.Padding(3);
+      this.parametersTabPage.Size = new System.Drawing.Size(518, 364);
+      this.parametersTabPage.TabIndex = 0;
+      this.parametersTabPage.Text = "Parameters";
+      this.parametersTabPage.UseVisualStyleBackColor = true;
+      // 
+      // setEvaluationButton
+      // 
+      this.setEvaluationButton.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.setEvaluationButton.Location = new System.Drawing.Point(469, 338);
+      this.setEvaluationButton.Name = "setEvaluationButton";
+      this.setEvaluationButton.Size = new System.Drawing.Size(43, 20);
+      this.setEvaluationButton.TabIndex = 35;
+      this.setEvaluationButton.Text = "Set...";
+      this.setEvaluationButton.UseVisualStyleBackColor = true;
+      this.setEvaluationButton.Click += new System.EventHandler(this.setEvaluationButton_Click);
+      // 
+      // setMutationButton
+      // 
+      this.setMutationButton.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.setMutationButton.Location = new System.Drawing.Point(469, 312);
+      this.setMutationButton.Name = "setMutationButton";
+      this.setMutationButton.Size = new System.Drawing.Size(43, 20);
+      this.setMutationButton.TabIndex = 31;
+      this.setMutationButton.Text = "Set...";
+      this.setMutationButton.UseVisualStyleBackColor = true;
+      this.setMutationButton.Click += new System.EventHandler(this.setMutationButton_Click);
+      // 
+      // setCrossoverButton
+      // 
+      this.setCrossoverButton.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.setCrossoverButton.Location = new System.Drawing.Point(469, 286);
+      this.setCrossoverButton.Name = "setCrossoverButton";
+      this.setCrossoverButton.Size = new System.Drawing.Size(43, 20);
+      this.setCrossoverButton.TabIndex = 27;
+      this.setCrossoverButton.Text = "Set...";
+      this.setCrossoverButton.UseVisualStyleBackColor = true;
+      this.setCrossoverButton.Click += new System.EventHandler(this.setCrossoverButton_Click);
+      // 
+      // setSelectionButton
+      // 
+      this.setSelectionButton.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.setSelectionButton.Location = new System.Drawing.Point(469, 260);
+      this.setSelectionButton.Name = "setSelectionButton";
+      this.setSelectionButton.Size = new System.Drawing.Size(43, 20);
+      this.setSelectionButton.TabIndex = 23;
+      this.setSelectionButton.Text = "Set...";
+      this.setSelectionButton.UseVisualStyleBackColor = true;
+      this.setSelectionButton.Click += new System.EventHandler(this.setSelectionButton_Click);
+      // 
+      // setSolutionGenerationButton
+      // 
+      this.setSolutionGenerationButton.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.setSolutionGenerationButton.Location = new System.Drawing.Point(469, 234);
+      this.setSolutionGenerationButton.Name = "setSolutionGenerationButton";
+      this.setSolutionGenerationButton.Size = new System.Drawing.Size(43, 20);
+      this.setSolutionGenerationButton.TabIndex = 19;
+      this.setSolutionGenerationButton.Text = "Set...";
+      this.setSolutionGenerationButton.UseVisualStyleBackColor = true;
+      this.setSolutionGenerationButton.Click += new System.EventHandler(this.setSolutionGenerationButton_Click);
+      // 
+      // setProblemInitializationButton
+      // 
+      this.setProblemInitializationButton.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.setProblemInitializationButton.Location = new System.Drawing.Point(469, 208);
+      this.setProblemInitializationButton.Name = "setProblemInitializationButton";
+      this.setProblemInitializationButton.Size = new System.Drawing.Size(43, 20);
+      this.setProblemInitializationButton.TabIndex = 15;
+      this.setProblemInitializationButton.Text = "Set...";
+      this.setProblemInitializationButton.UseVisualStyleBackColor = true;
+      this.setProblemInitializationButton.Click += new System.EventHandler(this.setProblemInitializationButton_Click);
+      // 
+      // evaluationTextBox
+      // 
+      this.evaluationTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.evaluationTextBox.Location = new System.Drawing.Point(218, 338);
+      this.evaluationTextBox.Name = "evaluationTextBox";
+      this.evaluationTextBox.ReadOnly = true;
+      this.evaluationTextBox.Size = new System.Drawing.Size(186, 20);
+      this.evaluationTextBox.TabIndex = 33;
+      // 
+      // mutationTextBox
+      // 
+      this.mutationTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.mutationTextBox.Location = new System.Drawing.Point(218, 312);
+      this.mutationTextBox.Name = "mutationTextBox";
+      this.mutationTextBox.ReadOnly = true;
+      this.mutationTextBox.Size = new System.Drawing.Size(186, 20);
+      this.mutationTextBox.TabIndex = 29;
+      // 
+      // crossoverTextBox
+      // 
+      this.crossoverTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.crossoverTextBox.Location = new System.Drawing.Point(218, 286);
+      this.crossoverTextBox.Name = "crossoverTextBox";
+      this.crossoverTextBox.ReadOnly = true;
+      this.crossoverTextBox.Size = new System.Drawing.Size(186, 20);
+      this.crossoverTextBox.TabIndex = 25;
+      // 
+      // selectionTextBox
+      // 
+      this.selectionTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.selectionTextBox.Location = new System.Drawing.Point(218, 260);
+      this.selectionTextBox.Name = "selectionTextBox";
+      this.selectionTextBox.ReadOnly = true;
+      this.selectionTextBox.Size = new System.Drawing.Size(186, 20);
+      this.selectionTextBox.TabIndex = 21;
+      // 
+      // solutionGenerationTextBox
+      // 
+      this.solutionGenerationTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.solutionGenerationTextBox.Location = new System.Drawing.Point(218, 234);
+      this.solutionGenerationTextBox.Name = "solutionGenerationTextBox";
+      this.solutionGenerationTextBox.ReadOnly = true;
+      this.solutionGenerationTextBox.Size = new System.Drawing.Size(186, 20);
+      this.solutionGenerationTextBox.TabIndex = 17;
+      // 
+      // problemInitializationTextBox
+      // 
+      this.problemInitializationTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.problemInitializationTextBox.Location = new System.Drawing.Point(218, 208);
+      this.problemInitializationTextBox.Name = "problemInitializationTextBox";
+      this.problemInitializationTextBox.ReadOnly = true;
+      this.problemInitializationTextBox.Size = new System.Drawing.Size(186, 20);
+      this.problemInitializationTextBox.TabIndex = 13;
+      // 
+      // setRandomSeedRandomlyCheckBox
+      // 
+      this.setRandomSeedRandomlyCheckBox.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.setRandomSeedRandomlyCheckBox.AutoSize = true;
+      this.setRandomSeedRandomlyCheckBox.Location = new System.Drawing.Point(218, 6);
+      this.setRandomSeedRandomlyCheckBox.Name = "setRandomSeedRandomlyCheckBox";
+      this.setRandomSeedRandomlyCheckBox.Size = new System.Drawing.Size(15, 14);
+      this.setRandomSeedRandomlyCheckBox.TabIndex = 1;
+      this.setRandomSeedRandomlyCheckBox.UseVisualStyleBackColor = true;
+      // 
+      // elitesTextBox
+      // 
+      this.elitesTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.elitesTextBox.Location = new System.Drawing.Point(218, 156);
+      this.elitesTextBox.Name = "elitesTextBox";
+      this.elitesTextBox.Size = new System.Drawing.Size(186, 20);
+      this.elitesTextBox.TabIndex = 11;
+      // 
+      // evaluationLabel
+      // 
+      this.evaluationLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.evaluationLabel.AutoSize = true;
+      this.evaluationLabel.Location = new System.Drawing.Point(65, 341);
+      this.evaluationLabel.Name = "evaluationLabel";
+      this.evaluationLabel.Size = new System.Drawing.Size(60, 13);
+      this.evaluationLabel.TabIndex = 32;
+      this.evaluationLabel.Text = "&Evaluation:";
+      // 
+      // mutationLabel
+      // 
+      this.mutationLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.mutationLabel.AutoSize = true;
+      this.mutationLabel.Location = new System.Drawing.Point(65, 315);
+      this.mutationLabel.Name = "mutationLabel";
+      this.mutationLabel.Size = new System.Drawing.Size(51, 13);
+      this.mutationLabel.TabIndex = 28;
+      this.mutationLabel.Text = "&Mutation:";
+      // 
+      // selectionLabel
+      // 
+      this.selectionLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.selectionLabel.AutoSize = true;
+      this.selectionLabel.Location = new System.Drawing.Point(65, 263);
+      this.selectionLabel.Name = "selectionLabel";
+      this.selectionLabel.Size = new System.Drawing.Size(54, 13);
+      this.selectionLabel.TabIndex = 20;
+      this.selectionLabel.Text = "&Selection:";
+      // 
+      // crossoverLabel
+      // 
+      this.crossoverLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.crossoverLabel.AutoSize = true;
+      this.crossoverLabel.Location = new System.Drawing.Point(65, 289);
+      this.crossoverLabel.Name = "crossoverLabel";
+      this.crossoverLabel.Size = new System.Drawing.Size(57, 13);
+      this.crossoverLabel.TabIndex = 24;
+      this.crossoverLabel.Text = "&Crossover:";
+      // 
+      // solutionGenerationLabel
+      // 
+      this.solutionGenerationLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.solutionGenerationLabel.AutoSize = true;
+      this.solutionGenerationLabel.Location = new System.Drawing.Point(65, 237);
+      this.solutionGenerationLabel.Name = "solutionGenerationLabel";
+      this.solutionGenerationLabel.Size = new System.Drawing.Size(103, 13);
+      this.solutionGenerationLabel.TabIndex = 16;
+      this.solutionGenerationLabel.Text = "&Solution Generation:";
+      // 
+      // problemInitializationLabel
+      // 
+      this.problemInitializationLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.problemInitializationLabel.AutoSize = true;
+      this.problemInitializationLabel.Location = new System.Drawing.Point(65, 211);
+      this.problemInitializationLabel.Name = "problemInitializationLabel";
+      this.problemInitializationLabel.Size = new System.Drawing.Size(105, 13);
+      this.problemInitializationLabel.TabIndex = 12;
+      this.problemInitializationLabel.Text = "&Problem Initialization:";
+      // 
+      // elitesLabel
+      // 
+      this.elitesLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.elitesLabel.AutoSize = true;
+      this.elitesLabel.Location = new System.Drawing.Point(65, 159);
+      this.elitesLabel.Name = "elitesLabel";
+      this.elitesLabel.Size = new System.Drawing.Size(35, 13);
+      this.elitesLabel.TabIndex = 10;
+      this.elitesLabel.Text = "&Elites:";
+      // 
+      // mutationRateTextBox
+      // 
+      this.mutationRateTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.mutationRateTextBox.Location = new System.Drawing.Point(218, 130);
+      this.mutationRateTextBox.Name = "mutationRateTextBox";
+      this.mutationRateTextBox.Size = new System.Drawing.Size(186, 20);
+      this.mutationRateTextBox.TabIndex = 9;
+      // 
+      // mutationRateLabel
+      // 
+      this.mutationRateLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.mutationRateLabel.AutoSize = true;
+      this.mutationRateLabel.Location = new System.Drawing.Point(65, 133);
+      this.mutationRateLabel.Name = "mutationRateLabel";
+      this.mutationRateLabel.Size = new System.Drawing.Size(77, 13);
+      this.mutationRateLabel.TabIndex = 8;
+      this.mutationRateLabel.Text = "&Mutation Rate:";
+      // 
+      // maximumGenerationsTextBox
+      // 
+      this.maximumGenerationsTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.maximumGenerationsTextBox.Location = new System.Drawing.Point(218, 104);
+      this.maximumGenerationsTextBox.Name = "maximumGenerationsTextBox";
+      this.maximumGenerationsTextBox.Size = new System.Drawing.Size(186, 20);
+      this.maximumGenerationsTextBox.TabIndex = 7;
+      // 
+      // maximumGenerationsLabel
+      // 
+      this.maximumGenerationsLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.maximumGenerationsLabel.AutoSize = true;
+      this.maximumGenerationsLabel.Location = new System.Drawing.Point(65, 107);
+      this.maximumGenerationsLabel.Name = "maximumGenerationsLabel";
+      this.maximumGenerationsLabel.Size = new System.Drawing.Size(114, 13);
+      this.maximumGenerationsLabel.TabIndex = 6;
+      this.maximumGenerationsLabel.Text = "Maximum &Generations:";
+      // 
+      // randomSeedTextBox
+      // 
+      this.randomSeedTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.randomSeedTextBox.Location = new System.Drawing.Point(218, 26);
+      this.randomSeedTextBox.Name = "randomSeedTextBox";
+      this.randomSeedTextBox.Size = new System.Drawing.Size(186, 20);
+      this.randomSeedTextBox.TabIndex = 3;
+      // 
+      // populationSizeTextBox
+      // 
+      this.populationSizeTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.populationSizeTextBox.Location = new System.Drawing.Point(218, 78);
+      this.populationSizeTextBox.Name = "populationSizeTextBox";
+      this.populationSizeTextBox.Size = new System.Drawing.Size(186, 20);
+      this.populationSizeTextBox.TabIndex = 5;
+      // 
+      // setRandomSeedRandomlyLabel
+      // 
+      this.setRandomSeedRandomlyLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.setRandomSeedRandomlyLabel.AutoSize = true;
+      this.setRandomSeedRandomlyLabel.Location = new System.Drawing.Point(65, 6);
+      this.setRandomSeedRandomlyLabel.Name = "setRandomSeedRandomlyLabel";
+      this.setRandomSeedRandomlyLabel.Size = new System.Drawing.Size(147, 13);
+      this.setRandomSeedRandomlyLabel.TabIndex = 0;
+      this.setRandomSeedRandomlyLabel.Text = "Set &Random Seed Randomly:";
+      // 
+      // randomSeedLabel
+      // 
+      this.randomSeedLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.randomSeedLabel.AutoSize = true;
+      this.randomSeedLabel.Location = new System.Drawing.Point(65, 29);
+      this.randomSeedLabel.Name = "randomSeedLabel";
+      this.randomSeedLabel.Size = new System.Drawing.Size(78, 13);
+      this.randomSeedLabel.TabIndex = 2;
+      this.randomSeedLabel.Text = "&Random Seed:";
+      // 
+      // populationSizeLabel
+      // 
+      this.populationSizeLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.populationSizeLabel.AutoSize = true;
+      this.populationSizeLabel.Location = new System.Drawing.Point(65, 81);
+      this.populationSizeLabel.Name = "populationSizeLabel";
+      this.populationSizeLabel.Size = new System.Drawing.Size(83, 13);
+      this.populationSizeLabel.TabIndex = 4;
+      this.populationSizeLabel.Text = "&Population Size:";
+      // 
+      // scopesTabPage
+      // 
+      this.scopesTabPage.Controls.Add(this.scopeView);
+      this.scopesTabPage.Location = new System.Drawing.Point(4, 22);
+      this.scopesTabPage.Name = "scopesTabPage";
+      this.scopesTabPage.Padding = new System.Windows.Forms.Padding(3);
+      this.scopesTabPage.Size = new System.Drawing.Size(518, 364);
+      this.scopesTabPage.TabIndex = 2;
+      this.scopesTabPage.Text = "Scopes";
+      this.scopesTabPage.UseVisualStyleBackColor = true;
+      // 
+      // scopeView
+      // 
+      this.scopeView.Caption = "Scope";
+      this.scopeView.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.scopeView.Location = new System.Drawing.Point(3, 3);
+      this.scopeView.Name = "scopeView";
+      this.scopeView.Scope = null;
+      this.scopeView.Size = new System.Drawing.Size(512, 358);
+      this.scopeView.TabIndex = 0;
+      // 
+      // abortButton
+      // 
+      this.abortButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.abortButton.Enabled = false;
+      this.abortButton.Location = new System.Drawing.Point(81, 396);
+      this.abortButton.Name = "abortButton";
+      this.abortButton.Size = new System.Drawing.Size(75, 23);
+      this.abortButton.TabIndex = 2;
+      this.abortButton.Text = "&Abort";
+      this.abortButton.UseVisualStyleBackColor = true;
+      this.abortButton.Click += new System.EventHandler(this.abortButton_Click);
+      // 
+      // resetButton
+      // 
+      this.resetButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.resetButton.Location = new System.Drawing.Point(162, 396);
+      this.resetButton.Name = "resetButton";
+      this.resetButton.Size = new System.Drawing.Size(75, 23);
+      this.resetButton.TabIndex = 3;
+      this.resetButton.Text = "&Reset";
+      this.resetButton.UseVisualStyleBackColor = true;
+      this.resetButton.Click += new System.EventHandler(this.resetButton_Click);
+      // 
+      // cloneEngineButton
+      // 
+      this.cloneEngineButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+      this.cloneEngineButton.Location = new System.Drawing.Point(420, 396);
+      this.cloneEngineButton.Name = "cloneEngineButton";
+      this.cloneEngineButton.Size = new System.Drawing.Size(106, 23);
+      this.cloneEngineButton.TabIndex = 4;
+      this.cloneEngineButton.Text = "&Clone Engine...";
+      this.cloneEngineButton.UseVisualStyleBackColor = true;
+      this.cloneEngineButton.Click += new System.EventHandler(this.cloneEngineButton_Click);
+      // 
+      // viewProblemInitializationButton
+      // 
+      this.viewProblemInitializationButton.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.viewProblemInitializationButton.Location = new System.Drawing.Point(410, 208);
+      this.viewProblemInitializationButton.Name = "viewProblemInitializationButton";
+      this.viewProblemInitializationButton.Size = new System.Drawing.Size(53, 20);
+      this.viewProblemInitializationButton.TabIndex = 14;
+      this.viewProblemInitializationButton.Text = "View...";
+      this.viewProblemInitializationButton.UseVisualStyleBackColor = true;
+      this.viewProblemInitializationButton.Click += new System.EventHandler(this.viewProblemInitializationButton_Click);
+      // 
+      // viewSolutionGenerationButton
+      // 
+      this.viewSolutionGenerationButton.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.viewSolutionGenerationButton.Location = new System.Drawing.Point(410, 234);
+      this.viewSolutionGenerationButton.Name = "viewSolutionGenerationButton";
+      this.viewSolutionGenerationButton.Size = new System.Drawing.Size(53, 20);
+      this.viewSolutionGenerationButton.TabIndex = 18;
+      this.viewSolutionGenerationButton.Text = "View...";
+      this.viewSolutionGenerationButton.UseVisualStyleBackColor = true;
+      this.viewSolutionGenerationButton.Click += new System.EventHandler(this.viewSolutionGenerationButton_Click);
+      // 
+      // viewSelectionButton
+      // 
+      this.viewSelectionButton.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.viewSelectionButton.Location = new System.Drawing.Point(410, 260);
+      this.viewSelectionButton.Name = "viewSelectionButton";
+      this.viewSelectionButton.Size = new System.Drawing.Size(53, 20);
+      this.viewSelectionButton.TabIndex = 22;
+      this.viewSelectionButton.Text = "View...";
+      this.viewSelectionButton.UseVisualStyleBackColor = true;
+      this.viewSelectionButton.Click += new System.EventHandler(this.viewSelectionButton_Click);
+      // 
+      // viewCrossoverButton
+      // 
+      this.viewCrossoverButton.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.viewCrossoverButton.Location = new System.Drawing.Point(410, 286);
+      this.viewCrossoverButton.Name = "viewCrossoverButton";
+      this.viewCrossoverButton.Size = new System.Drawing.Size(53, 20);
+      this.viewCrossoverButton.TabIndex = 26;
+      this.viewCrossoverButton.Text = "View...";
+      this.viewCrossoverButton.UseVisualStyleBackColor = true;
+      this.viewCrossoverButton.Click += new System.EventHandler(this.viewCrossoverButton_Click);
+      // 
+      // viewMutationButton
+      // 
+      this.viewMutationButton.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.viewMutationButton.Location = new System.Drawing.Point(410, 312);
+      this.viewMutationButton.Name = "viewMutationButton";
+      this.viewMutationButton.Size = new System.Drawing.Size(53, 20);
+      this.viewMutationButton.TabIndex = 30;
+      this.viewMutationButton.Text = "View...";
+      this.viewMutationButton.UseVisualStyleBackColor = true;
+      this.viewMutationButton.Click += new System.EventHandler(this.viewMutationButton_Click);
+      // 
+      // viewEvaluationButton
+      // 
+      this.viewEvaluationButton.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.viewEvaluationButton.Location = new System.Drawing.Point(410, 338);
+      this.viewEvaluationButton.Name = "viewEvaluationButton";
+      this.viewEvaluationButton.Size = new System.Drawing.Size(53, 20);
+      this.viewEvaluationButton.TabIndex = 34;
+      this.viewEvaluationButton.Text = "View...";
+      this.viewEvaluationButton.UseVisualStyleBackColor = true;
+      this.viewEvaluationButton.Click += new System.EventHandler(this.viewEvaluationButton_Click);
+      // 
+      // SGAEditor
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.tabControl);
+      this.Controls.Add(this.cloneEngineButton);
+      this.Controls.Add(this.resetButton);
+      this.Controls.Add(this.abortButton);
+      this.Controls.Add(this.executeButton);
+      this.Name = "SGAEditor";
+      this.Size = new System.Drawing.Size(526, 419);
+      this.tabControl.ResumeLayout(false);
+      this.parametersTabPage.ResumeLayout(false);
+      this.parametersTabPage.PerformLayout();
+      this.scopesTabPage.ResumeLayout(false);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.Button executeButton;
+    private System.Windows.Forms.TabControl tabControl;
+    private System.Windows.Forms.TabPage parametersTabPage;
+    private System.Windows.Forms.Button abortButton;
+    private System.Windows.Forms.Button resetButton;
+    private System.Windows.Forms.TextBox mutationRateTextBox;
+    private System.Windows.Forms.Label mutationRateLabel;
+    private System.Windows.Forms.TextBox populationSizeTextBox;
+    private System.Windows.Forms.Label populationSizeLabel;
+    private System.Windows.Forms.TabPage scopesTabPage;
+    private System.Windows.Forms.TextBox maximumGenerationsTextBox;
+    private System.Windows.Forms.Label maximumGenerationsLabel;
+    private System.Windows.Forms.TextBox elitesTextBox;
+    private System.Windows.Forms.Label elitesLabel;
+    private System.Windows.Forms.TextBox randomSeedTextBox;
+    private System.Windows.Forms.Label setRandomSeedRandomlyLabel;
+    private System.Windows.Forms.Label randomSeedLabel;
+    private System.Windows.Forms.CheckBox setRandomSeedRandomlyCheckBox;
+    private System.Windows.Forms.Label problemInitializationLabel;
+    private System.Windows.Forms.Label evaluationLabel;
+    private System.Windows.Forms.Label mutationLabel;
+    private System.Windows.Forms.Label crossoverLabel;
+    private System.Windows.Forms.Label solutionGenerationLabel;
+    private System.Windows.Forms.Button cloneEngineButton;
+    private System.Windows.Forms.TextBox mutationTextBox;
+    private System.Windows.Forms.TextBox crossoverTextBox;
+    private System.Windows.Forms.TextBox selectionTextBox;
+    private System.Windows.Forms.TextBox solutionGenerationTextBox;
+    private System.Windows.Forms.TextBox problemInitializationTextBox;
+    private System.Windows.Forms.Label selectionLabel;
+    private System.Windows.Forms.TextBox evaluationTextBox;
+    private System.Windows.Forms.Button setProblemInitializationButton;
+    private System.Windows.Forms.Button setEvaluationButton;
+    private System.Windows.Forms.Button setMutationButton;
+    private System.Windows.Forms.Button setCrossoverButton;
+    private System.Windows.Forms.Button setSelectionButton;
+    private System.Windows.Forms.Button setSolutionGenerationButton;
+    private HeuristicLab.Core.Views.ScopeView scopeView;
+    private System.Windows.Forms.Button viewEvaluationButton;
+    private System.Windows.Forms.Button viewMutationButton;
+    private System.Windows.Forms.Button viewCrossoverButton;
+    private System.Windows.Forms.Button viewSelectionButton;
+    private System.Windows.Forms.Button viewSolutionGenerationButton;
+    private System.Windows.Forms.Button viewProblemInitializationButton;
+  }
+}
Index: trunk/sources/HeuristicLab.SGA/3.3/SGAView.cs
===================================================================
--- trunk/sources/HeuristicLab.SGA/3.3/SGAView.cs	(revision 2546)
+++ trunk/sources/HeuristicLab.SGA/3.3/SGAView.cs	(revision 2546)
@@ -0,0 +1,218 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.PluginInfrastructure;
+using HeuristicLab.Core;
+using HeuristicLab.Common;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+
+namespace HeuristicLab.SGA {
+  /// <summary>
+  /// Visual representation of the <see cref="SGA"/> class.
+  /// </summary>
+  [Content(typeof(SGA), true)]
+  public partial class SGAView : ItemViewBase {
+    private ChooseOperatorDialog chooseOperatorDialog;
+
+    /// <summary>
+    /// Gets or sets the <see cref="SGA"/> item to represent visually.
+    /// </summary>
+    /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="EditorBase"/>.
+    /// No own data storage present!</remarks>
+    public SGA SGA {
+      get { return (SGA)Item; }
+      set { base.Item = value; }
+    }
+
+    /// <summary>
+    /// Initializes a new instance of <see cref="SGAEditor"/>.
+    /// </summary>
+    public SGAView() {
+      InitializeComponent();
+    }
+    /// <summary>
+    /// Initializes a new instance of <see cref="SGAEditor"/> with the given <paramref name="sga"/>.
+    /// </summary>
+    /// <param name="sga">The simple genetic algorithm to represent visually.</param>
+    public SGAView(SGA sga)
+      : this() {
+      SGA = sga;
+    }
+
+    /// <summary>
+    /// Removes the eventhandlers from the underlying <see cref="IEngine"/> of the <see cref="SGA"/>.
+    /// </summary>
+    /// <remarks>Calls <see cref="ViewBase.RemoveItemEvents"/> of base class <see cref="EditorBase"/>.</remarks>
+    protected override void RemoveItemEvents() {
+      SGA.Engine.ExceptionOccurred -= new EventHandler<EventArgs<Exception>>(Engine_ExceptionOccurred);
+      SGA.Engine.Finished -= new EventHandler(Engine_Finished);
+      scopeView.Scope = null;
+      base.RemoveItemEvents();
+    }
+    /// <summary>
+    /// Adds eventhandlers to the underlying <see cref="IEngine"/> of the <see cref="SGA"/>.
+    /// </summary>
+    /// <remarks>Calls <see cref="ViewBase.AddItemEvents"/> of base class <see cref="EditorBase"/>.</remarks>
+    protected override void AddItemEvents() {
+      base.AddItemEvents();
+      SGA.Engine.ExceptionOccurred += new EventHandler<EventArgs<Exception>>(Engine_ExceptionOccurred);
+      SGA.Engine.Finished += new EventHandler(Engine_Finished);
+      SetDataBinding();
+      scopeView.Scope = SGA.Engine.GlobalScope;
+    }
+
+    /// <summary>
+    /// Updates all controls with the latest data of the model.
+    /// </summary>
+    /// <remarks>Calls <see cref="EditorBase.UpdateControls"/> of base class <see cref="EditorBase"/>.</remarks>
+    protected override void UpdateControls() {
+      base.UpdateControls();
+      if (SGA == null) {
+        tabControl.Enabled = false;
+      } else {
+        tabControl.Enabled = true;
+        problemInitializationTextBox.Text = SGA.ProblemInjector.GetType().Name;
+        solutionGenerationTextBox.Text = SGA.SolutionGenerator.GetType().Name;
+        selectionTextBox.Text = SGA.Selector.GetType().Name;
+        crossoverTextBox.Text = SGA.Crossover.GetType().Name;
+        mutationTextBox.Text = SGA.Mutator.GetType().Name;
+        evaluationTextBox.Text = SGA.Evaluator.GetType().Name;
+      }
+    }
+
+    private void SetDataBinding() {
+      setRandomSeedRandomlyCheckBox.DataBindings.Add("Checked", SGA, "SetSeedRandomly");
+      randomSeedTextBox.DataBindings.Add("Text", SGA, "Seed");
+      populationSizeTextBox.DataBindings.Add("Text", SGA, "PopulationSize");
+      maximumGenerationsTextBox.DataBindings.Add("Text", SGA, "MaximumGenerations");
+      mutationRateTextBox.DataBindings.Add("Text", SGA, "MutationRate");
+      elitesTextBox.DataBindings.Add("Text", SGA, "Elites");
+    }
+
+    #region Button Events
+    private void viewProblemInitializationButton_Click(object sender, EventArgs e) {
+      IView view = MainFormManager.CreateDefaultView(SGA.ProblemInjector);
+      if (view != null) MainFormManager.MainForm.ShowView(view);
+    }
+    private void viewSolutionGenerationButton_Click(object sender, EventArgs e) {
+      IView view = MainFormManager.CreateDefaultView(SGA.SolutionGenerator);
+      if (view != null) MainFormManager.MainForm.ShowView(view);
+    }
+    private void viewSelectionButton_Click(object sender, EventArgs e) {
+      IView view = MainFormManager.CreateDefaultView(SGA.Selector);
+      if (view != null) MainFormManager.MainForm.ShowView(view);
+    }
+    private void viewCrossoverButton_Click(object sender, EventArgs e) {
+      IView view = MainFormManager.CreateDefaultView(SGA.Crossover);
+      if (view != null) MainFormManager.MainForm.ShowView(view);
+    }
+    private void viewMutationButton_Click(object sender, EventArgs e) {
+      IView view = MainFormManager.CreateDefaultView(SGA.Mutator);
+      if (view != null) MainFormManager.MainForm.ShowView(view);
+    }
+    private void viewEvaluationButton_Click(object sender, EventArgs e) {
+      IView view = MainFormManager.CreateDefaultView(SGA.Evaluator);
+      if (view != null) MainFormManager.MainForm.ShowView(view);
+    }
+    private void setProblemInitializationButton_Click(object sender, EventArgs e) {
+      if (chooseOperatorDialog == null) chooseOperatorDialog = new ChooseOperatorDialog();
+      if (chooseOperatorDialog.ShowDialog(this) == DialogResult.OK) {
+        SGA.ProblemInjector = chooseOperatorDialog.Operator;
+        problemInitializationTextBox.Text = SGA.ProblemInjector.GetType().Name;
+      }
+    }
+    private void setSolutionGenerationButton_Click(object sender, EventArgs e) {
+      if (chooseOperatorDialog == null) chooseOperatorDialog = new ChooseOperatorDialog();
+      if (chooseOperatorDialog.ShowDialog(this) == DialogResult.OK) {
+        SGA.SolutionGenerator= chooseOperatorDialog.Operator;
+        solutionGenerationTextBox.Text = SGA.SolutionGenerator.GetType().Name;
+      }
+    }
+    private void setSelectionButton_Click(object sender, EventArgs e) {
+      if (chooseOperatorDialog == null) chooseOperatorDialog = new ChooseOperatorDialog();
+      if (chooseOperatorDialog.ShowDialog(this) == DialogResult.OK) {
+        SGA.Selector = chooseOperatorDialog.Operator;
+        selectionTextBox.Text = SGA.Selector.GetType().Name;
+      }
+    }
+    private void setCrossoverButton_Click(object sender, EventArgs e) {
+      if (chooseOperatorDialog == null) chooseOperatorDialog = new ChooseOperatorDialog();
+      if (chooseOperatorDialog.ShowDialog(this) == DialogResult.OK) {
+        SGA.Crossover = chooseOperatorDialog.Operator;
+        crossoverTextBox.Text = SGA.Crossover.GetType().Name;
+      }
+    }
+    private void setMutationButton_Click(object sender, EventArgs e) {
+      if (chooseOperatorDialog == null) chooseOperatorDialog = new ChooseOperatorDialog();
+      if (chooseOperatorDialog.ShowDialog(this) == DialogResult.OK) {
+        SGA.Mutator = chooseOperatorDialog.Operator;
+        mutationTextBox.Text = SGA.Mutator.GetType().Name;
+      }
+    }
+    private void setEvaluationButton_Click(object sender, EventArgs e) {
+      if (chooseOperatorDialog == null) chooseOperatorDialog = new ChooseOperatorDialog();
+      if (chooseOperatorDialog.ShowDialog(this) == DialogResult.OK) {
+        SGA.Evaluator = chooseOperatorDialog.Operator;
+        evaluationTextBox.Text = SGA.Evaluator.GetType().Name;
+      }
+    }
+    private void executeButton_Click(object sender, EventArgs e) {
+      executeButton.Enabled = false;
+      abortButton.Enabled = true;
+      SGA.Engine.Execute();
+    }
+    private void abortButton_Click(object sender, EventArgs e) {
+      SGA.Engine.Abort();
+    }
+    private void resetButton_Click(object sender, EventArgs e) {
+      SGA.Engine.Reset();
+    }
+    private void cloneEngineButton_Click(object sender, EventArgs e) {
+      IEngine clone = (IEngine)SGA.Engine.Clone();
+      IView view = MainFormManager.CreateDefaultView(clone);
+      if (view != null) MainFormManager.MainForm.ShowView(view);
+    }
+    #endregion
+
+    #region Engine Events
+    private delegate void OnExceptionEventDelegate(object sender, EventArgs<Exception> e);
+    private void Engine_ExceptionOccurred(object sender, EventArgs<Exception> e) {
+      if (InvokeRequired)
+        Invoke(new OnExceptionEventDelegate(Engine_ExceptionOccurred), sender, e);
+      else
+        HeuristicLab.Core.Views.Auxiliary.ShowErrorMessageBox(e.Value);
+    }
+    private void Engine_Finished(object sender, EventArgs e) {
+      scopeView.Refresh();
+      executeButton.Enabled = true;
+      abortButton.Enabled = false;
+    }
+    #endregion
+  }
+}
Index: trunk/sources/HeuristicLab.SGA/3.3/SGAView.resx
===================================================================
--- trunk/sources/HeuristicLab.SGA/3.3/SGAView.resx	(revision 2546)
+++ trunk/sources/HeuristicLab.SGA/3.3/SGAView.resx	(revision 2546)
@@ -0,0 +1,120 @@
+<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
