Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/EngineAlgorithmView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/EngineAlgorithmView.Designer.cs	(revision 3758)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/EngineAlgorithmView.Designer.cs	(revision 3759)
@@ -46,5 +46,4 @@
     private void InitializeComponent() {
       this.engineLabel = new System.Windows.Forms.Label();
-      this.createUserDefinedAlgorithmButton = new System.Windows.Forms.Button();
       this.engineComboBox = new System.Windows.Forms.ComboBox();
       this.engineTabPage = new System.Windows.Forms.TabPage();
@@ -119,10 +118,10 @@
       // 
       this.executionTimeLabel.Location = new System.Drawing.Point(487, 532);
-      this.executionTimeLabel.TabIndex = 10;
+      this.executionTimeLabel.TabIndex = 9;
       // 
       // executionTimeTextBox
       // 
       this.executionTimeTextBox.Location = new System.Drawing.Point(576, 529);
-      this.executionTimeTextBox.TabIndex = 11;
+      this.executionTimeTextBox.TabIndex = 10;
       // 
       // resultsTabPage
@@ -169,16 +168,4 @@
       this.engineLabel.TabIndex = 0;
       this.engineLabel.Text = "&Engine:";
-      // 
-      // createUserDefinedAlgorithmButton
-      // 
-      this.createUserDefinedAlgorithmButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.createUserDefinedAlgorithmButton.Location = new System.Drawing.Point(150, 525);
-      this.createUserDefinedAlgorithmButton.Name = "createUserDefinedAlgorithmButton";
-      this.createUserDefinedAlgorithmButton.Size = new System.Drawing.Size(254, 24);
-      this.createUserDefinedAlgorithmButton.TabIndex = 9;
-      this.createUserDefinedAlgorithmButton.Text = "&Create User Defined Algorithm";
-      this.toolTip.SetToolTip(this.createUserDefinedAlgorithmButton, "Create User Defined Algorithm from this Algorithm");
-      this.createUserDefinedAlgorithmButton.UseVisualStyleBackColor = true;
-      this.createUserDefinedAlgorithmButton.Click += new System.EventHandler(this.createUserDefinedAlgorithmButton_Click);
       // 
       // engineComboBox
@@ -273,9 +260,7 @@
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.createUserDefinedAlgorithmButton);
       this.Name = "EngineAlgorithmView";
       this.Size = new System.Drawing.Size(713, 549);
       this.Controls.SetChildIndex(this.stopButton, 0);
-      this.Controls.SetChildIndex(this.createUserDefinedAlgorithmButton, 0);
       this.Controls.SetChildIndex(this.resetButton, 0);
       this.Controls.SetChildIndex(this.pauseButton, 0);
@@ -306,5 +291,4 @@
 
     protected System.Windows.Forms.Label engineLabel;
-    protected System.Windows.Forms.Button createUserDefinedAlgorithmButton;
     protected System.Windows.Forms.ComboBox engineComboBox;
     protected System.Windows.Forms.TabPage engineTabPage;
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/EngineAlgorithmView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/EngineAlgorithmView.cs	(revision 3758)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/EngineAlgorithmView.cs	(revision 3759)
@@ -108,5 +108,4 @@
       operatorGraphViewHost.ReadOnly = true;
       engineComboBox.Enabled = Content != null && !ReadOnly;
-      createUserDefinedAlgorithmButton.Enabled = Content != null && !Locked;
     }
 
@@ -143,12 +142,4 @@
       }
     }
-
-    protected virtual void createUserDefinedAlgorithmButton_Click(object sender, EventArgs e) {
-      IContentView view = MainFormManager.MainForm.ShowContent(Content.CreateUserDefinedAlgorithm());
-      if (view != null) {
-        view.ReadOnly = this.ReadOnly;
-        view.Locked = this.Locked;
-      }
-    }
   }
 }
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.Designer.cs	(revision 3758)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.Designer.cs	(revision 3759)
@@ -58,10 +58,4 @@
       this.globalScopeTabPage.SuspendLayout();
       this.SuspendLayout();
-      // 
-      // createUserDefinedAlgorithmButton
-      // 
-      this.createUserDefinedAlgorithmButton.Enabled = false;
-      this.toolTip.SetToolTip(this.createUserDefinedAlgorithmButton, "Create User Defined Algorithm from this Algorithm");
-      this.createUserDefinedAlgorithmButton.Visible = false;
       // 
       // engineComboBox
