Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/GanttChart.Designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/GanttChart.Designer.cs	(revision 5718)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/GanttChart.Designer.cs	(revision 5779)
@@ -51,5 +51,5 @@
       series1.YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Time;
       this.chart.Series.Add(series1);
-      this.chart.Size = new System.Drawing.Size(709, 347);
+      this.chart.Size = new System.Drawing.Size(687, 347);
       this.chart.TabIndex = 0;
       this.chart.Text = "chart";
@@ -61,5 +61,5 @@
       this.Controls.Add(this.chart);
       this.Name = "GanttChart";
-      this.Size = new System.Drawing.Size(709, 347);
+      this.Size = new System.Drawing.Size(687, 347);
       ((System.ComponentModel.ISupportInitialize)(this.chart)).EndInit();
       this.ResumeLayout(false);
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/HiveExperimentView.Designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/HiveExperimentView.Designer.cs	(revision 5718)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/HiveExperimentView.Designer.cs	(revision 5779)
@@ -52,4 +52,6 @@
       this.experimentNamedItemView = new HeuristicLab.Core.Views.NamedItemView();
       this.viewExperimentButton = new System.Windows.Forms.Button();
+      this.jobsTabPage = new System.Windows.Forms.TabPage();
+      this.jobsTreeView = new HeuristicLab.Clients.Hive.Views.ItemTreeView();
       this.logTabPage = new System.Windows.Forms.TabPage();
       this.logView = new HeuristicLab.Core.Views.LogView();
@@ -67,12 +69,10 @@
       this.downloadExperimentPanel = new System.Windows.Forms.Panel();
       this.useLocalPluginsCheckBox = new System.Windows.Forms.CheckBox();
-      this.jobsTabPage = new System.Windows.Forms.TabPage();
-      this.jobsTreeView = new HeuristicLab.Clients.Hive.Views.ItemTreeView();
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
       this.tabControl.SuspendLayout();
       this.experimentTabPage.SuspendLayout();
+      this.jobsTabPage.SuspendLayout();
       this.logTabPage.SuspendLayout();
       this.downloadExperimentPanel.SuspendLayout();
-      this.jobsTabPage.SuspendLayout();
       this.SuspendLayout();
       // 
@@ -161,4 +161,27 @@
       this.viewExperimentButton.Click += new System.EventHandler(this.showExperimentButton_Click);
       // 
+      // jobsTabPage
+      // 
+      this.jobsTabPage.Controls.Add(this.jobsTreeView);
+      this.jobsTabPage.Location = new System.Drawing.Point(4, 22);
+      this.jobsTabPage.Name = "jobsTabPage";
+      this.jobsTabPage.Size = new System.Drawing.Size(791, 494);
+      this.jobsTabPage.TabIndex = 5;
+      this.jobsTabPage.Text = "Jobs";
+      this.jobsTabPage.UseVisualStyleBackColor = true;
+      // 
+      // jobsTreeView
+      // 
+      this.jobsTreeView.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.jobsTreeView.Caption = "ItemTree View";
+      this.jobsTreeView.Content = null;
+      this.jobsTreeView.Location = new System.Drawing.Point(2, 3);
+      this.jobsTreeView.Name = "jobsTreeView";
+      this.jobsTreeView.ReadOnly = false;
+      this.jobsTreeView.Size = new System.Drawing.Size(786, 488);
+      this.jobsTreeView.TabIndex = 0;
+      // 
       // logTabPage
       // 
@@ -330,27 +353,4 @@
       this.useLocalPluginsCheckBox.UseVisualStyleBackColor = true;
       this.useLocalPluginsCheckBox.CheckedChanged += new System.EventHandler(this.useLocalPluginsCheckBox_CheckedChanged);
