Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/HeuristicLab.Clients.Hive.Slave.Views-3.4.csproj
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/HeuristicLab.Clients.Hive.Slave.Views-3.4.csproj	(revision 6257)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/HeuristicLab.Clients.Hive.Slave.Views-3.4.csproj	(revision 6263)
@@ -129,4 +129,10 @@
       <DependentUpon>AboutView.cs</DependentUpon>
     </Compile>
+    <Compile Include="JobsView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="JobsView.Designer.cs">
+      <DependentUpon>JobsView.cs</DependentUpon>
+    </Compile>
     <Compile Include="LogView.cs">
       <SubType>UserControl</SubType>
@@ -174,4 +180,7 @@
     <EmbeddedResource Include="AboutView.resx">
       <DependentUpon>AboutView.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="JobsView.resx">
+      <DependentUpon>JobsView.cs</DependentUpon>
     </EmbeddedResource>
     <EmbeddedResource Include="LogView.resx">
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/JobsView.Designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/JobsView.Designer.cs	(revision 6263)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/JobsView.Designer.cs	(revision 6263)
@@ -0,0 +1,92 @@
+﻿#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.SlaveCore.Views {
+  partial class JobsView {
+    /// <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.lstJobs = new System.Windows.Forms.ListView();
+      this.columnJobId = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+      this.columnExecutionTime = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+      this.SuspendLayout();
+      // 
+      // lstJobs
+      // 
+      this.lstJobs.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.lstJobs.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+            this.columnJobId,
+            this.columnExecutionTime});
+      this.lstJobs.Location = new System.Drawing.Point(3, 3);
+      this.lstJobs.Name = "lstJobs";
+      this.lstJobs.Size = new System.Drawing.Size(458, 343);
+      this.lstJobs.TabIndex = 0;
+      this.lstJobs.UseCompatibleStateImageBehavior = false;
+      this.lstJobs.View = System.Windows.Forms.View.Details;
+      // 
+      // columnJobId
+      // 
+      this.columnJobId.Text = "Job Id";
+      // 
+      // columnExecutionTime
+      // 
+      this.columnExecutionTime.Text = "Execution Time";
+      // 
+      // JobsView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.lstJobs);
+      this.Name = "JobsView";
+      this.Size = new System.Drawing.Size(464, 349);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.ListView lstJobs;
+    private System.Windows.Forms.ColumnHeader columnJobId;
+    private System.Windows.Forms.ColumnHeader columnExecutionTime;
+  }
+}
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/JobsView.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/JobsView.cs	(revision 6263)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/JobsView.cs	(revision 6263)
@@ -0,0 +1,77 @@
+﻿#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.SlaveCore.Views {
+  [View("JobsView")]
+  [Content(typeof(SlaveItem), IsDefaultView = false)]
+  public partial class JobsView : ItemView {
+    public new SlaveItem Content {
+      get { return (SlaveItem)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public JobsView() {
+      InitializeComponent();
+    }
+
+    #region Register Content Events
+    protected override void DeregisterContentEvents() {
+      Content.SlaveStatusChanged -= new EventHandler<Common.EventArgs<StatusCommons>>(Content_SlaveStatusChanged);
+      base.DeregisterContentEvents();
+    }
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.SlaveStatusChanged += new EventHandler<Common.EventArgs<StatusCommons>>(Content_SlaveStatusChanged);
+    }
+    #endregion
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content == null) {
+
+      } else {
+
+      }
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+    }
+
+    #region Event Handlers
+    void Content_SlaveStatusChanged(object sender, Common.EventArgs<StatusCommons> e) {
+      lstJobs.Items.Clear();
+      foreach (JobStatus job in e.Value.Jobs) {
+        ListViewItem item = new ListViewItem();
+        item.Text = job.JobId.ToString();
+        item.SubItems.Add(job.ExecutionTime.ToString());
+        lstJobs.Items.Add(item);
+      }
+      lstJobs.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
+    }
+    #endregion
+  }
+}
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/JobsView.resx
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/JobsView.resx	(revision 6263)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/JobsView.resx	(revision 6263)
@@ -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.Slave.Views/3.4/LogView.Designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/LogView.Designer.cs	(revision 6257)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/LogView.Designer.cs	(revision 6263)
@@ -60,5 +60,5 @@
       this.txtLog.ReadOnly = true;
       this.txtLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
