Index: trunk/sources/HeuristicLab.Optimizer/3.3/CreateExperimentDialog.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/CreateExperimentDialog.Designer.cs	(revision 4650)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/CreateExperimentDialog.Designer.cs	(revision 4650)
@@ -0,0 +1,177 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Optimizer {
+  partial class CreateExperimentDialog {
+    /// <summary>
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary>
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Windows Form Designer generated code
+
+    /// <summary>
+    /// Required method for Designer support - do not modify
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.components = new System.ComponentModel.Container();
+      this.okButton = new System.Windows.Forms.Button();
+      this.cancelButton = new System.Windows.Forms.Button();
+      this.createBatchRunCheckBox = new System.Windows.Forms.CheckBox();
+      this.createBatchRunLabel = new System.Windows.Forms.Label();
+      this.repetitionsLabel = new System.Windows.Forms.Label();
+      this.repetitionsNumericUpDown = new System.Windows.Forms.NumericUpDown();
+      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
+      ((System.ComponentModel.ISupportInitialize)(this.repetitionsNumericUpDown)).BeginInit();
+      this.SuspendLayout();
+      // 
+      // okButton
+      // 
+      this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+      this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK;
+      this.okButton.Enabled = false;
+      this.okButton.Location = new System.Drawing.Point(113, 58);
+      this.okButton.Name = "okButton";
+      this.okButton.Size = new System.Drawing.Size(75, 23);
+      this.okButton.TabIndex = 4;
+      this.okButton.Text = "&OK";
+      this.okButton.UseVisualStyleBackColor = true;
+      this.okButton.Click += new System.EventHandler(this.okButton_Click);
+      // 
+      // cancelButton
+      // 
+      this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+      this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+      this.cancelButton.Location = new System.Drawing.Point(194, 58);
+      this.cancelButton.Name = "cancelButton";
+      this.cancelButton.Size = new System.Drawing.Size(75, 23);
+      this.cancelButton.TabIndex = 5;
+      this.cancelButton.Text = "&Cancel";
+      this.cancelButton.UseVisualStyleBackColor = true;
+      // 
+      // createBatchRunCheckBox
+      // 
+      this.createBatchRunCheckBox.AutoSize = true;
+      this.createBatchRunCheckBox.Checked = true;
+      this.createBatchRunCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
+      this.createBatchRunCheckBox.Location = new System.Drawing.Point(113, 8);
+      this.createBatchRunCheckBox.Name = "createBatchRunCheckBox";
+      this.createBatchRunCheckBox.Size = new System.Drawing.Size(15, 14);
+      this.createBatchRunCheckBox.TabIndex = 1;
+      this.toolTip.SetToolTip(this.createBatchRunCheckBox, "Check to create a batch run for executing an algorithm multiple times.");
+      this.createBatchRunCheckBox.UseVisualStyleBackColor = true;
+      this.createBatchRunCheckBox.CheckedChanged += new System.EventHandler(this.createBatchRunCheckBox_CheckedChanged);
+      // 
+      // createBatchRunLabel
+      // 
+      this.createBatchRunLabel.AutoSize = true;
+      this.createBatchRunLabel.Location = new System.Drawing.Point(12, 9);
+      this.createBatchRunLabel.Name = "createBatchRunLabel";
+      this.createBatchRunLabel.Size = new System.Drawing.Size(95, 13);
+      this.createBatchRunLabel.TabIndex = 0;
+      this.createBatchRunLabel.Text = "&Create Batch Run:";
+      // 
+      // repetitionsLabel
+      // 
+      this.repetitionsLabel.AutoSize = true;
+      this.repetitionsLabel.Location = new System.Drawing.Point(12, 30);
+      this.repetitionsLabel.Name = "repetitionsLabel";
+      this.repetitionsLabel.Size = new System.Drawing.Size(63, 13);
+      this.repetitionsLabel.TabIndex = 2;
+      this.repetitionsLabel.Text = "&Repetitions:";
+      // 
+      // repetitionsNumericUpDown
+      // 
+      this.repetitionsNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.repetitionsNumericUpDown.Location = new System.Drawing.Point(113, 28);
+      this.repetitionsNumericUpDown.Maximum = new decimal(new int[] {
+            1000000,
+            0,
+            0,
+            0});
+      this.repetitionsNumericUpDown.Minimum = new decimal(new int[] {
+            1,
+            0,
+            0,
+            0});
+      this.repetitionsNumericUpDown.Name = "repetitionsNumericUpDown";
+      this.repetitionsNumericUpDown.Size = new System.Drawing.Size(156, 20);
+      this.repetitionsNumericUpDown.TabIndex = 3;
+      this.repetitionsNumericUpDown.ThousandsSeparator = true;
+      this.toolTip.SetToolTip(this.repetitionsNumericUpDown, "Number of repetitions executed by the batch run.");
+      this.repetitionsNumericUpDown.Value = new decimal(new int[] {
+            10,
+            0,
+            0,
+            0});
+      this.repetitionsNumericUpDown.Validated += new System.EventHandler(this.repetitionsNumericUpDown_Validated);
+      // 
+      // CreateExperimentDialog
+      // 
+      this.AcceptButton = this.okButton;
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.CancelButton = this.cancelButton;
+      this.ClientSize = new System.Drawing.Size(281, 93);
+      this.Controls.Add(this.repetitionsNumericUpDown);
+      this.Controls.Add(this.repetitionsLabel);
+      this.Controls.Add(this.createBatchRunLabel);
+      this.Controls.Add(this.createBatchRunCheckBox);
+      this.Controls.Add(this.cancelButton);
+      this.Controls.Add(this.okButton);
+      this.MaximizeBox = false;
+      this.MinimizeBox = false;
+      this.Name = "CreateExperimentDialog";
+      this.ShowIcon = false;
+      this.ShowInTaskbar = false;
+      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+      this.Text = "Create Experiment";
+      ((System.ComponentModel.ISupportInitialize)(this.repetitionsNumericUpDown)).EndInit();
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.Button okButton;
+    private System.Windows.Forms.Button cancelButton;
+    private System.Windows.Forms.CheckBox createBatchRunCheckBox;
+    private System.Windows.Forms.Label createBatchRunLabel;
+    private System.Windows.Forms.Label repetitionsLabel;
+    private System.Windows.Forms.NumericUpDown repetitionsNumericUpDown;
+    private System.Windows.Forms.ToolTip toolTip;
+
+  }
+}
Index: trunk/sources/HeuristicLab.Optimizer/3.3/CreateExperimentDialog.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/CreateExperimentDialog.cs	(revision 4650)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/CreateExperimentDialog.cs	(revision 4650)
@@ -0,0 +1,78 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.Optimization;
+
+namespace HeuristicLab.Optimizer {
+  public partial class CreateExperimentDialog : Form {
+    private IAlgorithm algorithm;
+    public IAlgorithm Algorithm {
+      get { return algorithm; }
+      set {
+        algorithm = value;
+        experiment = null;
+        okButton.Enabled = algorithm != null;
+      }
+    }
+    
+    private Experiment experiment;
+    public Experiment Experiment {
+      get { return experiment; }
+    }
+
+    public CreateExperimentDialog() {
+      experiment = null;
+      algorithm = null;
+      InitializeComponent();
+    }
+    public CreateExperimentDialog(IAlgorithm algorithm) : this() {
+      Algorithm = algorithm;
+    }
+
+    private void createBatchRunCheckBox_CheckedChanged(object sender, EventArgs e) {
+      repetitionsNumericUpDown.Enabled = createBatchRunCheckBox.Checked;
+    }
+    private void repetitionsNumericUpDown_Validated(object sender, EventArgs e) {
+      if (repetitionsNumericUpDown.Text == string.Empty)
+        repetitionsNumericUpDown.Text = repetitionsNumericUpDown.Value.ToString();
+    }
+    private void okButton_Click(object sender, EventArgs e) {
+      experiment = new Experiment(Algorithm.Name);
+      if (createBatchRunCheckBox.Checked) {
+        BatchRun batchRun = new BatchRun(Algorithm.Name);
+        batchRun.Repetitions = (int)repetitionsNumericUpDown.Value;
+        batchRun.Algorithm = (IAlgorithm)Algorithm.Clone();
+        Experiment.Optimizers.Add(batchRun);
+      } else {
+        Experiment.Optimizers.Add((IAlgorithm)Algorithm.Clone());
+      }
+      Experiment.Prepare(true);
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.Optimizer/3.3/HeuristicLab.Optimizer-3.3.csproj
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/HeuristicLab.Optimizer-3.3.csproj	(revision 4641)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/HeuristicLab.Optimizer-3.3.csproj	(revision 4650)
@@ -112,4 +112,10 @@
     <EmbeddedResource Include="Documents\GA_VRP.hl" />
     <None Include="HeuristicLabOptimizerPlugin.cs.frame" />
+    <Compile Include="CreateExperimentDialog.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="CreateExperimentDialog.Designer.cs">
+      <DependentUpon>CreateExperimentDialog.cs</DependentUpon>
+    </Compile>
     <Compile Include="FileManager.cs" />
     <Compile Include="ChartControlsWarning.cs">
@@ -180,4 +186,8 @@
       <Name>HeuristicLab.Clients.Common-3.3</Name>
     </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
+      <Project>{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}</Project>
+      <Name>HeuristicLab.Collections-3.3</Name>
+    </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
       <Project>{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}</Project>
@@ -203,8 +213,4 @@
       <Project>{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}</Project>
       <Name>HeuristicLab.MainForm-3.3</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Optimization.Views\3.3\HeuristicLab.Optimization.Views-3.3.csproj">
-      <Project>{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}</Project>
-      <Name>HeuristicLab.Optimization.Views-3.3</Name>
     </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">
Index: trunk/sources/HeuristicLab.Optimizer/3.3/HeuristicLabOptimizerPlugin.cs.frame
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/HeuristicLabOptimizerPlugin.cs.frame	(revision 4641)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/HeuristicLabOptimizerPlugin.cs.frame	(revision 4650)
@@ -26,6 +26,6 @@
   [Plugin("HeuristicLab.Optimizer", "3.3.1.$WCREV$")]
   [PluginFile("HeuristicLab.Optimizer-3.3.dll", PluginFileType.Assembly)]
-  [PluginDependency("HeuristicLab.Persistence", "3.3")]
   [PluginDependency("HeuristicLab.Clients.Common", "3.3")]
+  [PluginDependency("HeuristicLab.Collections", "3.3")]
   [PluginDependency("HeuristicLab.Common", "3.3")]
   [PluginDependency("HeuristicLab.Common.Resources", "3.3")]
@@ -35,5 +35,5 @@
   [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
   [PluginDependency("HeuristicLab.Optimization", "3.3")]
-  [PluginDependency("HeuristicLab.Optimization.Views", "3.3")]
+  [PluginDependency("HeuristicLab.Persistence", "3.3")]
   public class HeuristicLabOptimizerPlugin : PluginBase {
   }
Index: trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/CreateExperimentMenuItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/CreateExperimentMenuItem.cs	(revision 4641)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/CreateExperimentMenuItem.cs	(revision 4650)
@@ -25,5 +25,4 @@
 using HeuristicLab.MainForm;
 using HeuristicLab.Optimization;
-using HeuristicLab.Optimization.Views;
 
 namespace HeuristicLab.Optimizer.MenuItems {