-      // 
-      // jobsTabPage
-      // 
-      this.jobsTabPage.Controls.Add(this.jobsTreeView);
-      this.jobsTabPage.Location = new System.Drawing.Point(4, 22);
-      this.jobsTabPage.Name = "jobsTabPage";
-      this.jobsTabPage.Size = new System.Drawing.Size(791, 494);
-      this.jobsTabPage.TabIndex = 5;
-      this.jobsTabPage.Text = "Jobs";
-      this.jobsTabPage.UseVisualStyleBackColor = true;
-      // 
-      // jobsTreeView
-      // 
-      this.jobsTreeView.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.jobsTreeView.Caption = "ItemTree View";
-      this.jobsTreeView.Content = null;
-      this.jobsTreeView.Location = new System.Drawing.Point(2, 3);
-      this.jobsTreeView.Name = "jobsTreeView";
-      this.jobsTreeView.ReadOnly = false;
-      this.jobsTreeView.Size = new System.Drawing.Size(786, 488);
-      this.jobsTreeView.TabIndex = 0;
       // 
       // HiveExperimentView
@@ -393,7 +393,7 @@
       this.tabControl.ResumeLayout(false);
       this.experimentTabPage.ResumeLayout(false);
+      this.jobsTabPage.ResumeLayout(false);
       this.logTabPage.ResumeLayout(false);
       this.downloadExperimentPanel.ResumeLayout(false);
-      this.jobsTabPage.ResumeLayout(false);
       this.ResumeLayout(false);
       this.PerformLayout();
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/HiveJobView.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/HiveJobView.cs	(revision 5718)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/HiveJobView.cs	(revision 5779)
@@ -107,5 +107,5 @@
         if (Content != null && Content.Job != null) {
           this.jobIdTextBox.Text = Content.Job.Id.ToString();
-          this.dateCreatedTextBox.Text = Content.Job.DateCreated.HasValue ? Content.Job.DateCreated.ToString() : "-";
+          this.dateCreatedTextBox.Text = Content.Job.DateCreated.HasValue ? Content.Job.DateCreated.ToString() : string.Empty;
           this.priorityTextBox.Text = Content.Job.Priority.ToString();
           this.coresNeededTextBox.Text = Content.Job.CoresNeeded.ToString();
@@ -129,5 +129,5 @@
           this.executionTimeTextBox.Text = Content.Job.ExecutionTime.ToString();
           this.dateFinishedTextBox.Text = Content.Job.DateFinished.ToString();
-          this.exceptionTextBox.Text = Content.Job.CurrentStateLog.Exception;
+          this.exceptionTextBox.Text = Content.Job.CurrentStateLog != null ? Content.Job.CurrentStateLog.Exception : string.Empty;
           if (Content.OptimizerJob.ComputeInParallel) {
             this.stateLogViewHost.Content = new StateLogListList(
@@ -145,4 +145,5 @@
           this.stateLogViewHost.Content = null;
         }
+        SetEnabledStateOfControls();
       }
     }
@@ -163,4 +164,8 @@
       this.computeInParallelCheckBox.Enabled = !this.ReadOnly && this.Content != null && this.Content.OptimizerJob != null && this.Content.OptimizerJob.IsParallelizable;
 
+      this.restartButton.Enabled = Content != null && Content.Job.State == JobState.Paused;
+      this.pauseButton.Enabled = Content != null && Content.Job.State == JobState.Calculating;
+      this.stopButton.Enabled = Content != null && (Content.Job.State == JobState.Calculating || Content.Job.State == JobState.Waiting || Content.Job.State == JobState.Paused);
+
       optimizerNamedItemView.ReadOnly = true;
     }
@@ -180,4 +185,23 @@
       }
     }
+
+    private 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;
+      }
+    }
+
+    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();
+    }
   }
 }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/HiveJobView.designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/HiveJobView.designer.cs	(revision 5718)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/HiveJobView.designer.cs	(revision 5779)
@@ -24,4 +24,5 @@
     /// </summary>
     private void InitializeComponent() {
+      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(HiveJobView));
       this.logTabPage = new System.Windows.Forms.TabPage();
       this.logView = new HeuristicLab.Core.Views.LogView();
@@ -31,38 +32,41 @@
       this.runCollectionViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
       this.detailsTabPage = new System.Windows.Forms.TabPage();