-      this.txtLog.Size = new System.Drawing.Size(480, 209);
+      this.txtLog.Size = new System.Drawing.Size(480, 238);
       this.txtLog.TabIndex = 2;
       // 
@@ -67,5 +67,5 @@
       this.chkShowBalloonTips.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
       this.chkShowBalloonTips.AutoSize = true;
-      this.chkShowBalloonTips.Location = new System.Drawing.Point(4, 219);
+      this.chkShowBalloonTips.Location = new System.Drawing.Point(3, 247);
       this.chkShowBalloonTips.Name = "chkShowBalloonTips";
       this.chkShowBalloonTips.Size = new System.Drawing.Size(291, 17);
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/Properties/Resources.Designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/Properties/Resources.Designer.cs	(revision 6257)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/Properties/Resources.Designer.cs	(revision 6263)
@@ -2,5 +2,5 @@
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:4.0.30319.1
+//     Runtime Version:4.0.30319.225
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveItem.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveItem.cs	(revision 6257)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveItem.cs	(revision 6263)
@@ -92,6 +92,11 @@
       try {
         pipeProxy = pipeFactory.CreateChannel();
-        pipeProxy.Subscribe();
-        return true;
+        StatusCommons st = pipeProxy.Subscribe();
+        if (st != null) {
+          OnStatusChanged(st);
+          return true;
+        } else {
+          return false;
+        }
       }
       catch (Exception) {
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveView.Designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveView.Designer.cs	(revision 6257)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveView.Designer.cs	(revision 6263)
@@ -45,17 +45,19 @@
     /// </summary>
     private void InitializeComponent() {
-      System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea3 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
-      System.Windows.Forms.DataVisualization.Charting.CustomLabel customLabel5 = new System.Windows.Forms.DataVisualization.Charting.CustomLabel();
-      System.Windows.Forms.DataVisualization.Charting.CustomLabel customLabel6 = new System.Windows.Forms.DataVisualization.Charting.CustomLabel();
-      System.Windows.Forms.DataVisualization.Charting.CustomLabel customLabel7 = new System.Windows.Forms.DataVisualization.Charting.CustomLabel();
-      System.Windows.Forms.DataVisualization.Charting.CustomLabel customLabel8 = new System.Windows.Forms.DataVisualization.Charting.CustomLabel();
-      System.Windows.Forms.DataVisualization.Charting.Legend legend3 = new System.Windows.Forms.DataVisualization.Charting.Legend();
+      System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
+      System.Windows.Forms.DataVisualization.Charting.CustomLabel customLabel1 = new System.Windows.Forms.DataVisualization.Charting.CustomLabel();
+      System.Windows.Forms.DataVisualization.Charting.CustomLabel customLabel2 = new System.Windows.Forms.DataVisualization.Charting.CustomLabel();
+      System.Windows.Forms.DataVisualization.Charting.CustomLabel customLabel3 = new System.Windows.Forms.DataVisualization.Charting.CustomLabel();
+      System.Windows.Forms.DataVisualization.Charting.CustomLabel customLabel4 = new System.Windows.Forms.DataVisualization.Charting.CustomLabel();
+      System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend();
+      System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
+      System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series();
+      System.Windows.Forms.DataVisualization.Charting.Series series3 = new System.Windows.Forms.DataVisualization.Charting.Series();
+      System.Windows.Forms.DataVisualization.Charting.Series series4 = new System.Windows.Forms.DataVisualization.Charting.Series();
+      System.Windows.Forms.DataVisualization.Charting.Series series5 = new System.Windows.Forms.DataVisualization.Charting.Series();
+      System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
+      System.Windows.Forms.DataVisualization.Charting.Legend legend2 = new System.Windows.Forms.DataVisualization.Charting.Legend();
       System.Windows.Forms.DataVisualization.Charting.Series series6 = new System.Windows.Forms.DataVisualization.Charting.Series();
-      System.Windows.Forms.DataVisualization.Charting.Series series7 = new System.Windows.Forms.DataVisualization.Charting.Series();
-      System.Windows.Forms.DataVisualization.Charting.Series series8 = new System.Windows.Forms.DataVisualization.Charting.Series();
-      System.Windows.Forms.DataVisualization.Charting.Series series9 = new System.Windows.Forms.DataVisualization.Charting.Series();
-      System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea4 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
-      System.Windows.Forms.DataVisualization.Charting.Legend legend4 = new System.Windows.Forms.DataVisualization.Charting.Legend();
-      System.Windows.Forms.DataVisualization.Charting.Series series10 = new System.Windows.Forms.DataVisualization.Charting.Series();
+      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SlaveView));
       this.jobChart = new System.Windows.Forms.DataVisualization.Charting.Chart();
       this.coresChart = new System.Windows.Forms.DataVisualization.Charting.Chart();
