Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.ExperimentManager/3.3/Views/RefreshableHiveExperimentView.Designer.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.ExperimentManager/3.3/Views/RefreshableHiveExperimentView.Designer.cs	(revision 6726)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.ExperimentManager/3.3/Views/RefreshableHiveExperimentView.Designer.cs	(revision 6727)
@@ -51,5 +51,5 @@
       this.tabControl = new System.Windows.Forms.TabControl();
       this.jobsTabPage = new System.Windows.Forms.TabPage();
-      this.jobsTreeView = new HeuristicLab.Clients.Hive.Views.ExperimentManager.HiveJobItemTreeView();
+      this.jobsTreeView = new HeuristicLab.Clients.Hive.Views.ExperimentManager.HiveTaskItemTreeView();
       this.stateTabPage = new System.Windows.Forms.TabPage();
       this.stateLogViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
@@ -470,5 +470,5 @@
     private Core.Views.LogView logView;
     private System.Windows.Forms.TabPage jobsTabPage;
-    private HiveJobItemTreeView jobsTreeView;
+    private HiveTaskItemTreeView jobsTreeView;
     private System.Windows.Forms.Label nameLabel;
     private System.Windows.Forms.TextBox nameTextBox;
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HeuristicLab.Clients.Hive.Views-3.3.csproj
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HeuristicLab.Clients.Hive.Views-3.3.csproj	(revision 6726)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HeuristicLab.Clients.Hive.Views-3.3.csproj	(revision 6727)
@@ -125,9 +125,9 @@
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="HiveJobs\OptimizerHiveJobView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="HiveJobs\OptimizerHiveJobView.designer.cs">
-      <DependentUpon>OptimizerHiveJobView.cs</DependentUpon>
+    <Compile Include="HiveTasks\OptimizerHiveTaskView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="HiveTasks\OptimizerHiveTaskView.designer.cs">
+      <DependentUpon>OptimizerHiveTaskView.cs</DependentUpon>
     </Compile>
     <Compile Include="HiveItemView.cs">
@@ -137,23 +137,23 @@
       <DependentUpon>HiveItemView.cs</DependentUpon>
     </Compile>
-    <Compile Include="HiveJobs\HiveJobListView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="HiveJobs\HiveJobListView.designer.cs">
-      <DependentUpon>HiveJobListView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="HiveJobs\HiveJobView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="HiveJobs\HiveJobView.designer.cs">
-      <DependentUpon>HiveJobView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="TreeView\NewExperimentTreeNodeAction.cs" />
-    <Compile Include="TreeView\DeleteJobTreeNodeAction.cs" />
-    <Compile Include="TreeView\HiveJobItemTreeView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="TreeView\HiveJobItemTreeView.Designer.cs">
-      <DependentUpon>HiveJobItemTreeView.cs</DependentUpon>
+    <Compile Include="HiveTasks\HiveTaskListView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="HiveTasks\HiveTaskListView.designer.cs">
+      <DependentUpon>HiveTaskListView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="HiveTasks\HiveTaskView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="HiveTasks\HiveTaskView.designer.cs">
+      <DependentUpon>HiveTaskView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="TreeView\NewTaskTreeNodeAction.cs" />
+    <Compile Include="TreeView\DeleteTaskTreeNodeAction.cs" />
+    <Compile Include="TreeView\HiveTaskItemTreeView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="TreeView\HiveTaskItemTreeView.Designer.cs">
+      <DependentUpon>HiveTaskItemTreeView.cs</DependentUpon>
     </Compile>
     <Compile Include="TreeView\ItemTreeView.cs">
@@ -218,9 +218,9 @@
   </ItemGroup>
   <ItemGroup>