-      this.jobStatusGroupBox = new System.Windows.Forms.GroupBox();
-      this.exceptionTextBox = new System.Windows.Forms.TextBox();
-      this.dateFinishedLabel = new System.Windows.Forms.Label();
-      this.dateCreatedLabel = new System.Windows.Forms.Label();
-      this.exceptionLabel = new System.Windows.Forms.Label();
-      this.executionTimeLabel = new System.Windows.Forms.Label();
-      this.dateCreatedTextBox = new System.Windows.Forms.TextBox();
-      this.executionTimeTextBox = new System.Windows.Forms.TextBox();
-      this.dateFinishedTextBox = new System.Windows.Forms.TextBox();
-      this.dateCalculatedText = new System.Windows.Forms.TextBox();
-      this.stateLabel = new System.Windows.Forms.Label();
-      this.dateCalculatedLabel = new System.Windows.Forms.Label();
-      this.stateTextBox = new System.Windows.Forms.TextBox();
-      this.jobIdTextBox = new System.Windows.Forms.TextBox();
-      this.jobIdLabel = new System.Windows.Forms.Label();
-      this.configurationGroupBox = new System.Windows.Forms.GroupBox();
-      this.computeInParallelCheckBox = new System.Windows.Forms.CheckBox();
-      this.computeInParallelLabel = new System.Windows.Forms.Label();
-      this.coresNeededLabel = new System.Windows.Forms.Label();
-      this.memoryNeededLabel = new System.Windows.Forms.Label();
-      this.memoryNeededTextBox = new System.Windows.Forms.TextBox();
-      this.coresNeededTextBox = new System.Windows.Forms.TextBox();
-      this.priorityLabel = new System.Windows.Forms.Label();
-      this.priorityTextBox = new System.Windows.Forms.TextBox();
       this.optimizerGroupBox = new System.Windows.Forms.GroupBox();
       this.optimizerNamedItemView = new HeuristicLab.Core.Views.NamedItemView();
+      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.jobIdLabel = new System.Windows.Forms.Label();
+      this.jobIdTextBox = new System.Windows.Forms.TextBox();
+      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.tabControl = new System.Windows.Forms.TabControl();
+      this.restartButton = new System.Windows.Forms.Button();
+      this.pauseButton = new System.Windows.Forms.Button();
+      this.stopButton = new System.Windows.Forms.Button();
       this.logTabPage.SuspendLayout();
       this.stateLogTabPage.SuspendLayout();
       this.runsTabPage.SuspendLayout();
       this.detailsTabPage.SuspendLayout();
+      this.optimizerGroupBox.SuspendLayout();
+      this.configurationGroupBox.SuspendLayout();
       this.jobStatusGroupBox.SuspendLayout();
-      this.configurationGroupBox.SuspendLayout();
-      this.optimizerGroupBox.SuspendLayout();
       this.tabControl.SuspendLayout();
       this.SuspendLayout();
@@ -74,5 +78,5 @@
       this.logTabPage.Name = "logTabPage";
       this.logTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.logTabPage.Size = new System.Drawing.Size(619, 492);
+      this.logTabPage.Size = new System.Drawing.Size(406, 492);
       this.logTabPage.TabIndex = 1;
       this.logTabPage.Text = "Log";
@@ -97,5 +101,5 @@
       this.stateLogTabPage.Location = new System.Drawing.Point(4, 22);
       this.stateLogTabPage.Name = "stateLogTabPage";
-      this.stateLogTabPage.Size = new System.Drawing.Size(619, 492);
+      this.stateLogTabPage.Size = new System.Drawing.Size(611, 492);
       this.stateLogTabPage.TabIndex = 5;
       this.stateLogTabPage.Text = "State";
@@ -104,14 +108,12 @@
       // stateLogViewHost
       // 
-      this.stateLogViewHost.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.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(619, 492);
+      this.stateLogViewHost.Size = new System.Drawing.Size(611, 492);
       this.stateLogViewHost.TabIndex = 0;
       this.stateLogViewHost.ViewsLabelVisible = true;
@@ -123,5 +125,5 @@
       this.runsTabPage.Location = new System.Drawing.Point(4, 22);
       this.runsTabPage.Name = "runsTabPage";