@@ -71,60 +73,70 @@
       // jobChart
       // 
+      this.jobChart.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.jobChart.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
-      customLabel5.Text = "Jobs";
-      customLabel6.Text = "Aborted Jobs";
-      customLabel7.Text = "Finished Jobs";
-      customLabel8.Text = "Fetched Jobs";
-      chartArea3.AxisX.CustomLabels.Add(customLabel5);
-      chartArea3.AxisX.CustomLabels.Add(customLabel6);
-      chartArea3.AxisX.CustomLabels.Add(customLabel7);
-      chartArea3.AxisX.CustomLabels.Add(customLabel8);
-      chartArea3.AxisX.Enabled = System.Windows.Forms.DataVisualization.Charting.AxisEnabled.True;
-      chartArea3.AxisX.MajorGrid.Enabled = false;
-      chartArea3.AxisX.MajorTickMark.Enabled = false;
-      chartArea3.Name = "ChartArea1";
-      this.jobChart.ChartAreas.Add(chartArea3);
-      legend3.Name = "Legend1";
-      this.jobChart.Legends.Add(legend3);
-      this.jobChart.Location = new System.Drawing.Point(0, 3);
+      customLabel1.Text = "Jobs";
+      customLabel2.Text = "Aborted Jobs";
+      customLabel3.Text = "Finished Jobs";
+      customLabel4.Text = "Fetched Jobs";
+      chartArea1.AxisX.CustomLabels.Add(customLabel1);
+      chartArea1.AxisX.CustomLabels.Add(customLabel2);
+      chartArea1.AxisX.CustomLabels.Add(customLabel3);
+      chartArea1.AxisX.CustomLabels.Add(customLabel4);
+      chartArea1.AxisX.Enabled = System.Windows.Forms.DataVisualization.Charting.AxisEnabled.True;
+      chartArea1.AxisX.MajorGrid.Enabled = false;
+      chartArea1.AxisX.MajorTickMark.Enabled = false;
+      chartArea1.Name = "ChartArea1";
+      this.jobChart.ChartAreas.Add(chartArea1);
+      legend1.Name = "Legend1";
+      this.jobChart.Legends.Add(legend1);
+      this.jobChart.Location = new System.Drawing.Point(3, 121);
       this.jobChart.Name = "jobChart";
+      series1.ChartArea = "ChartArea1";
+      series1.Legend = "Legend1";
+      series1.Name = "Series1";
+      series2.ChartArea = "ChartArea1";
+      series2.Legend = "Legend1";
+      series2.Name = "Series2";
+      series3.ChartArea = "ChartArea1";
+      series3.Legend = "Legend1";
+      series3.Name = "Series3";
+      series4.ChartArea = "ChartArea1";
+      series4.Legend = "Legend1";
+      series4.Name = "Series4";
+      series5.ChartArea = "ChartArea1";
+      series5.Legend = "Legend1";
+      series5.Name = "Series5";
+      this.jobChart.Series.Add(series1);
+      this.jobChart.Series.Add(series2);
+      this.jobChart.Series.Add(series3);
+      this.jobChart.Series.Add(series4);
+      this.jobChart.Series.Add(series5);
+      this.jobChart.Size = new System.Drawing.Size(412, 189);
+      this.jobChart.TabIndex = 7;
+      // 
+      // coresChart
+      // 
+      this.coresChart.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+      chartArea2.Name = "ChartArea1";
+      this.coresChart.ChartAreas.Add(chartArea2);
+      legend2.Name = "Legend1";
+      this.coresChart.Legends.Add(legend2);
+      this.coresChart.Location = new System.Drawing.Point(186, 3);
+      this.coresChart.Name = "coresChart";
       series6.ChartArea = "ChartArea1";