-    <EmbeddedResource Include="HiveJobs\OptimizerHiveJobView.resx">
-      <DependentUpon>OptimizerHiveJobView.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="HiveJobs\HiveJobView.resx">
-      <DependentUpon>HiveJobView.cs</DependentUpon>
+    <EmbeddedResource Include="HiveTasks\OptimizerHiveTaskView.resx">
+      <DependentUpon>OptimizerHiveTaskView.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="HiveTasks\HiveTaskView.resx">
+      <DependentUpon>HiveTaskView.cs</DependentUpon>
     </EmbeddedResource>
     <EmbeddedResource Include="TreeView\ItemTreeView.resx">
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/HiveTaskListView.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/HiveTaskListView.cs	(revision 6727)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/HiveTaskListView.cs	(revision 6727)
@@ -0,0 +1,49 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Windows.Forms;
+using HeuristicLab.Core;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+
+namespace HeuristicLab.Clients.Hive.Views {
+  [View("TaskItemList View")]
+  [Content(typeof(IItemList<HiveTask>), false)]
+  public partial class HiveTaskListView : ItemListView<HiveTask> {
+
+    public HiveTaskListView() {
+      InitializeComponent();
+      itemsGroupBox.Text = "Tasks";
+    }
+
+    protected override HiveTask CreateItem() {
+      return null;
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      this.addButton.Enabled = false;
+      this.moveDownButton.Enabled = false;
+      this.moveUpButton.Enabled = false;
+      this.removeButton.Enabled = false;
+    }
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/HiveTaskListView.designer.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/HiveTaskListView.designer.cs	(revision 6727)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/HiveTaskListView.designer.cs	(revision 6727)
@@ -0,0 +1,32 @@
+﻿namespace HeuristicLab.Clients.Hive.Views {
+  partial class HiveTaskListView {
+    /// <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) {
+        if (components != null) components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      components = new System.ComponentModel.Container();
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+    }
+
+    #endregion
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/HiveTaskView.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/HiveTaskView.cs	(revision 6727)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/HiveTaskView.cs	(revision 6727)
@@ -0,0 +1,208 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Windows.Forms;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+
+namespace HeuristicLab.Clients.Hive.Views {
+  [View("HiveTask View")]
+  [Content(typeof(HiveTask), true)]
+  [Content(typeof(HiveTask<>), false)]
+  public partial class HiveTaskView : ItemView {
+    public new HiveTask Content {
+      get { return (HiveTask)base.Content; }
+      set {
+        if (base.Content != value) {
+          base.Content = value;
+        }
+      }
+    }
+
+    public HiveTaskView() {
+      InitializeComponent();
+    }
+
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.ItemTaskChanged += new EventHandler(Content_TaskItemChanged);
+      Content.TaskChanged += new EventHandler(Content_TaskChanged);
+      Content.TaskStateChanged += new EventHandler(Content_TaskStateChanged);
+      Content.StateLogChanged += new EventHandler(Content_StateLogChanged);
+    }
+
+    protected override void DeregisterContentEvents() {
+      Content.ItemTaskChanged -= new EventHandler(Content_TaskItemChanged);
+      Content.TaskChanged -= new EventHandler(Content_TaskChanged);
+      Content.TaskStateChanged -= new EventHandler(Content_TaskStateChanged);
+      Content.StateLogChanged -= new EventHandler(Content_StateLogChanged);
+      base.DeregisterContentEvents();
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content != null && Content.Task != null) {
+        computeInParallelCheckBox.Checked = Content.ItemTask.ComputeInParallel;
+      } else {
+        computeInParallelCheckBox.Checked = false;
+      }
+      Content_TaskItemChanged(this, EventArgs.Empty);
+      Content_TaskChanged(this, EventArgs.Empty);
+      Content_TaskStateChanged(this, EventArgs.Empty);
+    }
+
+    protected virtual void RegisterTaskEvents() {
+      if (Content != null && Content.Task != null) {
+        Content.ItemTask.ComputeInParallelChanged += new EventHandler(OptimizerJob_ComputeInParallelChanged);
+        Content.ItemTask.ItemChanged += new EventHandler(Job_ItemChanged);
+      }
+    }
+
+    protected virtual void DeregisterTaskEvents() {
+      if (Content != null && Content.Task != null) {
+        Content.ItemTask.ComputeInParallelChanged -= new EventHandler(OptimizerJob_ComputeInParallelChanged);
+        Content.ItemTask.ItemChanged -= new EventHandler(Job_ItemChanged);
+      }
+    }
+
+    #region Content Events
+    protected virtual void Content_TaskChanged(object sender, EventArgs e) {
+      if (InvokeRequired) {
+        Invoke(new EventHandler(Content_TaskChanged), sender, e);
+      } else {
+        if (Content != null && Content.Task != null) {
+          this.jobIdTextBox.Text = Content.Task.Id.ToString();
+          this.dateCreatedTextBox.Text = Content.Task.DateCreated.HasValue ? Content.Task.DateCreated.ToString() : string.Empty;
+          this.priorityTextBox.Text = Content.Task.Priority.ToString();
+          this.coresNeededTextBox.Text = Content.Task.CoresNeeded.ToString();
+          this.memoryNeededTextBox.Text = Content.Task.MemoryNeeded.ToString();
+        } else {
+          this.jobIdTextBox.Text = string.Empty;
+          this.dateCreatedTextBox.Text = string.Empty;
+          this.priorityTextBox.Text = string.Empty;
+          this.coresNeededTextBox.Text = string.Empty;
+          this.memoryNeededTextBox.Text = string.Empty;
+        }
+      }
+    }
+
+    protected virtual void Content_TaskItemChanged(object sender, EventArgs e) {
+      RegisterTaskEvents();
+      Job_ItemChanged(this, e);
+    }
+
+    protected virtual void Job_ItemChanged(object sender, EventArgs e) {
+      if (Content != null && Content.Task != null && Content.ItemTask.Item != null) {
+        optimizerItemView.Content = Content.ItemTask.Item;
+      } else {
+        optimizerItemView.Content = null;
+      }
+    }
+
+    protected virtual void Content_TaskStateChanged(object sender, EventArgs e) {
+      if (InvokeRequired) {
+        Invoke(new EventHandler(Content_TaskStateChanged), sender, e);
+      } else {
+        if (Content != null && Content.Task != null) {
+          this.stateTextBox.Text = Content.Task.State.ToString();
+          this.commandTextBox.Text = Content.Task.Command.ToString();
+          this.executionTimeTextBox.Text = Content.Task.ExecutionTime.ToString();
+          this.dateFinishedTextBox.Text = Content.Task.DateFinished.ToString();
+          this.exceptionTextBox.Text = Content.Task.CurrentStateLog != null ? Content.Task.CurrentStateLog.Exception : string.Empty;
+          this.lastUpdatedTextBox.Text = Content.Task.LastJobDataUpdate.ToString();
+        } else {
+          this.stateTextBox.Text = string.Empty;
+          this.commandTextBox.Text = string.Empty;
+          this.executionTimeTextBox.Text = string.Empty;
+          this.dateCalculatedText.Text = string.Empty;
+          this.dateFinishedTextBox.Text = string.Empty;
+          this.exceptionTextBox.Text = string.Empty;
+          this.lastUpdatedTextBox.Text = string.Empty;
+        }
+        Content_StateLogChanged(this, EventArgs.Empty);
+        SetEnabledStateOfControls();
+      }
+    }
+
+    protected virtual void OptimizerJob_ComputeInParallelChanged(object sender, EventArgs e) {
+      if (InvokeRequired) {
+        Invoke(new EventHandler(OptimizerJob_ComputeInParallelChanged), sender, e);
+      } else {
+        computeInParallelCheckBox.Checked = Content.ItemTask.ComputeInParallel;
+      }
+    }
+
+    protected virtual void Content_StateLogChanged(object sender, EventArgs e) {
+      if (Content != null) {
+        if (Content.ItemTask.ComputeInParallel) {
+          this.stateLogViewHost.Content = Content.ChildStateLogList;
+        } else {
+          this.stateLogViewHost.Content = Content.StateLog;
+        }
+      } else {
+        this.stateLogViewHost.Content = null;
+      }
+    }
+    #endregion
+
+    #region Child Control Events
+    protected virtual void computeInParallelCheckBox_CheckedChanged(object sender, EventArgs e) {
+      if (Content != null && Content.ItemTask != null) {
+        this.Content.ItemTask.ComputeInParallel = this.computeInParallelCheckBox.Checked;
+      }
+    }
+
+    protected virtual void exceptionTextBox_DoubleClick(object sender, EventArgs e) {
+      using (TextDialog dialog = new TextDialog("Exception", exceptionTextBox.Text, ReadOnly || !Content.CanChangeDescription)) {
+        if (dialog.ShowDialog(this) == DialogResult.OK)
+          Content.Description = dialog.Content;
+      }
+    }
+
+    protected virtual void modifyItemButton_Click(object sender, EventArgs e) {
+      MainFormManager.MainForm.ShowContent(Content.ItemTask.Item);
+    }
+    #endregion
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      this.jobIdTextBox.ReadOnly = true;
+      this.stateTextBox.ReadOnly = true;
+      this.commandTextBox.ReadOnly = true;
+      this.executionTimeTextBox.ReadOnly = true;
+      this.dateCreatedTextBox.ReadOnly = true;
+      this.dateCalculatedText.ReadOnly = true;
+      this.dateFinishedTextBox.ReadOnly = true;
+      this.exceptionTextBox.ReadOnly = true;
+      this.lastUpdatedTextBox.ReadOnly = true;
+
+      this.priorityTextBox.ReadOnly = this.ReadOnly;
+      this.coresNeededTextBox.ReadOnly = this.ReadOnly;
+      this.memoryNeededTextBox.ReadOnly = this.ReadOnly;
+      this.computeInParallelCheckBox.Enabled = !this.ReadOnly && this.Content != null && this.Content.ItemTask != null && this.Content.ItemTask.IsParallelizable;
+
+      this.modifyItemButton.Enabled = (Content != null && Content.ItemTask.Item != null && (Content.Task.State == TaskState.Paused || Content.Task.State == TaskState.Offline || Content.Task.State == TaskState.Finished || Content.Task.State == TaskState.Failed || Content.Task.State == TaskState.Aborted));
+
+      optimizerItemView.ReadOnly = true;
+    }
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/HiveTaskView.designer.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/HiveTaskView.designer.cs	(revision 6727)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/HiveTaskView.designer.cs	(revision 6727)
@@ -0,0 +1,525 @@
+﻿namespace HeuristicLab.Clients.Hive.Views {
+  partial class HiveTaskView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.stateLogTabPage = new System.Windows.Forms.TabPage();
+      this.stateLogViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.detailsTabPage = new System.Windows.Forms.TabPage();
+      this.splitContainer1 = new System.Windows.Forms.SplitContainer();
+      this.configurationGroupBox = new System.Windows.Forms.GroupBox();
+      this.priorityTextBox = new System.Windows.Forms.TextBox();
+      this.priorityLabel = new System.Windows.Forms.Label();
+      this.coresNeededTextBox = new System.Windows.Forms.TextBox();
+      this.memoryNeededTextBox = new System.Windows.Forms.TextBox();
+      this.memoryNeededLabel = new System.Windows.Forms.Label();
+      this.coresNeededLabel = new System.Windows.Forms.Label();
+      this.computeInParallelLabel = new System.Windows.Forms.Label();
+      this.computeInParallelCheckBox = new System.Windows.Forms.CheckBox();
+      this.jobStatusGroupBox = new System.Windows.Forms.GroupBox();
+      this.stateTextBox = new System.Windows.Forms.TextBox();
+      this.dateCalculatedLabel = new System.Windows.Forms.Label();
+      this.stateLabel = new System.Windows.Forms.Label();
+      this.dateCalculatedText = new System.Windows.Forms.TextBox();
+      this.dateFinishedTextBox = new System.Windows.Forms.TextBox();
+      this.executionTimeTextBox = new System.Windows.Forms.TextBox();
+      this.dateCreatedTextBox = new System.Windows.Forms.TextBox();
+      this.executionTimeLabel = new System.Windows.Forms.Label();
+      this.exceptionLabel = new System.Windows.Forms.Label();
+      this.dateCreatedLabel = new System.Windows.Forms.Label();
+      this.dateFinishedLabel = new System.Windows.Forms.Label();
+      this.exceptionTextBox = new System.Windows.Forms.TextBox();
+      this.optimizerGroupBox = new System.Windows.Forms.GroupBox();
+      this.modifyItemButton = new System.Windows.Forms.Button();
+      this.lastUpdatedTextBox = new System.Windows.Forms.TextBox();
+      this.lastUpdatedLabel = new System.Windows.Forms.Label();
+      this.optimizerItemView = new HeuristicLab.Core.Views.ItemView();
+      this.jobIdLabel = new System.Windows.Forms.Label();
+      this.jobIdTextBox = new System.Windows.Forms.TextBox();
+      this.tabControl = new System.Windows.Forms.TabControl();
+      this.commandTextBox = new System.Windows.Forms.TextBox();
+      this.commandLabel = new System.Windows.Forms.Label();
+      this.stateLogTabPage.SuspendLayout();
+      this.detailsTabPage.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
+      this.splitContainer1.Panel1.SuspendLayout();
+      this.splitContainer1.Panel2.SuspendLayout();
+      this.splitContainer1.SuspendLayout();
+      this.configurationGroupBox.SuspendLayout();
+      this.jobStatusGroupBox.SuspendLayout();
+      this.optimizerGroupBox.SuspendLayout();
+      this.tabControl.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // stateLogTabPage
+      // 
+      this.stateLogTabPage.Controls.Add(this.stateLogViewHost);
+      this.stateLogTabPage.Location = new System.Drawing.Point(4, 22);
+      this.stateLogTabPage.Name = "stateLogTabPage";
+      this.stateLogTabPage.Size = new System.Drawing.Size(563, 375);
+      this.stateLogTabPage.TabIndex = 5;
+      this.stateLogTabPage.Text = "State";
+      this.stateLogTabPage.UseVisualStyleBackColor = true;
+      // 
+      // stateLogViewHost
+      // 
+      this.stateLogViewHost.Caption = "View";
+      this.stateLogViewHost.Content = null;
+      this.stateLogViewHost.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.stateLogViewHost.Enabled = false;
+      this.stateLogViewHost.Location = new System.Drawing.Point(0, 0);
+      this.stateLogViewHost.Name = "stateLogViewHost";
+      this.stateLogViewHost.ReadOnly = false;
+      this.stateLogViewHost.Size = new System.Drawing.Size(563, 375);
+      this.stateLogViewHost.TabIndex = 0;
+      this.stateLogViewHost.ViewsLabelVisible = true;
+      this.stateLogViewHost.ViewType = null;
+      // 
+      // detailsTabPage
+      // 
+      this.detailsTabPage.Controls.Add(this.splitContainer1);
+      this.detailsTabPage.Controls.Add(this.optimizerGroupBox);
+      this.detailsTabPage.Controls.Add(this.jobIdLabel);
+      this.detailsTabPage.Controls.Add(this.jobIdTextBox);
+      this.detailsTabPage.Location = new System.Drawing.Point(4, 22);
+      this.detailsTabPage.Name = "detailsTabPage";
+      this.detailsTabPage.Padding = new System.Windows.Forms.Padding(3);
+      this.detailsTabPage.Size = new System.Drawing.Size(563, 375);
+      this.detailsTabPage.TabIndex = 0;
+      this.detailsTabPage.Text = "Details";
+      this.detailsTabPage.UseVisualStyleBackColor = true;
+      // 
+      // splitContainer1
+      // 
+      this.splitContainer1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.splitContainer1.Location = new System.Drawing.Point(6, 110);
+      this.splitContainer1.Name = "splitContainer1";
+      // 
+      // splitContainer1.Panel1
+      // 
+      this.splitContainer1.Panel1.Controls.Add(this.configurationGroupBox);
+      // 
+      // splitContainer1.Panel2
+      // 
+      this.splitContainer1.Panel2.Controls.Add(this.jobStatusGroupBox);
+      this.splitContainer1.Size = new System.Drawing.Size(551, 178);
+      this.splitContainer1.SplitterDistance = 275;
+      this.splitContainer1.TabIndex = 33;
+      // 
+      // configurationGroupBox
+      // 
+      this.configurationGroupBox.Controls.Add(this.priorityTextBox);
+      this.configurationGroupBox.Controls.Add(this.priorityLabel);
+      this.configurationGroupBox.Controls.Add(this.coresNeededTextBox);
+      this.configurationGroupBox.Controls.Add(this.memoryNeededTextBox);
+      this.configurationGroupBox.Controls.Add(this.memoryNeededLabel);
+      this.configurationGroupBox.Controls.Add(this.coresNeededLabel);
+      this.configurationGroupBox.Controls.Add(this.computeInParallelLabel);
+      this.configurationGroupBox.Controls.Add(this.computeInParallelCheckBox);
+      this.configurationGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.configurationGroupBox.Location = new System.Drawing.Point(0, 0);
+      this.configurationGroupBox.Name = "configurationGroupBox";
+      this.configurationGroupBox.Size = new System.Drawing.Size(275, 178);
+      this.configurationGroupBox.TabIndex = 27;
+      this.configurationGroupBox.TabStop = false;
+      this.configurationGroupBox.Text = "Configuration";
+      // 
+      // priorityTextBox
+      // 
+      this.priorityTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.priorityTextBox.Location = new System.Drawing.Point(108, 66);
+      this.priorityTextBox.Name = "priorityTextBox";
+      this.priorityTextBox.Size = new System.Drawing.Size(161, 20);
+      this.priorityTextBox.TabIndex = 41;
+      // 
+      // priorityLabel
+      // 
+      this.priorityLabel.AutoSize = true;
+      this.priorityLabel.Location = new System.Drawing.Point(7, 66);
+      this.priorityLabel.Name = "priorityLabel";
+      this.priorityLabel.Size = new System.Drawing.Size(41, 13);
+      this.priorityLabel.TabIndex = 42;
+      this.priorityLabel.Text = "Priority:";
+      // 
+      // coresNeededTextBox
+      // 
+      this.coresNeededTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.coresNeededTextBox.Location = new System.Drawing.Point(108, 20);
+      this.coresNeededTextBox.Name = "coresNeededTextBox";
+      this.coresNeededTextBox.Size = new System.Drawing.Size(161, 20);
+      this.coresNeededTextBox.TabIndex = 37;
+      // 
+      // memoryNeededTextBox
+      // 
+      this.memoryNeededTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.memoryNeededTextBox.Location = new System.Drawing.Point(108, 42);
+      this.memoryNeededTextBox.Name = "memoryNeededTextBox";
+      this.memoryNeededTextBox.Size = new System.Drawing.Size(161, 20);
+      this.memoryNeededTextBox.TabIndex = 38;
+      // 
+      // memoryNeededLabel
+      // 
+      this.memoryNeededLabel.AutoSize = true;
+      this.memoryNeededLabel.Location = new System.Drawing.Point(7, 42);
+      this.memoryNeededLabel.Name = "memoryNeededLabel";
+      this.memoryNeededLabel.Size = new System.Drawing.Size(85, 13);
+      this.memoryNeededLabel.TabIndex = 40;
+      this.memoryNeededLabel.Text = "MemoryNeeded:";
+      // 
+      // coresNeededLabel
+      // 
+      this.coresNeededLabel.AutoSize = true;
+      this.coresNeededLabel.Location = new System.Drawing.Point(7, 20);
+      this.coresNeededLabel.Name = "coresNeededLabel";
+      this.coresNeededLabel.Size = new System.Drawing.Size(75, 13);
+      this.coresNeededLabel.TabIndex = 39;
+      this.coresNeededLabel.Text = "CoresNeeded:";
+      // 
+      // computeInParallelLabel
+      // 
+      this.computeInParallelLabel.AutoSize = true;
+      this.computeInParallelLabel.Location = new System.Drawing.Point(7, 93);
+      this.computeInParallelLabel.Name = "computeInParallelLabel";
+      this.computeInParallelLabel.Size = new System.Drawing.Size(95, 13);
+      this.computeInParallelLabel.TabIndex = 36;
+      this.computeInParallelLabel.Text = "ComputeInParallel:";
+      // 
+      // computeInParallelCheckBox
+      // 
+      this.computeInParallelCheckBox.AutoSize = true;
+      this.computeInParallelCheckBox.Location = new System.Drawing.Point(108, 92);
+      this.computeInParallelCheckBox.Name = "computeInParallelCheckBox";
+      this.computeInParallelCheckBox.Size = new System.Drawing.Size(15, 14);
+      this.computeInParallelCheckBox.TabIndex = 35;
+      this.computeInParallelCheckBox.UseVisualStyleBackColor = true;
+      this.computeInParallelCheckBox.CheckedChanged += new System.EventHandler(this.computeInParallelCheckBox_CheckedChanged);
+      // 
+      // jobStatusGroupBox
+      // 
+      this.jobStatusGroupBox.Controls.Add(this.commandTextBox);
+      this.jobStatusGroupBox.Controls.Add(this.commandLabel);
+      this.jobStatusGroupBox.Controls.Add(this.stateTextBox);
+      this.jobStatusGroupBox.Controls.Add(this.dateCalculatedLabel);
+      this.jobStatusGroupBox.Controls.Add(this.stateLabel);
+      this.jobStatusGroupBox.Controls.Add(this.dateCalculatedText);
+      this.jobStatusGroupBox.Controls.Add(this.dateFinishedTextBox);
+      this.jobStatusGroupBox.Controls.Add(this.executionTimeTextBox);
+      this.jobStatusGroupBox.Controls.Add(this.dateCreatedTextBox);
+      this.jobStatusGroupBox.Controls.Add(this.executionTimeLabel);
+      this.jobStatusGroupBox.Controls.Add(this.exceptionLabel);
+      this.jobStatusGroupBox.Controls.Add(this.dateCreatedLabel);
+      this.jobStatusGroupBox.Controls.Add(this.dateFinishedLabel);
+      this.jobStatusGroupBox.Controls.Add(this.exceptionTextBox);
+      this.jobStatusGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.jobStatusGroupBox.Location = new System.Drawing.Point(0, 0);
+      this.jobStatusGroupBox.Name = "jobStatusGroupBox";
+      this.jobStatusGroupBox.Size = new System.Drawing.Size(272, 178);
+      this.jobStatusGroupBox.TabIndex = 24;
+      this.jobStatusGroupBox.TabStop = false;
+      this.jobStatusGroupBox.Text = "Task Status";
+      // 
+      // stateTextBox
+      // 
+      this.stateTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.stateTextBox.Location = new System.Drawing.Point(95, 19);
+      this.stateTextBox.Name = "stateTextBox";
+      this.stateTextBox.Size = new System.Drawing.Size(171, 20);
+      this.stateTextBox.TabIndex = 2;
+      // 
+      // dateCalculatedLabel
+      // 
+      this.dateCalculatedLabel.AutoSize = true;
+      this.dateCalculatedLabel.Location = new System.Drawing.Point(7, 108);
+      this.dateCalculatedLabel.Name = "dateCalculatedLabel";
+      this.dateCalculatedLabel.Size = new System.Drawing.Size(83, 13);
+      this.dateCalculatedLabel.TabIndex = 23;
+      this.dateCalculatedLabel.Text = "DateCalculated:";
+      // 
+      // stateLabel
+      // 
+      this.stateLabel.AutoSize = true;
+      this.stateLabel.Location = new System.Drawing.Point(7, 19);
+      this.stateLabel.Name = "stateLabel";
+      this.stateLabel.Size = new System.Drawing.Size(35, 13);
+      this.stateLabel.TabIndex = 0;
+      this.stateLabel.Text = "State:";
+      // 
+      // dateCalculatedText
+      // 
+      this.dateCalculatedText.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.dateCalculatedText.Location = new System.Drawing.Point(95, 108);
+      this.dateCalculatedText.Name = "dateCalculatedText";
+      this.dateCalculatedText.Size = new System.Drawing.Size(171, 20);
+      this.dateCalculatedText.TabIndex = 22;
+      // 
+      // dateFinishedTextBox
+      // 
+      this.dateFinishedTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.dateFinishedTextBox.Location = new System.Drawing.Point(95, 130);
+      this.dateFinishedTextBox.Name = "dateFinishedTextBox";
+      this.dateFinishedTextBox.Size = new System.Drawing.Size(171, 20);
+      this.dateFinishedTextBox.TabIndex = 6;
+      // 
+      // executionTimeTextBox
+      // 
+      this.executionTimeTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.executionTimeTextBox.Location = new System.Drawing.Point(95, 64);
+      this.executionTimeTextBox.Name = "executionTimeTextBox";
+      this.executionTimeTextBox.Size = new System.Drawing.Size(171, 20);
+      this.executionTimeTextBox.TabIndex = 4;
+      // 
+      // dateCreatedTextBox
+      // 
+      this.dateCreatedTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.dateCreatedTextBox.Location = new System.Drawing.Point(95, 86);
+      this.dateCreatedTextBox.Name = "dateCreatedTextBox";
+      this.dateCreatedTextBox.Size = new System.Drawing.Size(171, 20);
+      this.dateCreatedTextBox.TabIndex = 5;
+      // 
+      // executionTimeLabel
+      // 
+      this.executionTimeLabel.AutoSize = true;
+      this.executionTimeLabel.Location = new System.Drawing.Point(7, 64);
+      this.executionTimeLabel.Name = "executionTimeLabel";
+      this.executionTimeLabel.Size = new System.Drawing.Size(80, 13);
+      this.executionTimeLabel.TabIndex = 13;
+      this.executionTimeLabel.Text = "ExecutionTime:";
+      // 
+      // exceptionLabel
+      // 
+      this.exceptionLabel.AutoSize = true;
+      this.exceptionLabel.Location = new System.Drawing.Point(7, 152);
+      this.exceptionLabel.Name = "exceptionLabel";
+      this.exceptionLabel.Size = new System.Drawing.Size(57, 13);
+      this.exceptionLabel.TabIndex = 19;
+      this.exceptionLabel.Text = "Exception:";
+      // 
+      // dateCreatedLabel
+      // 
+      this.dateCreatedLabel.AutoSize = true;
+      this.dateCreatedLabel.Location = new System.Drawing.Point(7, 86);
+      this.dateCreatedLabel.Name = "dateCreatedLabel";
+      this.dateCreatedLabel.Size = new System.Drawing.Size(70, 13);
+      this.dateCreatedLabel.TabIndex = 14;
+      this.dateCreatedLabel.Text = "DateCreated:";
+      // 
+      // dateFinishedLabel
+      // 
+      this.dateFinishedLabel.AutoSize = true;
+      this.dateFinishedLabel.Location = new System.Drawing.Point(7, 130);
+      this.dateFinishedLabel.Name = "dateFinishedLabel";
+      this.dateFinishedLabel.Size = new System.Drawing.Size(72, 13);
+      this.dateFinishedLabel.TabIndex = 15;
+      this.dateFinishedLabel.Text = "DateFinished:";
+      // 
+      // exceptionTextBox
+      // 
+      this.exceptionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.exceptionTextBox.Location = new System.Drawing.Point(95, 152);
+      this.exceptionTextBox.Name = "exceptionTextBox";
+      this.exceptionTextBox.Size = new System.Drawing.Size(171, 20);
+      this.exceptionTextBox.TabIndex = 10;
+      this.exceptionTextBox.DoubleClick += new System.EventHandler(this.exceptionTextBox_DoubleClick);
+      // 
+      // optimizerGroupBox
+      // 
+      this.optimizerGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.optimizerGroupBox.Controls.Add(this.modifyItemButton);
+      this.optimizerGroupBox.Controls.Add(this.lastUpdatedTextBox);
+      this.optimizerGroupBox.Controls.Add(this.lastUpdatedLabel);
+      this.optimizerGroupBox.Controls.Add(this.optimizerItemView);
+      this.optimizerGroupBox.Location = new System.Drawing.Point(6, 29);
+      this.optimizerGroupBox.Name = "optimizerGroupBox";
+      this.optimizerGroupBox.Size = new System.Drawing.Size(551, 75);
+      this.optimizerGroupBox.TabIndex = 28;
+      this.optimizerGroupBox.TabStop = false;
+      this.optimizerGroupBox.Text = "JobItem";
+      // 
+      // modifyItemButton
+      // 
+      this.modifyItemButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.modifyItemButton.Location = new System.Drawing.Point(78, 45);
+      this.modifyItemButton.Name = "modifyItemButton";
+      this.modifyItemButton.Size = new System.Drawing.Size(467, 23);
+      this.modifyItemButton.TabIndex = 3;
+      this.modifyItemButton.Text = "Modify Item";
+      this.modifyItemButton.UseVisualStyleBackColor = true;
+      this.modifyItemButton.Click += new System.EventHandler(this.modifyItemButton_Click);
+      // 
+      // lastUpdatedTextBox
+      // 
+      this.lastUpdatedTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.lastUpdatedTextBox.Location = new System.Drawing.Point(78, 19);
+      this.lastUpdatedTextBox.Name = "lastUpdatedTextBox";
+      this.lastUpdatedTextBox.Size = new System.Drawing.Size(467, 20);
+      this.lastUpdatedTextBox.TabIndex = 2;
+      // 
+      // lastUpdatedLabel
+      // 
+      this.lastUpdatedLabel.AutoSize = true;
+      this.lastUpdatedLabel.Location = new System.Drawing.Point(3, 22);
+      this.lastUpdatedLabel.Name = "lastUpdatedLabel";
+      this.lastUpdatedLabel.Size = new System.Drawing.Size(71, 13);
+      this.lastUpdatedLabel.TabIndex = 1;
+      this.lastUpdatedLabel.Text = "LastUpdated:";
+      // 
+      // optimizerItemView
+      // 
+      this.optimizerItemView.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.optimizerItemView.Caption = "NamedItem View";
+      this.optimizerItemView.Content = null;
+      this.optimizerItemView.Location = new System.Drawing.Point(6, 20);
+      this.optimizerItemView.Name = "optimizerItemView";
+      this.optimizerItemView.ReadOnly = false;
+      this.optimizerItemView.Size = new System.Drawing.Size(539, 51);
+      this.optimizerItemView.TabIndex = 0;
+      // 
+      // jobIdLabel
+      // 
+      this.jobIdLabel.AutoSize = true;
+      this.jobIdLabel.Location = new System.Drawing.Point(3, 6);
+      this.jobIdLabel.Name = "jobIdLabel";
+      this.jobIdLabel.Size = new System.Drawing.Size(36, 13);
+      this.jobIdLabel.TabIndex = 25;
+      this.jobIdLabel.Text = "TaskId:";
+      // 
+      // jobIdTextBox
+      // 
+      this.jobIdTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.jobIdTextBox.Location = new System.Drawing.Point(91, 6);
+      this.jobIdTextBox.Name = "jobIdTextBox";
+      this.jobIdTextBox.Size = new System.Drawing.Size(466, 20);
+      this.jobIdTextBox.TabIndex = 26;
+      // 
+      // 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.detailsTabPage);
+      this.tabControl.Controls.Add(this.stateLogTabPage);
+      this.tabControl.Location = new System.Drawing.Point(3, 3);
+      this.tabControl.Name = "tabControl";
+      this.tabControl.SelectedIndex = 0;
+      this.tabControl.Size = new System.Drawing.Size(571, 401);
+      this.tabControl.TabIndex = 25;
+      // 
+      // commandTextBox
+      // 
+      this.commandTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.commandTextBox.Location = new System.Drawing.Point(95, 41);
+      this.commandTextBox.Name = "commandTextBox";
+      this.commandTextBox.Size = new System.Drawing.Size(171, 20);
+      this.commandTextBox.TabIndex = 24;
+      // 
+      // commandLabel
+      // 
+      this.commandLabel.AutoSize = true;
+      this.commandLabel.Location = new System.Drawing.Point(7, 41);
+      this.commandLabel.Name = "commandLabel";
+      this.commandLabel.Size = new System.Drawing.Size(57, 13);
+      this.commandLabel.TabIndex = 25;
+      this.commandLabel.Text = "Command:";
+      // 
+      // HiveTaskView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.tabControl);
+      this.Name = "HiveTaskView";
+      this.Size = new System.Drawing.Size(577, 407);
+      this.stateLogTabPage.ResumeLayout(false);
+      this.detailsTabPage.ResumeLayout(false);
+      this.detailsTabPage.PerformLayout();
+      this.splitContainer1.Panel1.ResumeLayout(false);
+      this.splitContainer1.Panel2.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+      this.splitContainer1.ResumeLayout(false);
+      this.configurationGroupBox.ResumeLayout(false);
+      this.configurationGroupBox.PerformLayout();
+      this.jobStatusGroupBox.ResumeLayout(false);
+      this.jobStatusGroupBox.PerformLayout();
+      this.optimizerGroupBox.ResumeLayout(false);
+      this.optimizerGroupBox.PerformLayout();
+      this.tabControl.ResumeLayout(false);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    protected System.Windows.Forms.TabPage stateLogTabPage;
+    protected MainForm.WindowsForms.ViewHost stateLogViewHost;
+    protected System.Windows.Forms.TabPage detailsTabPage;
+    protected System.Windows.Forms.GroupBox optimizerGroupBox;
+    protected Core.Views.ItemView optimizerItemView;
+    protected System.Windows.Forms.GroupBox configurationGroupBox;
+    protected System.Windows.Forms.TextBox priorityTextBox;
+    protected System.Windows.Forms.Label priorityLabel;
+    protected System.Windows.Forms.TextBox coresNeededTextBox;
+    protected System.Windows.Forms.TextBox memoryNeededTextBox;
+    protected System.Windows.Forms.Label memoryNeededLabel;
+    protected System.Windows.Forms.Label coresNeededLabel;
+    protected System.Windows.Forms.Label computeInParallelLabel;
+    protected System.Windows.Forms.CheckBox computeInParallelCheckBox;
+    protected System.Windows.Forms.Label jobIdLabel;
+    protected System.Windows.Forms.TextBox jobIdTextBox;
+    protected System.Windows.Forms.GroupBox jobStatusGroupBox;
+    protected System.Windows.Forms.TextBox stateTextBox;
+    protected System.Windows.Forms.Label stateLabel;
+    protected System.Windows.Forms.TextBox dateFinishedTextBox;
+    protected System.Windows.Forms.TextBox executionTimeTextBox;
+    protected System.Windows.Forms.Label executionTimeLabel;
+    protected System.Windows.Forms.Label exceptionLabel;
+    protected System.Windows.Forms.Label dateFinishedLabel;
+    protected System.Windows.Forms.TextBox exceptionTextBox;
+    protected System.Windows.Forms.TabControl tabControl;
+    protected System.Windows.Forms.Button modifyItemButton;
+    protected System.Windows.Forms.TextBox lastUpdatedTextBox;
+    protected System.Windows.Forms.Label lastUpdatedLabel;
+    protected System.Windows.Forms.Label dateCalculatedLabel;
+    protected System.Windows.Forms.TextBox dateCalculatedText;
+    protected System.Windows.Forms.TextBox dateCreatedTextBox;
+    protected System.Windows.Forms.Label dateCreatedLabel;
+    protected System.Windows.Forms.SplitContainer splitContainer1;
+    protected System.Windows.Forms.TextBox commandTextBox;
+    protected System.Windows.Forms.Label commandLabel;
+
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/HiveTaskView.resx
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/HiveTaskView.resx	(revision 6727)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/HiveTaskView.resx	(revision 6727)
@@ -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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/OptimizerHiveTaskView.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/OptimizerHiveTaskView.cs	(revision 6727)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/OptimizerHiveTaskView.cs	(revision 6727)
@@ -0,0 +1,89 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Windows.Forms;
+using HeuristicLab.MainForm;
+
+namespace HeuristicLab.Clients.Hive.Views {
+  [View("OptimizerHiveTask View")]
+  [Content(typeof(OptimizerHiveTask), true)]
+  public partial class OptimizerHiveTaskView : HiveTaskView {
+    public new OptimizerHiveTask Content {
+      get { return (OptimizerHiveTask)base.Content; }
+      set {
+        if (base.Content != value) {
+          base.Content = value;
+        }
+      }
+    }
+
+    public OptimizerHiveTaskView() {
+      InitializeComponent();
+    }
+
+    protected override void Job_ItemChanged(object sender, EventArgs e) {
+      if (Content != null && Content.Task != null && Content.ItemTask.Item != null) {
+        runCollectionViewHost.Content = Content.ItemTask.Item.Runs;
+      } else {
+        runCollectionViewHost.Content = null;
+      }
+    }
+    #region Content Events
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.IsControllableChanged += new EventHandler(Content_IsControllableChanged);
+    }
+
+    protected override void DeregisterContentEvents() {
+      Content.IsControllableChanged -= new EventHandler(Content_IsControllableChanged);
+      base.DeregisterContentEvents();
+    }
+
+    protected virtual void Content_IsControllableChanged(object sender, EventArgs e) {
+      SetEnabledStateOfControls();
+    }
+
+    #endregion
+
+    #region Child Control Events
+    private void restartButton_Click(object sender, EventArgs e) {
+      Content.Restart();
+    }
+
+    private void pauseButton_Click(object sender, EventArgs e) {
+      Content.Pause();
+    }
+
+    private void stopButton_Click(object sender, EventArgs e) {
+      Content.Stop();
+    }
+    #endregion
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+
+      this.restartButton.Enabled = Content != null && Content.IsControllable && !Content.Task.Command.HasValue && (Content.Task.State == TaskState.Paused || Content.Task.State == TaskState.Failed || Content.Task.State == TaskState.Aborted);
+      this.pauseButton.Enabled = Content != null && Content.IsControllable && !Content.Task.Command.HasValue && Content.Task.State == TaskState.Calculating;
+      this.stopButton.Enabled = Content != null && Content.IsControllable && !Content.Task.Command.HasValue && (Content.Task.State == TaskState.Calculating || Content.Task.State == TaskState.Waiting || Content.Task.State == TaskState.Paused);
+    }
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/OptimizerHiveTaskView.designer.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/OptimizerHiveTaskView.designer.cs	(revision 6727)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/OptimizerHiveTaskView.designer.cs	(revision 6727)
@@ -0,0 +1,164 @@
+﻿namespace HeuristicLab.Clients.Hive.Views {
+  partial class OptimizerHiveTaskView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OptimizerHiveTaskView));
+      this.restartButton = new System.Windows.Forms.Button();
+      this.pauseButton = new System.Windows.Forms.Button();
+      this.stopButton = new System.Windows.Forms.Button();
+      this.runsTabPage = new System.Windows.Forms.TabPage();
+      this.runCollectionViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.stateLogTabPage.SuspendLayout();
+      this.detailsTabPage.SuspendLayout();
+      this.optimizerGroupBox.SuspendLayout();
+      this.configurationGroupBox.SuspendLayout();
+      this.jobStatusGroupBox.SuspendLayout();
+      this.tabControl.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
+      this.splitContainer1.Panel1.SuspendLayout();
+      this.splitContainer1.Panel2.SuspendLayout();
+      this.splitContainer1.SuspendLayout();
+      this.runsTabPage.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // detailsTabPage
+      // 
+      this.detailsTabPage.Controls.Add(this.restartButton);
+      this.detailsTabPage.Controls.Add(this.pauseButton);
+      this.detailsTabPage.Controls.Add(this.stopButton);
+      this.detailsTabPage.Controls.SetChildIndex(this.jobIdTextBox, 0);
+      this.detailsTabPage.Controls.SetChildIndex(this.jobIdLabel, 0);
+      this.detailsTabPage.Controls.SetChildIndex(this.optimizerGroupBox, 0);
+      this.detailsTabPage.Controls.SetChildIndex(this.splitContainer1, 0);
+      this.detailsTabPage.Controls.SetChildIndex(this.stopButton, 0);
+      this.detailsTabPage.Controls.SetChildIndex(this.pauseButton, 0);
+      this.detailsTabPage.Controls.SetChildIndex(this.restartButton, 0);
+      // 
+      // tabControl
+      // 
+      this.tabControl.Controls.Add(this.runsTabPage);
+      this.tabControl.Controls.SetChildIndex(this.runsTabPage, 0);
+      this.tabControl.Controls.SetChildIndex(this.stateLogTabPage, 0);
+      this.tabControl.Controls.SetChildIndex(this.detailsTabPage, 0);
+      // 
+      // showItemButton
+      // 
+      this.modifyItemButton.Text = "Modify Optimizer";
+      // 
+      // splitContainer1
+      // 
+      // 
+      // restartButton
+      // 
+      this.restartButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.restartButton.Image = ((System.Drawing.Image)(resources.GetObject("restartButton.Image")));
+      this.restartButton.Location = new System.Drawing.Point(3, 348);
+      this.restartButton.Name = "restartButton";
+      this.restartButton.Size = new System.Drawing.Size(24, 24);
+      this.restartButton.TabIndex = 34;
+      this.restartButton.UseVisualStyleBackColor = true;
+      this.restartButton.Click += new System.EventHandler(this.restartButton_Click);
+      // 
+      // pauseButton
+      // 
+      this.pauseButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.pauseButton.Enabled = false;
+      this.pauseButton.Image = ((System.Drawing.Image)(resources.GetObject("pauseButton.Image")));
+      this.pauseButton.Location = new System.Drawing.Point(33, 348);
+      this.pauseButton.Name = "pauseButton";
+      this.pauseButton.Size = new System.Drawing.Size(24, 24);
+      this.pauseButton.TabIndex = 35;
+      this.pauseButton.UseVisualStyleBackColor = true;
+      this.pauseButton.Click += new System.EventHandler(this.pauseButton_Click);
+      // 
+      // stopButton
+      // 
+      this.stopButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.stopButton.Image = ((System.Drawing.Image)(resources.GetObject("stopButton.Image")));
+      this.stopButton.Location = new System.Drawing.Point(63, 348);
+      this.stopButton.Name = "stopButton";
+      this.stopButton.Size = new System.Drawing.Size(24, 24);
+      this.stopButton.TabIndex = 36;
+      this.stopButton.UseVisualStyleBackColor = true;
+      this.stopButton.Click += new System.EventHandler(this.stopButton_Click);
+      // 
+      // runsTabPage
+      // 
+      this.runsTabPage.Controls.Add(this.runCollectionViewHost);
+      this.runsTabPage.Location = new System.Drawing.Point(4, 22);
+      this.runsTabPage.Name = "runsTabPage";
+      this.runsTabPage.Size = new System.Drawing.Size(563, 375);
+      this.runsTabPage.TabIndex = 6;
+      this.runsTabPage.Text = "Runs";
+      this.runsTabPage.UseVisualStyleBackColor = true;
+      // 
+      // runCollectionViewHost
+      // 
+      this.runCollectionViewHost.Caption = "View";
+      this.runCollectionViewHost.Content = null;
+      this.runCollectionViewHost.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.runCollectionViewHost.Enabled = false;
+      this.runCollectionViewHost.Location = new System.Drawing.Point(0, 0);
+      this.runCollectionViewHost.Name = "runCollectionViewHost";
+      this.runCollectionViewHost.ReadOnly = false;
+      this.runCollectionViewHost.Size = new System.Drawing.Size(563, 375);
+      this.runCollectionViewHost.TabIndex = 1;
+      this.runCollectionViewHost.ViewsLabelVisible = true;
+      this.runCollectionViewHost.ViewType = null;
+      // 
+      // OptimizerHiveTaskView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Name = "OptimizerHiveTaskView";
+      this.stateLogTabPage.ResumeLayout(false);
+      this.detailsTabPage.ResumeLayout(false);
+      this.detailsTabPage.PerformLayout();
+      this.optimizerGroupBox.ResumeLayout(false);
+      this.optimizerGroupBox.PerformLayout();
+      this.configurationGroupBox.ResumeLayout(false);
+      this.configurationGroupBox.PerformLayout();
+      this.jobStatusGroupBox.ResumeLayout(false);
+      this.jobStatusGroupBox.PerformLayout();
+      this.tabControl.ResumeLayout(false);
+      this.splitContainer1.Panel1.ResumeLayout(false);
+      this.splitContainer1.Panel2.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+      this.splitContainer1.ResumeLayout(false);
+      this.runsTabPage.ResumeLayout(false);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.Button restartButton;
+    private System.Windows.Forms.Button pauseButton;
+    private System.Windows.Forms.Button stopButton;
+    private System.Windows.Forms.TabPage runsTabPage;
+    private MainForm.WindowsForms.ViewHost runCollectionViewHost;
+
+
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/OptimizerHiveTaskView.resx
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/OptimizerHiveTaskView.resx	(revision 6727)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/OptimizerHiveTaskView.resx	(revision 6727)
@@ -0,0 +1,154 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="stopButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK/wAA
+        Cv8BNGKaggAAAWtJREFUOE/Nkz9IAmEYxl0KGqKtMVpaIiEoipYIgnByCSGhSQiCNBqCMiqwsr8clChF
+        YmYSSikeWEbZH2qwEhKhwhAXjQwKEbw0zyue7nO7hgtyqOEbf7/ne5+XVwJAUsorCSbB/0xAeT+xSBcw
+        685B52QwYU9jdOMFw+ZnDK0+YtCUyHzvSzACge/jH7hLcAg8FHB4w8IbZOEKsLD4s5AqdnheWLpAQJKj
+        TxyCUa4IOi/yWPPlsOJlMGePoU6+JS4g376NczgKsdg+y8PIg3pnBmPWV6ipMGq61sUFZOarCAf3JZ98
+        8I75XQKnoDEmoRg5RXW7QVxACvOHWdhO8lim36C1ptFvSEI5E4NsYA9VLUviAtK255qFcT+LSXsKahMP
+        66OQa0Po7HOholEvLiCr2jxmMG2LQEOFoBw/55M96FA50NpjRlmDTlxA9tym8qGpl0Z9twO1Mktx7srm
+        BZRLp34W/Oao/v4WvgBcI/R+TmAaZAAAAABJRU5ErkJggg==
+</value>
+  </data>
+  <data name="pauseButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK/wAA
+        Cv8BNGKaggAAAL5JREFUOE9j+P//PwMlmCLNIIsHoQG9m//+79rw63/e1EefQE5E56OHF4YXQJqvPvzz
+        Xzd0FVDtfwZ0PkED2tZ++3/r6e//qn6LwAag8wka0Lji8//LD3//l3ObBTYAnU/QgNrF7/+fuP77v5jd
+        JLAB6HyCBlTMe/V/94Wf//nNusEGoPMJGlAy+/n/9Sd//uc0aAUbgM4naEDB9Mf/F+z5/J9VpxFsADqf
+        oAGg+GfTbYIbgM4naACpGWvg8wIAkX3yJyVePz4AAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="restartButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK/wAA
+        Cv8BNGKaggAAALBJREFUOE9j+P//PwMlGKvmsv3ZbsQaitWAhBkR/4k1BKcBlmX6RBmC1YCoKUH/N9xa
+        /J8YQ7AaEDzBG2Q7UYZgNcCnyxlsAAhHLQrA6xKsBjg2W/zP2BAL1mzbrP9fp1jhv0QaN4hWQ48drAaY
+        1+ihaOZPYMGqGWQYVgP0SpXhNuPTjNMAlXwpsLMJacZpgHSGIFGacRogksyJ089EBSK20MaVNyjKiTi9
+        QGxOBKkDACT9xOni1RbMAAAAAElFTkSuQmCC
+</value>
+  </data>
+</root>
Index: anches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/DeleteJobTreeNodeAction.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/DeleteJobTreeNodeAction.cs	(revision 6726)
+++ 	(revision )
@@ -1,33 +1,0 @@
-﻿
-using System.Drawing;
-using HeuristicLab.Clients.Hive.Jobs;
-using HeuristicLab.Core;
-using HeuristicLab.Optimization;
-namespace HeuristicLab.Clients.Hive.Views.ExperimentManager.TreeView {
-  public class DeleteJobTreeNodeAction : IItemTreeNodeAction<HiveTask> {
-    private ItemCollection<HiveTask> hiveJobs;
-    
-    public DeleteJobTreeNodeAction(ItemCollection<HiveTask> hiveJobs) {
-      this.hiveJobs = hiveJobs;
-    }
-
-    public string Name {
-      get { return "Delete Task"; }
-    }
-
-    public Image Image {
-      get { return null; }
-    }
-
-    public void Execute(HiveTask item, HiveTask parentItem) {
-      if (parentItem == null) {
-        hiveJobs.Remove(item);
-      } else {
-        var experiment = parentItem.ItemTask.Item as Experiment;
-        if (experiment != null) {
-          experiment.Optimizers.Remove(((OptimizerTask)item.ItemTask).Item);
-        }
-      }
-    }
-  }
-}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/DeleteTaskTreeNodeAction.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/DeleteTaskTreeNodeAction.cs	(revision 6727)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/DeleteTaskTreeNodeAction.cs	(revision 6727)
@@ -0,0 +1,33 @@
+﻿
+using System.Drawing;
+using HeuristicLab.Clients.Hive.Jobs;
+using HeuristicLab.Core;
+using HeuristicLab.Optimization;
+namespace HeuristicLab.Clients.Hive.Views.ExperimentManager.TreeView {
+  public class DeleteTaskTreeNodeAction : IItemTreeNodeAction<HiveTask> {
+    private ItemCollection<HiveTask> hiveTasks;
+
+    public DeleteTaskTreeNodeAction(ItemCollection<HiveTask> hiveTasks) {
+      this.hiveTasks = hiveTasks;
+    }
+
+    public string Name {
+      get { return "Delete Task"; }
+    }
+
+    public Image Image {
+      get { return null; }
+    }
+
+    public void Execute(HiveTask item, HiveTask parentItem) {
+      if (parentItem == null) {
+        hiveTasks.Remove(item);
+      } else {
+        var experiment = parentItem.ItemTask.Item as Experiment;
+        if (experiment != null) {
+          experiment.Optimizers.Remove(((OptimizerTask)item.ItemTask).Item);
+        }
+      }
+    }
+  }
+}
Index: anches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/HiveJobItemTreeView.Designer.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/HiveJobItemTreeView.Designer.cs	(revision 6726)
+++ 	(revision )
@@ -1,53 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2011 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.Clients.Hive.Views.ExperimentManager {
-  partial class HiveJobItemTreeView {
-    /// <summary> 
-    /// Required designer variable.
-    /// </summary>
-    private System.ComponentModel.IContainer components = null;
-
-    /// <summary> 
-    /// Clean up any resources being used.
-    /// </summary>
-    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-    protected override void Dispose(bool disposing) {
-      if (disposing && (components != null)) {
-        components.Dispose();
-      }
-      base.Dispose(disposing);
-    }
-
-    #region Component Designer generated code
-
-    /// <summary> 
-    /// Required method for Designer support - do not modify 
-    /// the contents of this method with the code editor.
-    /// </summary>
-    private void InitializeComponent() {
-      components = new System.ComponentModel.Container();
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-    }
-
-    #endregion
-  }
-}
Index: anches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/HiveJobItemTreeView.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/HiveJobItemTreeView.cs	(revision 6726)
+++ 	(revision )
@@ -1,108 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2011 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.Clients.Hive.Jobs;
-using HeuristicLab.Core;
-using HeuristicLab.MainForm;
-using HeuristicLab.MainForm.WindowsForms;
-using HeuristicLab.Optimization;
-
-namespace HeuristicLab.Clients.Hive.Views.ExperimentManager {
-  [View("HiveTask ItemTreeView")]
-  [Content(typeof(ItemCollection<HiveTask>), IsDefaultView = false)]
-  public partial class HiveJobItemTreeView : ItemTreeView<HiveTask> {
-    public new ItemCollection<HiveTask> Content {
-      get { return (ItemCollection<HiveTask>)base.Content; }
-      set { base.Content = value; }
-    }
-
-    public HiveJobItemTreeView() {
-      InitializeComponent();
-    }
-
-    #region Register Content Events
-    protected override void DeregisterContentEvents() {
-      // TODO: Deregister your event handlers on the Content here
-      base.DeregisterContentEvents();
-    }
-    protected override void RegisterContentEvents() {
-      base.RegisterContentEvents();
-      // TODO: Register your event handlers on the Content here
-    }
-    #endregion
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      if (Content == null) {
-        // TODO: Put code here when content is null
-      } else {
-        // TODO: Put code here when content has been changed and is not null
-      }
-    }
-
-    protected override void SetEnabledStateOfControls() {
-      base.SetEnabledStateOfControls();
-      // TODO: Put code here to enable or disable controls based on whether the Content is/not null or the view is ReadOnly
-    }
-
-    #region Event Handlers
-    // TODO: Put event handlers here
-    #endregion
-
-    #region Child Control Events
-    protected override void addButton_Click(object sender, EventArgs e) {
-      IOptimizer optimizer = CreateItem<IOptimizer>();
-      if (optimizer != null) {
-        if (treeView.SelectedNode == null) {
-          Content.Add(new OptimizerHiveTask(optimizer));
-        } else {
-          var experiment = ((HiveTask)treeView.SelectedNode.Tag).ItemTask.Item as Experiment;
-          if (experiment != null) {
-            experiment.Optimizers.Add(optimizer);
-          }
-        }
-      }
-    }
-
-    protected override void removeButton_Click(object sender, EventArgs e) {
-      if (treeView.SelectedNode != null) {
-        var selectedItem = (HiveTask)treeView.SelectedNode.Tag;
-        var parentItem = GetParentItem(selectedItem);
-        if (parentItem == null) {
-          Content.Remove((HiveTask)treeView.SelectedNode.Tag);
-        } else {
-          var experiment = parentItem.ItemTask.Item as Experiment;
-          if (experiment != null) {
-            experiment.Optimizers.Remove(((OptimizerTask)selectedItem.ItemTask).Item);
-          }
-        }
-      }
-    }
-    #endregion
-
-    protected override ICollection<IItemTreeNodeAction<HiveTask>> GetTreeNodeItemActions(HiveTask selectedItem) {
-      return base.GetTreeNodeItemActions(selectedItem);
-    }
-  }
-}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/HiveTaskItemTreeView.Designer.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/HiveTaskItemTreeView.Designer.cs	(revision 6727)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/HiveTaskItemTreeView.Designer.cs	(revision 6727)
@@ -0,0 +1,53 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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.Clients.Hive.Views.ExperimentManager {
+  partial class HiveTaskItemTreeView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      components = new System.ComponentModel.Container();
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+    }
+
+    #endregion
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/HiveTaskItemTreeView.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/HiveTaskItemTreeView.cs	(revision 6727)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/HiveTaskItemTreeView.cs	(revision 6727)
@@ -0,0 +1,108 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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.Clients.Hive.Jobs;
+using HeuristicLab.Core;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+using HeuristicLab.Optimization;
+
+namespace HeuristicLab.Clients.Hive.Views.ExperimentManager {
+  [View("HiveTask ItemTreeView")]
+  [Content(typeof(ItemCollection<HiveTask>), IsDefaultView = false)]
+  public partial class HiveTaskItemTreeView : ItemTreeView<HiveTask> {
+    public new ItemCollection<HiveTask> Content {
+      get { return (ItemCollection<HiveTask>)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public HiveTaskItemTreeView() {
+      InitializeComponent();
+    }
+
+    #region Register Content Events
+    protected override void DeregisterContentEvents() {
+      // TODO: Deregister your event handlers on the Content here
+      base.DeregisterContentEvents();
+    }
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      // TODO: Register your event handlers on the Content here
+    }
+    #endregion
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content == null) {
+        // TODO: Put code here when content is null
+      } else {
+        // TODO: Put code here when content has been changed and is not null
+      }
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      // TODO: Put code here to enable or disable controls based on whether the Content is/not null or the view is ReadOnly
+    }
+
+    #region Event Handlers
+    // TODO: Put event handlers here
+    #endregion
+
+    #region Child Control Events
+    protected override void addButton_Click(object sender, EventArgs e) {
+      IOptimizer optimizer = CreateItem<IOptimizer>();
+      if (optimizer != null) {
+        if (treeView.SelectedNode == null) {
+          Content.Add(new OptimizerHiveTask(optimizer));
+        } else {
+          var experiment = ((HiveTask)treeView.SelectedNode.Tag).ItemTask.Item as Experiment;
+          if (experiment != null) {
+            experiment.Optimizers.Add(optimizer);
+          }
+        }
+      }
+    }
+
+    protected override void removeButton_Click(object sender, EventArgs e) {
+      if (treeView.SelectedNode != null) {
+        var selectedItem = (HiveTask)treeView.SelectedNode.Tag;
+        var parentItem = GetParentItem(selectedItem);
+        if (parentItem == null) {
+          Content.Remove((HiveTask)treeView.SelectedNode.Tag);
+        } else {
+          var experiment = parentItem.ItemTask.Item as Experiment;
+          if (experiment != null) {
+            experiment.Optimizers.Remove(((OptimizerTask)selectedItem.ItemTask).Item);
+          }
+        }
+      }
+    }
+    #endregion
+
+    protected override ICollection<IItemTreeNodeAction<HiveTask>> GetTreeNodeItemActions(HiveTask selectedItem) {
+      return base.GetTreeNodeItemActions(selectedItem);
+    }
+  }
+}
Index: anches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/NewExperimentTreeNodeAction.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/NewExperimentTreeNodeAction.cs	(revision 6726)
+++ 	(revision )
@@ -1,51 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2011 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.Drawing;
-using HeuristicLab.Core;
-using HeuristicLab.Optimization;
-
-namespace HeuristicLab.Clients.Hive {
-  public class NewExperimentTreeNodeAction : IItemTreeNodeAction<HiveTask> {
-    private ItemCollection<HiveTask> hiveJobs;
-
-    public NewExperimentTreeNodeAction(ItemCollection<HiveTask> hiveJobs) {
-      this.hiveJobs = hiveJobs;
-    }
-
-    public string Name { 
-      get { return "New Experiment..."; } 
-    }
-
-    public Image Image {
-      get { return HeuristicLab.Common.Resources.VSImageLibrary.NewDocument; }
-    }
-
-    public void Execute(HiveTask item, HiveTask parentItem) {
-      if (item != null) {
-        var experiment = item.ItemTask.Item as Experiment;
-        experiment.Optimizers.Add(new Experiment());
-      } else {
-        hiveJobs.Add(new OptimizerHiveTask(new Experiment()));
-      }
-    }
-  }
-}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/NewTaskTreeNodeAction.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/NewTaskTreeNodeAction.cs	(revision 6727)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.3/TreeView/NewTaskTreeNodeAction.cs	(revision 6727)
@@ -0,0 +1,51 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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.Drawing;
+using HeuristicLab.Core;
+using HeuristicLab.Optimization;
+
+namespace HeuristicLab.Clients.Hive {
+  public class NewTaskTreeNodeAction : IItemTreeNodeAction<HiveTask> {
+    private ItemCollection<HiveTask> hiveJobs;
+
+    public NewTaskTreeNodeAction(ItemCollection<HiveTask> hiveJobs) {
+      this.hiveJobs = hiveJobs;
+    }
+
+    public string Name {
+      get { return "New Task..."; }
+    }
+
+    public Image Image {
+      get { return HeuristicLab.Common.Resources.VSImageLibrary.NewDocument; }
+    }
+
+    public void Execute(HiveTask item, HiveTask parentItem) {
+      if (item != null) {
+        var experiment = item.ItemTask.Item as Experiment;
+        experiment.Optimizers.Add(new Experiment());
+      } else {
+        hiveJobs.Add(new OptimizerHiveTask(new Experiment()));
+      }
+    }
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.3/HiveJobs/HiveTask.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.3/HiveJobs/HiveTask.cs	(revision 6726)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.3/HiveJobs/HiveTask.cs	(revision 6727)
@@ -286,20 +286,20 @@
 
     #region Event Handler
-    public event EventHandler JobChanged;
+    public event EventHandler TaskChanged;
     private void OnTaskChanged() {
-      EventHandler handler = JobChanged;
+      EventHandler handler = TaskChanged;
       if (handler != null) handler(this, EventArgs.Empty);
     }
 
-    public event EventHandler JobStateChanged;
+    public event EventHandler TaskStateChanged;
     private void OnTaskStateChanged() {
-      EventHandler handler = JobStateChanged;
+      EventHandler handler = TaskStateChanged;
       if (handler != null) handler(this, EventArgs.Empty);
     }
 
-    public event EventHandler ItemJobChanged;
+    public event EventHandler ItemTaskChanged;
     private void OnItemTaskChanged() {
       ItemJob_ComputeInParallelChanged(this, EventArgs.Empty);
-      var handler = ItemJobChanged;
+      var handler = ItemTaskChanged;
       if (handler != null) handler(this, EventArgs.Empty);
     }