-      this.runsTabPage.Size = new System.Drawing.Size(619, 492);
+      this.runsTabPage.Size = new System.Drawing.Size(406, 492);
       this.runsTabPage.TabIndex = 4;
       this.runsTabPage.Text = "Runs";
@@ -146,4 +148,7 @@
       // detailsTabPage
       // 
+      this.detailsTabPage.Controls.Add(this.restartButton);
+      this.detailsTabPage.Controls.Add(this.pauseButton);
+      this.detailsTabPage.Controls.Add(this.stopButton);
       this.detailsTabPage.Controls.Add(this.optimizerGroupBox);
       this.detailsTabPage.Controls.Add(this.configurationGroupBox);
@@ -154,8 +159,142 @@
       this.detailsTabPage.Name = "detailsTabPage";
       this.detailsTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.detailsTabPage.Size = new System.Drawing.Size(619, 492);
+      this.detailsTabPage.Size = new System.Drawing.Size(611, 492);
       this.detailsTabPage.TabIndex = 0;
       this.detailsTabPage.Text = "Details";
       this.detailsTabPage.UseVisualStyleBackColor = true;
+      // 
+      // 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.optimizerNamedItemView);
+      this.optimizerGroupBox.Location = new System.Drawing.Point(6, 29);
+      this.optimizerGroupBox.Name = "optimizerGroupBox";
+      this.optimizerGroupBox.Size = new System.Drawing.Size(599, 74);
+      this.optimizerGroupBox.TabIndex = 28;
+      this.optimizerGroupBox.TabStop = false;
+      this.optimizerGroupBox.Text = "Optimizer";
+      // 
+      // optimizerNamedItemView
+      // 
+      this.optimizerNamedItemView.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.optimizerNamedItemView.Caption = "NamedItem View";
+      this.optimizerNamedItemView.Content = null;
+      this.optimizerNamedItemView.Location = new System.Drawing.Point(6, 20);
+      this.optimizerNamedItemView.Name = "optimizerNamedItemView";
+      this.optimizerNamedItemView.ReadOnly = false;
+      this.optimizerNamedItemView.Size = new System.Drawing.Size(587, 51);
+      this.optimizerNamedItemView.TabIndex = 0;
+      // 
+      // configurationGroupBox
+      // 
+      this.configurationGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      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.Location = new System.Drawing.Point(6, 106);
+      this.configurationGroupBox.Name = "configurationGroupBox";
+      this.configurationGroupBox.Size = new System.Drawing.Size(599, 119);
+      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(485, 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(485, 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(485, 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);
+      // 
+      // 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 = "JobId:";
+      // 
+      // 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(514, 20);
+      this.jobIdTextBox.TabIndex = 26;
       // 
       // jobStatusGroupBox
@@ -177,17 +316,98 @@
       this.jobStatusGroupBox.Location = new System.Drawing.Point(6, 226);
       this.jobStatusGroupBox.Name = "jobStatusGroupBox";
-      this.jobStatusGroupBox.Size = new System.Drawing.Size(610, 162);
+      this.jobStatusGroupBox.Size = new System.Drawing.Size(599, 162);
       this.jobStatusGroupBox.TabIndex = 24;
       this.jobStatusGroupBox.TabStop = false;
       this.jobStatusGroupBox.Text = "Job Status";
       // 
-      // 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, 129);
-      this.exceptionTextBox.Name = "exceptionTextBox";
-      this.exceptionTextBox.Size = new System.Drawing.Size(509, 20);
-      this.exceptionTextBox.TabIndex = 10;
+      // 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(498, 20);
+      this.stateTextBox.TabIndex = 2;
+      // 
+      // dateCalculatedLabel
+      // 
+      this.dateCalculatedLabel.AutoSize = true;
+      this.dateCalculatedLabel.Location = new System.Drawing.Point(7, 85);
+      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, 85);
+      this.dateCalculatedText.Name = "dateCalculatedText";
+      this.dateCalculatedText.Size = new System.Drawing.Size(498, 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, 107);
+      this.dateFinishedTextBox.Name = "dateFinishedTextBox";
+      this.dateFinishedTextBox.Size = new System.Drawing.Size(498, 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, 41);
+      this.executionTimeTextBox.Name = "executionTimeTextBox";
+      this.executionTimeTextBox.Size = new System.Drawing.Size(498, 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, 63);
+      this.dateCreatedTextBox.Name = "dateCreatedTextBox";
+      this.dateCreatedTextBox.Size = new System.Drawing.Size(498, 20);
+      this.dateCreatedTextBox.TabIndex = 5;
+      // 
+      // executionTimeLabel
+      // 
+      this.executionTimeLabel.AutoSize = true;
+      this.executionTimeLabel.Location = new System.Drawing.Point(7, 41);
+      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, 129);
+      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, 63);
+      this.dateCreatedLabel.Name = "dateCreatedLabel";
+      this.dateCreatedLabel.Size = new System.Drawing.Size(70, 13);
+      this.dateCreatedLabel.TabIndex = 14;
+      this.dateCreatedLabel.Text = "DateCreated:";
       // 
       // dateFinishedLabel