+      series6.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Pie;
       series6.Legend = "Legend1";
       series6.Name = "Series1";
-      series7.ChartArea = "ChartArea1";
-      series7.Legend = "Legend1";
-      series7.Name = "Series2";
-      series8.ChartArea = "ChartArea1";
-      series8.Legend = "Legend1";
-      series8.Name = "Series3";
-      series9.ChartArea = "ChartArea1";
-      series9.Legend = "Legend1";
-      series9.Name = "Series4";
-      this.jobChart.Series.Add(series6);
-      this.jobChart.Series.Add(series7);
-      this.jobChart.Series.Add(series8);
-      this.jobChart.Series.Add(series9);
-      this.jobChart.Size = new System.Drawing.Size(280, 156);
-      this.jobChart.TabIndex = 7;
-      // 
-      // coresChart
-      // 
-      chartArea4.Name = "ChartArea1";
-      this.coresChart.ChartAreas.Add(chartArea4);
-      legend4.Name = "Legend1";
-      this.coresChart.Legends.Add(legend4);
-      this.coresChart.Location = new System.Drawing.Point(3, 165);
-      this.coresChart.Name = "coresChart";
-      series10.ChartArea = "ChartArea1";
-      series10.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Pie;
-      series10.Legend = "Legend1";
-      series10.Name = "Series1";
-      this.coresChart.Series.Add(series10);
-      this.coresChart.Size = new System.Drawing.Size(277, 135);
+      this.coresChart.Series.Add(series6);
+      this.coresChart.Size = new System.Drawing.Size(229, 80);
       this.coresChart.TabIndex = 9;
       // 
       // btnStart
       // 
-      this.btnStart.Location = new System.Drawing.Point(467, 111);
+      this.btnStart.Image = ((System.Drawing.Image)(resources.GetObject("btnStart.Image")));
+      this.btnStart.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
+      this.btnStart.Location = new System.Drawing.Point(10, 89);
       this.btnStart.Name = "btnStart";
       this.btnStart.Size = new System.Drawing.Size(75, 23);
@@ -136,5 +148,7 @@
       // btnStop
       // 
-      this.btnStop.Location = new System.Drawing.Point(467, 82);
+      this.btnStop.Image = ((System.Drawing.Image)(resources.GetObject("btnStop.Image")));
+      this.btnStop.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
+      this.btnStop.Location = new System.Drawing.Point(10, 60);
       this.btnStop.Name = "btnStop";
       this.btnStop.Size = new System.Drawing.Size(75, 23);
@@ -146,5 +160,5 @@
       // btnKill
       // 
-      this.btnKill.Location = new System.Drawing.Point(467, 53);
+      this.btnKill.Location = new System.Drawing.Point(10, 31);
       this.btnKill.Name = "btnKill";
       this.btnKill.Size = new System.Drawing.Size(75, 23);
@@ -156,7 +170,7 @@
       // lblSlaveState
       // 
-      this.lblSlaveState.Location = new System.Drawing.Point(370, 3);
+      this.lblSlaveState.Location = new System.Drawing.Point(75, 5);
       this.lblSlaveState.Name = "lblSlaveState";
-      this.lblSlaveState.Size = new System.Drawing.Size(100, 23);
+      this.lblSlaveState.Size = new System.Drawing.Size(78, 13);
       this.lblSlaveState.TabIndex = 13;
       // 
@@ -164,5 +178,5 @@
       // 
       this.label1.AutoSize = true;
-      this.label1.Location = new System.Drawing.Point(286, 3);
+      this.label1.Location = new System.Drawing.Point(7, 5);
       this.label1.Name = "label1";
       this.label1.Size = new System.Drawing.Size(62, 13);
@@ -182,5 +196,5 @@
       this.Controls.Add(this.jobChart);
       this.Name = "SlaveView";
