Index: /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching.Views/3.3/CreateRunCollectionModifierTasksMenuItem.cs
===================================================================
--- /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching.Views/3.3/CreateRunCollectionModifierTasksMenuItem.cs	(revision 10113)
+++ /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching.Views/3.3/CreateRunCollectionModifierTasksMenuItem.cs	(revision 10113)
@@ -0,0 +1,53 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 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 HeuristicLab.MainForm;
+using HeuristicLab.Optimization;
+using HeuristicLab.Optimizer;
+
+namespace HeuristicLab.Analysis.SolutionCaching.Views {
+  internal class CreateRunCollectionModifierTasksMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItem, IOptimizerUserInterfaceItemProvider {
+    public override string Name {
+      get { return "&Configure RunCollectionModiefiers for Hive"; }
+    }
+    public override IEnumerable<string> Structure {
+      get { return new string[] { "&Edit" }; }
+    }
+    public override int Position {
+      get { return 4221; }
+    }
+
+    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 IOptimizer) && !activeView.Locked;
+    }
+
+    public override void Execute() {
+      IContentView activeView = MainFormManager.MainForm.ActiveView as IContentView;
+      using (RunCollectionModifierTasksConfigurator configurator = new RunCollectionModifierTasksConfigurator()) {
+        configurator.Content = activeView.Content as IOptimizer;
+        configurator.ShowDialog();
+      }
+    }
+  }
+}
Index: /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching.Views/3.3/HeuristicLab.Analysis.SolutionCaching.Views-3.3.csproj
===================================================================
--- /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching.Views/3.3/HeuristicLab.Analysis.SolutionCaching.Views-3.3.csproj	(revision 10112)
+++ /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching.Views/3.3/HeuristicLab.Analysis.SolutionCaching.Views-3.3.csproj	(revision 10113)
@@ -79,4 +79,9 @@
       <Private>False</Private>
     </Reference>
+    <Reference Include="HeuristicLab.Hive-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Hive-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
     <Reference Include="HeuristicLab.MainForm-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
       <Private>False</Private>
@@ -130,4 +135,5 @@
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="CreateRunCollectionModifierTasksMenuItem.cs" />
     <Compile Include="PermutationSolutionCacheView.cs">
       <SubType>UserControl</SubType>
@@ -135,4 +141,10 @@
     <Compile Include="RealVectorSolutionCacheView.cs">
       <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="RunCollectionModifierTasksConfigurator.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="RunCollectionModifierTasksConfigurator.Designer.cs">
+      <DependentUpon>RunCollectionModifierTasksConfigurator.cs</DependentUpon>
     </Compile>
     <Compile Include="SolutionCacheView.cs">
@@ -166,4 +178,7 @@
   </ItemGroup>
   <ItemGroup>
+    <EmbeddedResource Include="RunCollectionModifierTasksConfigurator.resx">
+      <DependentUpon>RunCollectionModifierTasksConfigurator.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="SolutionCacheView.resx">
       <DependentUpon>SolutionCacheView.cs</DependentUpon>
