Index: /trunk/sources/HeuristicLab.Hive.Client.Console/HeuristicLab.Hive.Client.Console.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Console/HeuristicLab.Hive.Client.Console.csproj	(revision 910)
+++ /trunk/sources/HeuristicLab.Hive.Client.Console/HeuristicLab.Hive.Client.Console.csproj	(revision 911)
@@ -76,4 +76,7 @@
       <RequiredTargetFramework>3.5</RequiredTargetFramework>
     </Reference>
+    <Reference Include="System.ServiceModel">
+      <RequiredTargetFramework>3.0</RequiredTargetFramework>
+    </Reference>
     <Reference Include="System.Xml.Linq">
       <RequiredTargetFramework>3.5</RequiredTargetFramework>
@@ -89,5 +92,5 @@
     <Reference Include="ZedGraph, Version=5.1.4.31904, Culture=neutral, PublicKeyToken=02a83cbd123fcd60, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.0\plugins\ZedGraph.dll</HintPath>
+      <HintPath>.\ZedGraph.dll</HintPath>
     </Reference>
   </ItemGroup>
@@ -140,6 +143,12 @@
       <DesignTimeSharedInput>True</DesignTimeSharedInput>
     </Compile>
+    <Compile Include="ServerProxy.cs" />
+    <Compile Include="ServiceLocator.cs" />
   </ItemGroup>
   <ItemGroup>
+    <ProjectReference Include="..\HeuristicLab.Hive.Client.Communication\HeuristicLab.Hive.Client.Communication.csproj">
+      <Project>{AEB51212-CDBA-4FC6-A2EE-02359AA53ECE}</Project>
+      <Name>HeuristicLab.Hive.Client.Communication</Name>
+    </ProjectReference>
     <ProjectReference Include="..\HeuristicLab.Logging\HeuristicLab.Logging.csproj">
       <Project>{4095C92C-5A4C-44BC-9963-5F384CF5CC3F}</Project>
Index: /trunk/sources/HeuristicLab.Hive.Client.Console/HiveClientConsole.cs
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Console/HiveClientConsole.cs	(revision 910)
+++ /trunk/sources/HeuristicLab.Hive.Client.Console/HiveClientConsole.cs	(revision 911)
@@ -31,8 +31,9 @@
 using System.Threading;
 using ZedGraph;
+using HeuristicLab.Hive.Client.Communication.ClientConsole;
 
 namespace HeuristicLab.Hive.Client.Console {
 
-  delegate void UpdateTextDelegate(EventLog ev);
+  delegate void UpdateTextDelegate(EventLogEntry ev);
 
   public partial class HiveClientConsole : Form {
@@ -44,4 +45,7 @@
       InitializeComponent();
       GetEventLog();
+
+      ClientConsoleCommunicatorClient cccc = ServiceLocator.ClientConsoleCommunicatorClient();
+      StatusCommons curClientStatus = cccc.GetStatusInfos();
     }
 
@@ -57,5 +61,5 @@
         if(eve.EntryType == EventLogEntryType.Error)
           curEventLogEntry = new ListViewItem("", 1);
-        curEventLogEntry.SubItems.Add(eve.EventID.ToString());
+        curEventLogEntry.SubItems.Add(eve.InstanceId.ToString());
         curEventLogEntry.SubItems.Add(eve.Message);
         curEventLogEntry.SubItems.Add(eve.TimeGenerated.Date.ToString());
@@ -70,40 +74,24 @@
     }
 