-      this.Size = new System.Drawing.Size(590, 313);
+      this.Size = new System.Drawing.Size(418, 313);
       ((System.ComponentModel.ISupportInitialize)(this.jobChart)).EndInit();
       ((System.ComponentModel.ISupportInitialize)(this.coresChart)).EndInit();
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveView.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveView.cs	(revision 6257)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveView.cs	(revision 6263)
@@ -40,4 +40,8 @@
   public partial class SlaveView : ItemView {
 
+    private const UInt32 BCM_SETSHIELD = 0x160C;
+    [DllImport("user32", CharSet = CharSet.Auto, SetLastError = true)]
+    static extern int SendMessage(IntPtr hWnd, UInt32 Msg, int wParam, IntPtr lParam);
+
     public new SlaveItem Content {
       get { return (SlaveItem)base.Content; }
@@ -51,19 +55,18 @@
     private SlaveDisplayStat lastSlaveDisplayStat;
 
-    [DllImport("user32", CharSet = CharSet.Auto, SetLastError = true)]
-    static extern int SendMessage(IntPtr hWnd, UInt32 Msg, int wParam, IntPtr lParam);
-
-    const UInt32 BCM_SETSHIELD = 0x160C;
-
     public SlaveView() {
       InitializeComponent();
 
-      this.btnKill.FlatStyle = FlatStyle.System;
-      SendMessage(btnKill.Handle, BCM_SETSHIELD, 0, (IntPtr)1);
+      if (CheckRunAsAdmin()) {
+        btnKill.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
+        btnKill.Image = HeuristicLab.Common.Resources.VSImageLibrary.BreakpointActive;
+      } else {
+        this.btnKill.FlatStyle = FlatStyle.System;
+        SendMessage(btnKill.Handle, BCM_SETSHIELD, 0, (IntPtr)1);
+      }
 
       lblSlaveState.Text = SlaveDisplayStat.NoService.ToString();
-      btnKill.Enabled = false;
-      btnStart.Enabled = false;
-      btnStop.Enabled = false;
+      lastSlaveDisplayStat = SlaveDisplayStat.NoService;
+      Content_SlaveDisplayStateChanged(this, new EventArgs<SlaveDisplayStat>(lastSlaveDisplayStat));
     }
 
@@ -106,4 +109,5 @@
 
     private void Connector() {
+      Content_SlaveDisplayStateChanged(this, new EventArgs<SlaveDisplayStat>(SlaveDisplayStat.NoService));
       bool connected = false;
       while (!connected) {
@@ -163,4 +167,6 @@
       jobChart.Series[2].Points.Clear();
       jobChart.Series[3].Points.Clear();
+      jobChart.Series[4].Points.Clear();
+
 
       DataPoint pJobs = new DataPoint(1, status.Jobs.Count);
@@ -168,14 +174,17 @@
       DataPoint pJobsDone = new DataPoint(3, status.JobsFinished);
       DataPoint pJobsFetched = new DataPoint(4, status.JobsFetched);
+      DataPoint pJobsFailed = new DataPoint(5, status.JobsFailed);
 
       pJobs.LegendText = "Current jobs: " + status.Jobs.Count;
-      pJobs.Color = System.Drawing.Color.Orange;
+      pJobs.Color = System.Drawing.Color.Yellow;
       pJobs.ToolTip = pJobs.LegendText;
+      jobChart.Series[0].Color = System.Drawing.Color.Yellow;
       jobChart.Series[0].LegendText = pJobs.LegendText;
       jobChart.Series[0].Points.Add(pJobs);
 
       pJobsAborted.LegendText = "Aborted jobs: " + status.JobsAborted;
-      pJobsAborted.Color = System.Drawing.Color.Red;
+      pJobsAborted.Color = System.Drawing.Color.Orange;
       pJobsAborted.ToolTip = pJobsAborted.LegendText;
+      jobChart.Series[1].Color = System.Drawing.Color.Orange;
       jobChart.Series[1].LegendText = pJobsAborted.LegendText;
       jobChart.Series[1].Points.Add(pJobsAborted);
@@ -184,4 +193,5 @@
       pJobsDone.Color = System.Drawing.Color.Green;
       pJobsDone.ToolTip = pJobsDone.LegendText;
+      jobChart.Series[2].Color = System.Drawing.Color.Green;
       jobChart.Series[2].LegendText = pJobsDone.LegendText;
       jobChart.Series[2].Points.Add(pJobsDone);
@@ -190,6 +200,14 @@
       pJobsFetched.ToolTip = pJobsFetched.LegendText;
       pJobsFetched.Color = System.Drawing.Color.Blue;
+      jobChart.Series[3].Color = System.Drawing.Color.Blue;
       jobChart.Series[3].LegendText = pJobsFetched.LegendText;
       jobChart.Series[3].Points.Add(pJobsFetched);
+
+      pJobsFailed.LegendText = "Failed jobs: " + status.JobsFailed;
+      pJobsFailed.ToolTip = pJobsFailed.LegendText;
+      pJobsFailed.Color = System.Drawing.Color.Red;
+      jobChart.Series[4].Color = System.Drawing.Color.Red;
+      jobChart.Series[4].LegendText = pJobsFailed.LegendText;
+      jobChart.Series[4].Points.Add(pJobsFailed);
     }
 
@@ -222,4 +240,7 @@
     }
 
+    /// <summary>
+    /// shows the windows UAC dialog and restarts tray icon app
+    /// </summary>
     private void ElevateApplication() {
       // Launch itself as administrator
@@ -234,9 +255,8 @@
       }
       catch {
-        // The user refused to allow privileges elevation.
-        // Do nothing and return directly ...
+        // user refused to allow privileges elevation       
         return;
       }
-      Application.Exit();  // Quit itself
+      Application.Exit();
     }
 
@@ -265,5 +285,5 @@
     private void StopService() {
       string serviceName = "HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsService";
-      TimeSpan timeout = TimeSpan.FromMilliseconds(5000);
+      TimeSpan timeout = TimeSpan.FromMilliseconds(7000);
 
       ServiceController service = new ServiceController(serviceName);
@@ -288,5 +308,4 @@
         ElevateApplication();
       }
-
     }
 