@@ -200,225 +420,13 @@
       this.dateFinishedLabel.Text = "DateFinished:";
       // 
-      // dateCreatedLabel
-      // 
-      this.dateCreatedLabel.AutoSize = true;
-      this.dateCreatedLabel.Location = new System.Drawing.Point(7, 63);
-      this.dateCreatedLabel.Name = "dateCreatedLabel";
-      this.dateCreatedLabel.Size = new System.Drawing.Size(70, 13);
-      this.dateCreatedLabel.TabIndex = 14;
-      this.dateCreatedLabel.Text = "DateCreated:";
-      // 
-      // exceptionLabel
-      // 
-      this.exceptionLabel.AutoSize = true;
-      this.exceptionLabel.Location = new System.Drawing.Point(7, 129);
-      this.exceptionLabel.Name = "exceptionLabel";
-      this.exceptionLabel.Size = new System.Drawing.Size(57, 13);
-      this.exceptionLabel.TabIndex = 19;
-      this.exceptionLabel.Text = "Exception:";
-      // 
-      // executionTimeLabel
-      // 
-      this.executionTimeLabel.AutoSize = true;
-      this.executionTimeLabel.Location = new System.Drawing.Point(7, 41);
-      this.executionTimeLabel.Name = "executionTimeLabel";
-      this.executionTimeLabel.Size = new System.Drawing.Size(80, 13);
-      this.executionTimeLabel.TabIndex = 13;
-      this.executionTimeLabel.Text = "ExecutionTime:";
-      // 
-      // 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, 63);
-      this.dateCreatedTextBox.Name = "dateCreatedTextBox";
-      this.dateCreatedTextBox.Size = new System.Drawing.Size(509, 20);
-      this.dateCreatedTextBox.TabIndex = 5;
-      // 
-      // executionTimeTextBox
-      // 
-      this.executionTimeTextBox.Location = new System.Drawing.Point(95, 41);
-      this.executionTimeTextBox.Name = "executionTimeTextBox";
-      this.executionTimeTextBox.Size = new System.Drawing.Size(509, 20);
-      this.executionTimeTextBox.TabIndex = 4;
-      // 
-      // 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, 107);
-      this.dateFinishedTextBox.Name = "dateFinishedTextBox";
-      this.dateFinishedTextBox.Size = new System.Drawing.Size(509, 20);
-      this.dateFinishedTextBox.TabIndex = 6;
-      // 
-      // 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, 85);
-      this.dateCalculatedText.Name = "dateCalculatedText";
-      this.dateCalculatedText.Size = new System.Drawing.Size(509, 20);
-      this.dateCalculatedText.TabIndex = 22;
-      // 
-      // 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:";
-      // 
-      // dateCalculatedLabel
-      // 
-      this.dateCalculatedLabel.AutoSize = true;
-      this.dateCalculatedLabel.Location = new System.Drawing.Point(7, 85);
-      this.dateCalculatedLabel.Name = "dateCalculatedLabel";
-      this.dateCalculatedLabel.Size = new System.Drawing.Size(83, 13);
-      this.dateCalculatedLabel.TabIndex = 23;
-      this.dateCalculatedLabel.Text = "DateCalculated:";
-      // 
-      // 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(509, 20);
-      this.stateTextBox.TabIndex = 2;
-      // 
-      // 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(525, 20);
-      this.jobIdTextBox.TabIndex = 26;
-      // 
-      // 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 = "JobId:";
-      // 
-      // configurationGroupBox
-      // 
-      this.configurationGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      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.Location = new System.Drawing.Point(6, 105);
-      this.configurationGroupBox.Name = "configurationGroupBox";
-      this.configurationGroupBox.Size = new System.Drawing.Size(610, 119);
-      this.configurationGroupBox.TabIndex = 27;
-      this.configurationGroupBox.TabStop = false;
-      this.configurationGroupBox.Text = "Configuration";
-      // 
-      // 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);
-      // 
-      // 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:";
-      // 
-      // 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:";
-      // 
-      // 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:";
-      // 
-      // 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(496, 20);
-      this.memoryNeededTextBox.TabIndex = 38;
-      // 
-      // 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(496, 20);
-      this.coresNeededTextBox.TabIndex = 37;
-      // 
-      // 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:";
-      // 
-      // 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(496, 20);
-      this.priorityTextBox.TabIndex = 41;
-      // 
-      // 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.optimizerNamedItemView);
-      this.optimizerGroupBox.Location = new System.Drawing.Point(6, 29);
-      this.optimizerGroupBox.Name = "optimizerGroupBox";
-      this.optimizerGroupBox.Size = new System.Drawing.Size(610, 74);
-      this.optimizerGroupBox.TabIndex = 28;
-      this.optimizerGroupBox.TabStop = false;
-      this.optimizerGroupBox.Text = "Optimizer";
-      // 
-      // optimizerNamedItemView
-      // 
-      this.optimizerNamedItemView.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.optimizerNamedItemView.Caption = "NamedItem View";
-      this.optimizerNamedItemView.Content = null;
-      this.optimizerNamedItemView.Location = new System.Drawing.Point(6, 20);
-      this.optimizerNamedItemView.Name = "optimizerNamedItemView";
-      this.optimizerNamedItemView.ReadOnly = false;
-      this.optimizerNamedItemView.Size = new System.Drawing.Size(598, 51);
-      this.optimizerNamedItemView.TabIndex = 0;
+      // 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, 129);
+      this.exceptionTextBox.Name = "exceptionTextBox";
+      this.exceptionTextBox.Size = new System.Drawing.Size(498, 20);
+      this.exceptionTextBox.TabIndex = 10;
+      this.exceptionTextBox.DoubleClick += new System.EventHandler(this.exceptionTextBox_DoubleClick);
       // 
       // tabControl