-    private void UpdateText(EventLog ev) {
+    private void UpdateText(EventLogEntry ev) {
       if (this.lvLog.InvokeRequired) {
         this.lvLog.Invoke(new
           UpdateTextDelegate(UpdateText), new object[] { ev });
       } else {
-        //string str = ev.Entries[numEntries].TimeWritten + " -> " + ev.Entries[numEntries].Message;
-        //numEntries++;
-        //lbEventLog.Items.Add(str);
-        //lbEventLog.SelectedIndex = lbEventLog.Items.Count - 1;
+        ListViewItem curEventLogEntry;
+        curEventLogEntry = new ListViewItem("", 0);
+        if (ev.EntryType == EventLogEntryType.Error)
+          curEventLogEntry = new ListViewItem("", 1);
+        curEventLogEntry.SubItems.Add(ev.EventID.ToString());
+        curEventLogEntry.SubItems.Add(ev.Message);
+        curEventLogEntry.SubItems.Add(ev.TimeGenerated.Date.ToString());
+        curEventLogEntry.SubItems.Add(ev.TimeGenerated.TimeOfDay.ToString());
+
 
       }
     }
 
-    //private void tsmiExit_Click(object sender, EventArgs e) {
-    //  this.Close();
-    //}
-
-    //private void btnConnect_Click(object sender, EventArgs e) {
-    //  btnConnect.Enabled = false;
-    //  btnDisconnect.Enabled = true;
-    //  tbIp.Enabled = false;
-    //  tbPort.Enabled = false;
-    //  tbUuid.Enabled = false;
-    //  lbEventLog.Items.Add(tbIp.Text);
-    //}
-
-    //private void btnDisconnect_Click(object sender, EventArgs e) {
-    //  btnDisconnect.Enabled = false;
-    //  btnConnect.Enabled = true;
-    //  tbIp.Enabled = true;
-    //  tbPort.Enabled = true;
-    //  tbUuid.Enabled = true;
-    //}
-
     public void OnEntryWritten(object source, EntryWrittenEventArgs e) {
-      UpdateText((EventLog)source);
+      UpdateText(e.Entry);
     }
 
@@ -136,5 +124,4 @@
     private void lvLog_DoubleClick(object sender, EventArgs e) {
       ListViewItem lvi = lvLog.SelectedItems[0];
-
       HiveEventEntry hee = new HiveEventEntry(lvi.SubItems[2].Text, lvi.SubItems[3].Text, lvi.SubItems[4].Text, lvi.SubItems[1].Text);
       
Index: /trunk/sources/HeuristicLab.Hive.Client.Console/ServerProxy.cs
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Console/ServerProxy.cs	(revision 911)
+++ /trunk/sources/HeuristicLab.Hive.Client.Console/ServerProxy.cs	(revision 911)
@@ -0,0 +1,270 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace HeuristicLab.Hive.Client.Console {
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
+  [System.ServiceModel.ServiceContractAttribute(ConfigurationName = "IClientConsoleCommunicator")]
+  public interface IClientConsoleCommunicator {
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IClientConsoleCommunicator/GetStatusInfos", ReplyAction = "http://tempuri.org/IClientConsoleCommunicator/GetStatusInfosResponse")]
+    HeuristicLab.Hive.Client.Communication.ClientConsole.StatusCommons GetStatusInfos();
+
+    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IClientConsoleCommunicator/GetStatusInfos", ReplyAction = "http://tempuri.org/IClientConsoleCommunicator/GetStatusInfosResponse")]
+    System.IAsyncResult BeginGetStatusInfos(System.AsyncCallback callback, object asyncState);
+
+    HeuristicLab.Hive.Client.Communication.ClientConsole.StatusCommons EndGetStatusInfos(System.IAsyncResult result);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IClientConsoleCommunicator/GetConnection", ReplyAction = "http://tempuri.org/IClientConsoleCommunicator/GetConnectionResponse")]
+    HeuristicLab.Hive.Client.Communication.ClientConsole.ConnectionContainer GetConnection();
+
+    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IClientConsoleCommunicator/GetConnection", ReplyAction = "http://tempuri.org/IClientConsoleCommunicator/GetConnectionResponse")]
+    System.IAsyncResult BeginGetConnection(System.AsyncCallback callback, object asyncState);
+
+    HeuristicLab.Hive.Client.Communication.ClientConsole.ConnectionContainer EndGetConnection(System.IAsyncResult result);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IClientConsoleCommunicator/SetConnection", ReplyAction = "http://tempuri.org/IClientConsoleCommunicator/SetConnectionResponse")]
+    void SetConnection(HeuristicLab.Hive.Client.Communication.ClientConsole.ConnectionContainer container);
+
+    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IClientConsoleCommunicator/SetConnection", ReplyAction = "http://tempuri.org/IClientConsoleCommunicator/SetConnectionResponse")]
+    System.IAsyncResult BeginSetConnection(HeuristicLab.Hive.Client.Communication.ClientConsole.ConnectionContainer container, System.AsyncCallback callback, object asyncState);
+
+    void EndSetConnection(System.IAsyncResult result);
+  }
+
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
+  public interface IClientConsoleCommunicatorChannel : IClientConsoleCommunicator, System.ServiceModel.IClientChannel {
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
+  public partial class GetStatusInfosCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+    private object[] results;
+
+    public GetStatusInfosCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+      base(exception, cancelled, userState) {
+      this.results = results;
+    }
+
+    public HeuristicLab.Hive.Client.Communication.ClientConsole.StatusCommons Result {
+      get {
+        base.RaiseExceptionIfNecessary();
+        return ((HeuristicLab.Hive.Client.Communication.ClientConsole.StatusCommons)(this.results[0]));
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
+  public partial class GetConnectionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+    private object[] results;
+
+    public GetConnectionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+      base(exception, cancelled, userState) {
+      this.results = results;
+    }
+
+    public HeuristicLab.Hive.Client.Communication.ClientConsole.ConnectionContainer Result {
+      get {
+        base.RaiseExceptionIfNecessary();
+        return ((HeuristicLab.Hive.Client.Communication.ClientConsole.ConnectionContainer)(this.results[0]));
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
+  public partial class ClientConsoleCommunicatorClient : System.ServiceModel.ClientBase<IClientConsoleCommunicator>, IClientConsoleCommunicator {
+
+    private BeginOperationDelegate onBeginGetStatusInfosDelegate;
+
+    private EndOperationDelegate onEndGetStatusInfosDelegate;
+
+    private System.Threading.SendOrPostCallback onGetStatusInfosCompletedDelegate;
+
+    private BeginOperationDelegate onBeginGetConnectionDelegate;
+
+    private EndOperationDelegate onEndGetConnectionDelegate;
+
+    private System.Threading.SendOrPostCallback onGetConnectionCompletedDelegate;
+
+    private BeginOperationDelegate onBeginSetConnectionDelegate;
+
+    private EndOperationDelegate onEndSetConnectionDelegate;
+
+    private System.Threading.SendOrPostCallback onSetConnectionCompletedDelegate;
+
+    public ClientConsoleCommunicatorClient() {
+    }
+
+    public ClientConsoleCommunicatorClient(string endpointConfigurationName) :
+      base(endpointConfigurationName) {
+    }
+
+    public ClientConsoleCommunicatorClient(string endpointConfigurationName, string remoteAddress) :
+      base(endpointConfigurationName, remoteAddress) {
+    }
+
+    public ClientConsoleCommunicatorClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
+      base(endpointConfigurationName, remoteAddress) {
+    }
+
+    public ClientConsoleCommunicatorClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
+      base(binding, remoteAddress) {
+    }
+
+    public event System.EventHandler<GetStatusInfosCompletedEventArgs> GetStatusInfosCompleted;
+
+    public event System.EventHandler<GetConnectionCompletedEventArgs> GetConnectionCompleted;
+
+    public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> SetConnectionCompleted;
+
+    public HeuristicLab.Hive.Client.Communication.ClientConsole.StatusCommons GetStatusInfos() {
+      return base.Channel.GetStatusInfos();
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public System.IAsyncResult BeginGetStatusInfos(System.AsyncCallback callback, object asyncState) {
+      return base.Channel.BeginGetStatusInfos(callback, asyncState);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public HeuristicLab.Hive.Client.Communication.ClientConsole.StatusCommons EndGetStatusInfos(System.IAsyncResult result) {
+      return base.Channel.EndGetStatusInfos(result);
+    }
+
+    private System.IAsyncResult OnBeginGetStatusInfos(object[] inValues, System.AsyncCallback callback, object asyncState) {
+      return this.BeginGetStatusInfos(callback, asyncState);
+    }
+
+    private object[] OnEndGetStatusInfos(System.IAsyncResult result) {
+      HeuristicLab.Hive.Client.Communication.ClientConsole.StatusCommons retVal = this.EndGetStatusInfos(result);
+      return new object[] {
+                retVal};
+    }
+
+    private void OnGetStatusInfosCompleted(object state) {
+      if ((this.GetStatusInfosCompleted != null)) {
+        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+        this.GetStatusInfosCompleted(this, new GetStatusInfosCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
+      }
+    }
+
+    public void GetStatusInfosAsync() {
+      this.GetStatusInfosAsync(null);
+    }
+
+    public void GetStatusInfosAsync(object userState) {
+      if ((this.onBeginGetStatusInfosDelegate == null)) {
+        this.onBeginGetStatusInfosDelegate = new BeginOperationDelegate(this.OnBeginGetStatusInfos);
+      }
+      if ((this.onEndGetStatusInfosDelegate == null)) {
+        this.onEndGetStatusInfosDelegate = new EndOperationDelegate(this.OnEndGetStatusInfos);
+      }
+      if ((this.onGetStatusInfosCompletedDelegate == null)) {
+        this.onGetStatusInfosCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetStatusInfosCompleted);
+      }
+      base.InvokeAsync(this.onBeginGetStatusInfosDelegate, null, this.onEndGetStatusInfosDelegate, this.onGetStatusInfosCompletedDelegate, userState);
+    }
+
+    public HeuristicLab.Hive.Client.Communication.ClientConsole.ConnectionContainer GetConnection() {
+      return base.Channel.GetConnection();
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public System.IAsyncResult BeginGetConnection(System.AsyncCallback callback, object asyncState) {
+      return base.Channel.BeginGetConnection(callback, asyncState);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public HeuristicLab.Hive.Client.Communication.ClientConsole.ConnectionContainer EndGetConnection(System.IAsyncResult result) {
+      return base.Channel.EndGetConnection(result);
+    }
+
+    private System.IAsyncResult OnBeginGetConnection(object[] inValues, System.AsyncCallback callback, object asyncState) {
+      return this.BeginGetConnection(callback, asyncState);
+    }
+
+    private object[] OnEndGetConnection(System.IAsyncResult result) {
+      HeuristicLab.Hive.Client.Communication.ClientConsole.ConnectionContainer retVal = this.EndGetConnection(result);
+      return new object[] {
+                retVal};
+    }
+
+    private void OnGetConnectionCompleted(object state) {
+      if ((this.GetConnectionCompleted != null)) {
+        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+        this.GetConnectionCompleted(this, new GetConnectionCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
+      }
+    }
+
+    public void GetConnectionAsync() {
+      this.GetConnectionAsync(null);
+    }
+
+    public void GetConnectionAsync(object userState) {
+      if ((this.onBeginGetConnectionDelegate == null)) {
+        this.onBeginGetConnectionDelegate = new BeginOperationDelegate(this.OnBeginGetConnection);
+      }
+      if ((this.onEndGetConnectionDelegate == null)) {
+        this.onEndGetConnectionDelegate = new EndOperationDelegate(this.OnEndGetConnection);
+      }
+      if ((this.onGetConnectionCompletedDelegate == null)) {
+        this.onGetConnectionCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetConnectionCompleted);
+      }
+      base.InvokeAsync(this.onBeginGetConnectionDelegate, null, this.onEndGetConnectionDelegate, this.onGetConnectionCompletedDelegate, userState);
+    }
+
+    public void SetConnection(HeuristicLab.Hive.Client.Communication.ClientConsole.ConnectionContainer container) {
+      base.Channel.SetConnection(container);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public System.IAsyncResult BeginSetConnection(HeuristicLab.Hive.Client.Communication.ClientConsole.ConnectionContainer container, System.AsyncCallback callback, object asyncState) {
+      return base.Channel.BeginSetConnection(container, callback, asyncState);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public void EndSetConnection(System.IAsyncResult result) {
+      base.Channel.EndSetConnection(result);
+    }
+
+    private System.IAsyncResult OnBeginSetConnection(object[] inValues, System.AsyncCallback callback, object asyncState) {
+      HeuristicLab.Hive.Client.Communication.ClientConsole.ConnectionContainer container = ((HeuristicLab.Hive.Client.Communication.ClientConsole.ConnectionContainer)(inValues[0]));
+      return this.BeginSetConnection(container, callback, asyncState);
+    }
+
+    private object[] OnEndSetConnection(System.IAsyncResult result) {
+      this.EndSetConnection(result);
+      return null;
+    }
+
+    private void OnSetConnectionCompleted(object state) {
+      if ((this.SetConnectionCompleted != null)) {
+        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+        this.SetConnectionCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
+      }
+    }
+
+    public void SetConnectionAsync(HeuristicLab.Hive.Client.Communication.ClientConsole.ConnectionContainer container) {
+      this.SetConnectionAsync(container, null);
+    }
+
+    public void SetConnectionAsync(HeuristicLab.Hive.Client.Communication.ClientConsole.ConnectionContainer container, object userState) {
+      if ((this.onBeginSetConnectionDelegate == null)) {
+        this.onBeginSetConnectionDelegate = new BeginOperationDelegate(this.OnBeginSetConnection);
+      }
+      if ((this.onEndSetConnectionDelegate == null)) {
+        this.onEndSetConnectionDelegate = new EndOperationDelegate(this.OnEndSetConnection);
+      }
+      if ((this.onSetConnectionCompletedDelegate == null)) {
+        this.onSetConnectionCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnSetConnectionCompleted);
+      }
+      base.InvokeAsync(this.onBeginSetConnectionDelegate, new object[] {
+                    container}, this.onEndSetConnectionDelegate, this.onSetConnectionCompletedDelegate, userState);
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.Hive.Client.Console/ServiceLocator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Console/ServiceLocator.cs	(revision 911)
+++ /trunk/sources/HeuristicLab.Hive.Client.Console/ServiceLocator.cs	(revision 911)
@@ -0,0 +1,23 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.ServiceModel;
+using HeuristicLab.Hive.Client.Communication.ClientConsole;
+
+namespace HeuristicLab.Hive.Client.Console {
+  public class ServiceLocator {
+    private static ClientConsoleCommunicatorClient proxy = null;
+
+    public static ClientConsoleCommunicatorClient ClientConsoleCommunicatorClient() {
+      if (proxy == null) {
+        proxy = new ClientConsoleCommunicatorClient(
+          new NetTcpBinding(),
+          new EndpointAddress("net.tcp://127.0.0.1:8000/ClientConsole/ClientConsoleCommunicator")
+          );
+      }
+
+      return proxy;
+    }
+  }
+}