@@ -310,4 +329,6 @@
       }
     }
+
+
   }
 }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveView.resx
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveView.resx	(revision 6257)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveView.resx	(revision 6263)
@@ -118,3 +118,28 @@
     <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="btnStart.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
+        JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsPAAALDwGS+QOlAAABEElE
+        QVQ4T2P4//8/AzpO6HnCjE0cmxiGZpAioAEyQMxEjCFYDSic9fx//OS3SsQYgtWA3JnP/id03/sfN+G1
+        BiHvYDUgY8rT//P2//4f1HDzNdAAW3yG4AqD/7P3/frfufXvf7fSy/+BBtjjMgSrAZFdj/5P2fbrf8nS
+        v/8Tpv/9b5N7FqchWA0IbH74v3Xte7Bm45Iv/6Wjr/03jlz236HobDy6S7Aa4FF1/3/J3HdwzYouPf+l
+        fVYHEp0O7Evv/g9seQa2GaJ5pReuNIHVBRZ5d/7bFFyBabbBl6CwGmCYdRusWcpruSuh1IjVAJ20G0Bn
+        r/ElpBkkj9UAKe+1ftLeK4jKUFgNIMZmmBqKDQAA4djU9Io7KYIAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="btnStop.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
+        JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsPAAALDwGS+QOlAAABa0lE
+        QVQ4T82TP0gCYRjGXQoaoq0xWloiISiKlgiCcHIJIaFJCII0GoIyKrCyvxyUKEViZhJKKR5YRtkfarAS
+        EqHCEBeNDAoRvDTPK57uc7uGC3Ko4Rt/v+d7n5dXAkBSyisJJsH/TEB5P7FIFzDrzkHnZDBhT2N04wXD
+        5mcMrT5i0JTIfO9LMAKB7+MfuEtwCDwUcHjDwhtk4QqwsPizkCp2eF5YukBAkqNPHIJRrgg6L/JY8+Ww
+        4mUwZ4+hTr4lLiDfvo1zOAqx2D7Lw8iDemcGY9ZXqKkwarrWxQVk5qsIB/cln3zwjvldAqegMSahGDlF
+        dbtBXEAK84dZ2E7yWKbfoLWm0W9IQjkTg2xgD1UtS+IC0rbnmoVxP4tJewpqEw/ro5BrQ+jsc6GiUS8u
+        IKvaPGYwbYtAQ4WgHD/nkz3oUDnQ2mNGWYNOXED23KbyoamXRn23A7UyS3HuyuYFlEunfhb85qj+/ha+
+        AFwj9H5OYBpkAAAAAElFTkSuQmCC
+</value>
+  </data>
 </root>