@@ -434,6 +442,40 @@
       this.tabControl.Name = "tabControl";
       this.tabControl.SelectedIndex = 0;
-      this.tabControl.Size = new System.Drawing.Size(627, 518);
+      this.tabControl.Size = new System.Drawing.Size(619, 518);
       this.tabControl.TabIndex = 25;
+      // 
+      // 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, 465);
+      this.restartButton.Name = "restartButton";
+      this.restartButton.Size = new System.Drawing.Size(24, 24);
+      this.restartButton.TabIndex = 30;
+      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, 465);
+      this.pauseButton.Name = "pauseButton";
+      this.pauseButton.Size = new System.Drawing.Size(24, 24);
+      this.pauseButton.TabIndex = 31;
+      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, 465);
+      this.stopButton.Name = "stopButton";
+      this.stopButton.Size = new System.Drawing.Size(24, 24);
+      this.stopButton.TabIndex = 32;
+      this.stopButton.UseVisualStyleBackColor = true;
+      this.stopButton.Click += new System.EventHandler(this.stopButton_Click);
       // 
       // HiveJobView
@@ -443,5 +485,5 @@
       this.Controls.Add(this.tabControl);
       this.Name = "HiveJobView";
-      this.Size = new System.Drawing.Size(633, 524);
+      this.Size = new System.Drawing.Size(625, 524);
       this.logTabPage.ResumeLayout(false);
       this.stateLogTabPage.ResumeLayout(false);