Index: /trunk/sources/HeuristicLab.Optimizer/3.3/HeuristicLab.Optimizer-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Optimizer/3.3/HeuristicLab.Optimizer-3.3.csproj	(revision 3758)
+++ /trunk/sources/HeuristicLab.Optimizer/3.3/HeuristicLab.Optimizer-3.3.csproj	(revision 3759)
@@ -89,4 +89,5 @@
     <Compile Include="MenuItems\ClipboardMenuItem.cs" />
     <Compile Include="MenuItems\AboutMenuItem.cs" />
+    <Compile Include="MenuItems\ConvertIntoUserDefinedAlgorithmMenuItem.cs" />
     <Compile Include="MenuItems\CopyToClipboardMenuItem.cs" />
     <Compile Include="MenuItems\StartPageMenuItem.cs" />
@@ -169,4 +170,8 @@
       <Project>{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}</Project>
       <Name>HeuristicLab.MainForm-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">
+      <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project>
+      <Name>HeuristicLab.Optimization-3.3</Name>
     </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
Index: /trunk/sources/HeuristicLab.Optimizer/3.3/HeuristicLabOptimizerPlugin.cs.frame
===================================================================
--- /trunk/sources/HeuristicLab.Optimizer/3.3/HeuristicLabOptimizerPlugin.cs.frame	(revision 3758)
+++ /trunk/sources/HeuristicLab.Optimizer/3.3/HeuristicLabOptimizerPlugin.cs.frame	(revision 3759)
@@ -33,4 +33,5 @@
   [PluginDependency("HeuristicLab.MainForm", "3.3")]
   [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
+  [PluginDependency("HeuristicLab.Optimization", "3.3")]
   public class HeuristicLabOptimizerPlugin : PluginBase {
   }
Index: /trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/AboutMenuItem.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/AboutMenuItem.cs	(revision 3758)
+++ /trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/AboutMenuItem.cs	(revision 3759)
@@ -39,5 +39,5 @@
     }
     public override int Position {
-      get { return 4100; }
+      get { return 9100; }
     }
 
@@ -45,5 +45,5 @@
       if (aboutDialog == null)
         aboutDialog = new AboutDialog();
-      aboutDialog.ShowDialog();
+      aboutDialog.ShowDialog((IWin32Window)MainFormManager.MainForm);
     }
   }
Index: /trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/ConvertIntoUserDefinedAlgorithmMenuItem.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/ConvertIntoUserDefinedAlgorithmMenuItem.cs	(revision 3759)
+++ /trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/ConvertIntoUserDefinedAlgorithmMenuItem.cs	(revision 3759)
@@ -0,0 +1,62 @@
+﻿#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.Windows.Forms;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+using HeuristicLab.Optimization;
+
+namespace HeuristicLab.Optimizer.MenuItems {
+  internal class ConvertIntoUserDefinedAlgorithmMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItem, IOptimizerUserInterfaceItemProvider {
+    public override string Name {
+      get { return "Convert into &User-Defined Algorithm"; }
+    }
+    public override IEnumerable<string> Structure {
+      get { return new string[] { "&Edit" }; }
+    }
+    public override int Position {
+      get { return 2200; }
+    }
+    public override string ToolTipText {
+      get { return "Convert the shown algorithm into a user-defined algorithm"; }
+    }
+
+    protected override void OnToolStripItemSet(EventArgs e) {
+      ToolStripItem.Enabled = false;
+    }
+    protected override void OnActiveViewChanged(object sender, EventArgs e) {
+      IContentView activeView = MainFormManager.MainForm.ActiveView as IContentView;
+      ToolStripItem.Enabled = (activeView != null) && (activeView.Content != null) && (activeView.Content is EngineAlgorithm) && !(activeView.Content is UserDefinedAlgorithm) && !activeView.Locked;
+    }
+
+    public override void Execute() {
+      IContentView activeView = MainFormManager.MainForm.ActiveView as IContentView;
+      if ((activeView != null) && (activeView.Content != null) && (activeView.Content is EngineAlgorithm) && !activeView.Locked) {
+        IAlgorithm alg = ((EngineAlgorithm)activeView.Content).CreateUserDefinedAlgorithm();
+        MainFormManager.MainForm.ShowContent(alg);
+      }
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/CopyToClipboardMenuItem.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/CopyToClipboardMenuItem.cs	(revision 3758)
+++ /trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/CopyToClipboardMenuItem.cs	(revision 3759)
@@ -39,4 +39,7 @@
       get { return 2100; }
     }
+    public override string ToolTipText {
+      get { return "Copy the shown content into the HeuristicLab Optimizer clipboard"; }
+    }
 
     protected override void OnToolStripItemSet(EventArgs e) {