Index: /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching.Views/3.3/RunCollectionModifierTasksConfigurator.Designer.cs
===================================================================
--- /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching.Views/3.3/RunCollectionModifierTasksConfigurator.Designer.cs	(revision 10113)
+++ /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching.Views/3.3/RunCollectionModifierTasksConfigurator.Designer.cs	(revision 10113)
@@ -0,0 +1,95 @@
+﻿namespace HeuristicLab.Analysis.SolutionCaching.Views {
+  partial class RunCollectionModifierTasksConfigurator {
+    /// <summary>
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary>
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Windows Form Designer generated code
+
+    /// <summary>
+    /// Required method for Designer support - do not modify
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.okButton = new System.Windows.Forms.Button();
+      this.cancelButton = new System.Windows.Forms.Button();
+      this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.SuspendLayout();
+      // 
+      // okButton
+      // 
+      this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+      this.okButton.Location = new System.Drawing.Point(502, 325);
+      this.okButton.Name = "okButton";
+      this.okButton.Size = new System.Drawing.Size(75, 23);
+      this.okButton.TabIndex = 0;
+      this.okButton.Text = "OK";
+      this.okButton.UseVisualStyleBackColor = true;
+      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.Location = new System.Drawing.Point(583, 325);
+      this.cancelButton.Name = "cancelButton";
+      this.cancelButton.Size = new System.Drawing.Size(75, 23);
+      this.cancelButton.TabIndex = 1;
+      this.cancelButton.Text = "Cancel";
+      this.cancelButton.UseVisualStyleBackColor = true;
+      this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click);
+      // 
+      // viewHost
+      // 
+      this.viewHost.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.viewHost.Caption = "View";
+      this.viewHost.Content = null;
+      this.viewHost.Enabled = false;
+      this.viewHost.Location = new System.Drawing.Point(12, 12);
+      this.viewHost.Name = "viewHost";
+      this.viewHost.ReadOnly = false;
+      this.viewHost.Size = new System.Drawing.Size(646, 307);
+      this.viewHost.TabIndex = 2;
+      this.viewHost.ViewsLabelVisible = true;
+      this.viewHost.ViewType = null;
+      // 
+      // RunCollectionModifierTasksConfigurator
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.ClientSize = new System.Drawing.Size(670, 360);
+      this.Controls.Add(this.viewHost);
+      this.Controls.Add(this.cancelButton);
+      this.Controls.Add(this.okButton);
+      this.MaximizeBox = false;
+      this.MinimizeBox = false;
+      this.Name = "RunCollectionModifierTasksConfigurator";
+      this.ShowIcon = false;
+      this.ShowInTaskbar = false;
+      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+      this.Text = "Configure RunCollectionModifiers for Hive";
+      this.Load += new System.EventHandler(this.RunCollectionModifierTasksConfigurator_Load);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.Button okButton;
+    private System.Windows.Forms.Button cancelButton;
+    private MainForm.WindowsForms.ViewHost viewHost;
+  }
+}
Index: /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching.Views/3.3/RunCollectionModifierTasksConfigurator.cs
===================================================================
--- /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching.Views/3.3/RunCollectionModifierTasksConfigurator.cs	(revision 10113)
+++ /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching.Views/3.3/RunCollectionModifierTasksConfigurator.cs	(revision 10113)
@@ -0,0 +1,65 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Linq;
+using System.Windows.Forms;
+using HeuristicLab.Analysis.SolutionCaching.RunCollectionModifiers;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+using HeuristicLab.Operators;
+using HeuristicLab.Optimization;
+
+namespace HeuristicLab.Analysis.SolutionCaching.Views {
+  public partial class RunCollectionModifierTasksConfigurator : Form {
+    public IOptimizer Content { get; set; }
+    public RunCollectionModifierTask runCollectionModifierTask;
+
+    public RunCollectionModifierTask RunCollectionModifierTask {
+      get { return runCollectionModifierTask; }
+    }
+
+    public RunCollectionModifierTasksConfigurator() {
+      InitializeComponent();
+      runCollectionModifierTask = new RunCollectionModifierTask();
+    }
+
+    private void okButton_Click(object sender, System.EventArgs e) {
+      CreateTask();
+      Close();
+    }
+
+    private void cancelButton_Click(object sender, System.EventArgs e) {
+      Close();
+    }
+
+    private void RunCollectionModifierTasksConfigurator_Load(object sender, EventArgs e) {
+      viewHost.Content = runCollectionModifierTask;
+    }
+
+    private void CreateTask() {
+      runCollectionModifierTask.RunCollection.AddRange(Content.Runs);
+      MainFormManager.MainForm.ShowContent(runCollectionModifierTask);
+    }
+  }
+}
Index: /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/RunCollectionModifiers/RunCollectionModifierTask.cs
===================================================================
--- /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/RunCollectionModifiers/RunCollectionModifierTask.cs	(revision 10112)
+++ /branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.SolutionCaching/3.3/RunCollectionModifiers/RunCollectionModifierTask.cs	(revision 10113)
@@ -30,4 +30,5 @@
 using HeuristicLab.Hive;
 using HeuristicLab.Optimization;
+using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -35,5 +36,5 @@
   [Item("RunCollectionModifierTask", "An item that runs RunCollectionModifiers on RunCollections with Hive support.")]
   [StorableClass]
-  public class RunCollectionModifierTask : NamedItem, ITask {
+  public class RunCollectionModifierTask : ParameterizedNamedItem, ITask {
     public virtual bool IsParallelizable {
       get { return false; }
@@ -71,8 +72,9 @@
     }
 
-    [Storable]
-    protected ItemList<IRunCollectionModifier> runCollectionModifiers;
+    public ValueParameter<ItemList<IRunCollectionModifier>> RunCollectionModifiersParameter {
+      get { return (ValueParameter<ItemList<IRunCollectionModifier>>)Parameters["RunCollectionModifiers"]; }
+    }
     public ItemList<IRunCollectionModifier> RunCollectionModifiers {
-      get { return runCollectionModifiers; }
+      get { return RunCollectionModifiersParameter.Value; }
     }
 
@@ -100,6 +102,7 @@
     #region Constructors and Cloning
     public RunCollectionModifierTask() {
-      runCollectionModifiers = new ItemList<IRunCollectionModifier>();
+      Parameters.Add(new ValueParameter<ItemList<IRunCollectionModifier>>("RunCollectionModifiers", "List of RunCollectionModifiers that are executed. ", new ItemList<IRunCollectionModifier>()));
       executionStack = new Stack<IRunCollectionModifier>();
+      runCollection = new RunCollection();
       log = new Log();
     }
@@ -110,5 +113,4 @@
       executionTime = original.executionTime;
       executionState = original.executionState;
-      runCollectionModifiers = (ItemList<IRunCollectionModifier>)original.RunCollectionModifiers.Clone(cloner);
       runCollection = (RunCollection)original.runCollection.Clone(cloner);
       executionStack = new Stack<IRunCollectionModifier>();
@@ -172,5 +174,5 @@
 
     public virtual void AddRunCollectionModifiers(IRunCollectionModifier modifier) {
-      runCollectionModifiers.Add(modifier);
+      RunCollectionModifiers.Add(modifier);
     }
 