@@ -449,9 +491,9 @@
       this.detailsTabPage.ResumeLayout(false);
       this.detailsTabPage.PerformLayout();
+      this.optimizerGroupBox.ResumeLayout(false);
+      this.configurationGroupBox.ResumeLayout(false);
+      this.configurationGroupBox.PerformLayout();
       this.jobStatusGroupBox.ResumeLayout(false);
       this.jobStatusGroupBox.PerformLayout();
-      this.configurationGroupBox.ResumeLayout(false);
-      this.configurationGroupBox.PerformLayout();
-      this.optimizerGroupBox.ResumeLayout(false);
       this.tabControl.ResumeLayout(false);
       this.ResumeLayout(false);
@@ -495,4 +537,7 @@
     private System.Windows.Forms.TextBox exceptionTextBox;
     private System.Windows.Forms.TabControl tabControl;
+    private System.Windows.Forms.Button restartButton;
+    private System.Windows.Forms.Button pauseButton;
+    private System.Windows.Forms.Button stopButton;
 
   }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/HiveJobView.resx
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/HiveJobView.resx	(revision 5718)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/HiveJobView.resx	(revision 5779)
@@ -118,3 +118,37 @@
     <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="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>
+  <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="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>
 </root>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/ItemTreeView.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/ItemTreeView.cs	(revision 5718)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/ItemTreeView.cs	(revision 5779)
@@ -232,4 +232,17 @@
       }
     }
+
+    private void treeView_DoubleClick(object sender, EventArgs e) {
+      if (treeView.SelectedNode != null) {
+        var item = treeView.SelectedNode.Tag as IItemTree;
+        if (item != null) {
+          IContentView view = MainFormManager.MainForm.ShowContent(item);
+          if (view != null) {
+            view.ReadOnly = ReadOnly;
+            view.Locked = Locked;
+          }
+        }
+      }
+    }
   }
 }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/ItemTreeView.designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/ItemTreeView.designer.cs	(revision 5718)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/ItemTreeView.designer.cs	(revision 5779)
@@ -58,4 +58,5 @@
       // 
       this.treeView.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.treeView.HideSelection = false;
       this.treeView.ImageIndex = 0;
       this.treeView.ImageList = this.imageList;
@@ -66,4 +67,5 @@
       this.treeView.TabIndex = 0;
       this.treeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView_AfterSelect);
+      this.treeView.DoubleClick += new System.EventHandler(this.treeView_DoubleClick);
       // 
       // imageList
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/StateLogGanttChartListView.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/StateLogGanttChartListView.cs	(revision 5718)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/StateLogGanttChartListView.cs	(revision 5779)
@@ -62,15 +62,16 @@
         ganttChart.Reset();
         SetupCategories(ganttChart);
+        if (Content.Count > 0) {
+          DateTime maxValue = Content.Max(x => x.Count > 0 ? x.Max(y => y.DateTime) : DateTime.MinValue);
+          var upperLimit = DateTime.FromOADate(Math.Min(DateTime.Now.AddSeconds(10).ToOADate(), maxValue.AddSeconds(10).ToOADate()));
 
-        DateTime maxValue = Content.Max(x => x.Max(y => y.DateTime));
-        var upperLimit = DateTime.FromOADate(Math.Min(DateTime.Now.AddSeconds(10).ToOADate(), maxValue.AddSeconds(10).ToOADate()));
-
-        for (int i = 0; i < Content.Count; i++) {
-          for (int j = 0; j < Content[i].Count - 1; j++) {
-            if(Content[i][j].State != JobState.Offline && Content[i][j].State != JobState.Finished) 
-              AddData(ganttChart, i.ToString(), Content[i][j], Content[i][j+1], upperLimit);
-          }
-          if(Content[i].Count > 0) {
-            AddData(ganttChart, i.ToString(), Content[i][Content[i].Count - 1], null, upperLimit);
+          for (int i = 0; i < Content.Count; i++) {
+            for (int j = 0; j < Content[i].Count - 1; j++) {
+              if (Content[i][j].State != JobState.Offline)
+                AddData(ganttChart, i.ToString(), Content[i][j], Content[i][j + 1], upperLimit);
+            }
+            if (Content[i].Count > 0) {
+              AddData(ganttChart, i.ToString(), Content[i][Content[i].Count - 1], null, upperLimit);
+            }
           }
         }
@@ -81,4 +82,5 @@
       ganttChart.AddCategory(JobState.Offline.ToString(), Color.Gainsboro);
       ganttChart.AddCategory(JobState.Waiting.ToString(), Color.NavajoWhite);
+      ganttChart.AddCategory(JobState.Paused.ToString(), Color.PaleVioletRed);
       ganttChart.AddCategory(JobState.Transferring.ToString(), Color.CornflowerBlue);
       ganttChart.AddCategory(JobState.Calculating.ToString(), Color.DarkGreen);
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/StateLogGanttChartListView.designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/StateLogGanttChartListView.designer.cs	(revision 5718)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/StateLogGanttChartListView.designer.cs	(revision 5779)
@@ -34,14 +34,14 @@
       this.ganttChart.Location = new System.Drawing.Point(0, 0);
       this.ganttChart.Name = "ganttChart";
-      this.ganttChart.Size = new System.Drawing.Size(518, 307);
+      this.ganttChart.Size = new System.Drawing.Size(493, 293);
       this.ganttChart.TabIndex = 0;
       // 
-      // StateLogGanttChartView
+      // StateLogGanttChartListView
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
       this.Controls.Add(this.ganttChart);
-      this.Name = "StateLogGanttChartView";
-      this.Size = new System.Drawing.Size(518, 307);
+      this.Name = "StateLogGanttChartListView";
+      this.Size = new System.Drawing.Size(493, 293);
       this.ResumeLayout(false);
 
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/StateLogGanttChartView.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/StateLogGanttChartView.cs	(revision 5718)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/StateLogGanttChartView.cs	(revision 5779)
@@ -61,10 +61,12 @@
         ganttChart.Reset();
         StateLogGanttChartListView.SetupCategories(ganttChart);
-        var upperLimit = DateTime.FromOADate(Math.Min(Content.Max(x => x.DateTime).ToOADate(), DateTime.Now.AddSeconds(10).ToOADate()));
+        if (Content.Count > 0) {
+          var upperLimit = DateTime.FromOADate(Math.Min(Content.Max(x => x.DateTime).ToOADate(), DateTime.Now.AddSeconds(10).ToOADate()));
 
-        for (int i = 0; i < Content.Count-1; i++) {
-          StateLogGanttChartListView.AddData(ganttChart, i.ToString(), Content[i], Content[i+1], upperLimit);
+          for (int i = 0; i < Content.Count - 1; i++) {
+            StateLogGanttChartListView.AddData(ganttChart, i.ToString(), Content[i], Content[i + 1], upperLimit);
+          }
+          StateLogGanttChartListView.AddData(ganttChart, (Content.Count - 1).ToString(), Content[Content.Count - 1], null, upperLimit);
         }
-        StateLogGanttChartListView.AddData(ganttChart, (Content.Count - 1).ToString(), Content[Content.Count - 1], null, upperLimit);
       }
     }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/StateLogGanttChartView.designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/StateLogGanttChartView.designer.cs	(revision 5718)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/StateLogGanttChartView.designer.cs	(revision 5779)
@@ -34,5 +34,5 @@
       this.ganttChart.Location = new System.Drawing.Point(0, 0);
       this.ganttChart.Name = "ganttChart";
-      this.ganttChart.Size = new System.Drawing.Size(518, 307);
+      this.ganttChart.Size = new System.Drawing.Size(533, 302);
       this.ganttChart.TabIndex = 0;
       // 
@@ -43,5 +43,5 @@
       this.Controls.Add(this.ganttChart);
       this.Name = "StateLogGanttChartView";
-      this.Size = new System.Drawing.Size(518, 307);
+      this.Size = new System.Drawing.Size(533, 302);
       this.ResumeLayout(false);
 
