Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/Administration/HiveAdministrationView.Designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/Administration/HiveAdministrationView.Designer.cs	(revision 5469)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/Administration/HiveAdministrationView.Designer.cs	(revision 5472)
@@ -56,7 +56,33 @@
       this.splitUsers = new System.Windows.Forms.SplitContainer();
       this.lstUsers = new System.Windows.Forms.ListView();
-      this.grpUsersInfo = new System.Windows.Forms.GroupBox();
+      this.label4 = new System.Windows.Forms.Label();
+      this.label3 = new System.Windows.Forms.Label();
+      this.label2 = new System.Windows.Forms.Label();
+      this.label1 = new System.Windows.Forms.Label();
+      this.tabStatistics = new System.Windows.Forms.TabPage();
+      this.label5 = new System.Windows.Forms.Label();
+      this.label6 = new System.Windows.Forms.Label();
+      this.label7 = new System.Windows.Forms.Label();
+      this.label8 = new System.Windows.Forms.Label();
+      this.txtUserExecutionTime = new System.Windows.Forms.TextBox();
+      this.txtUserCalculatedJobs = new System.Windows.Forms.TextBox();
+      this.txtUserPriority = new System.Windows.Forms.TextBox();
+      this.txtUserEmail = new System.Windows.Forms.TextBox();
+      this.txtUserRole = new System.Windows.Forms.TextBox();
+      this.txtUserLastActivity = new System.Windows.Forms.TextBox();
+      this.txtUserName = new System.Windows.Forms.TextBox();
+      this.tabUserDetails = new System.Windows.Forms.TabControl();
+      this.tabUserInformation = new System.Windows.Forms.TabPage();
+      this.tabUserJobs = new System.Windows.Forms.TabPage();
       this.scheduleControl1 = new HeuristicLab.Clients.Hive.Views.Administration.ScheduleControl();
       this.hiveJobListViewSlaves = new HeuristicLab.Clients.Hive.Views.HiveJobListView();
+      this.label9 = new System.Windows.Forms.Label();
+      this.label10 = new System.Windows.Forms.Label();
+      this.label11 = new System.Windows.Forms.Label();
+      this.label12 = new System.Windows.Forms.Label();
+      this.txtDetailsCalculatedJobs = new System.Windows.Forms.TextBox();
+      this.txtMemory = new System.Windows.Forms.TextBox();
+      this.txtCPU = new System.Windows.Forms.TextBox();
+      this.txtName = new System.Windows.Forms.TextBox();
       this.tabAdmin.SuspendLayout();
       this.tabSlaves.SuspendLayout();
@@ -66,4 +92,5 @@
       this.splitSlaves.SuspendLayout();
       this.tabSlaveGroup.SuspendLayout();
+      this.tabDetails.SuspendLayout();
       this.tabSchedule.SuspendLayout();
       this.tabJobs.SuspendLayout();
@@ -73,4 +100,7 @@
       this.splitUsers.Panel2.SuspendLayout();
       this.splitUsers.SuspendLayout();
+      this.tabStatistics.SuspendLayout();
+      this.tabUserDetails.SuspendLayout();
+      this.tabUserInformation.SuspendLayout();
       this.SuspendLayout();
       // 
@@ -82,4 +112,5 @@
       this.tabAdmin.Controls.Add(this.tabSlaves);
       this.tabAdmin.Controls.Add(this.tabUsers);
+      this.tabAdmin.Controls.Add(this.tabStatistics);
       this.tabAdmin.Location = new System.Drawing.Point(3, 0);
       this.tabAdmin.Name = "tabAdmin";
@@ -127,4 +158,5 @@
       this.treeSlaveGroup.Size = new System.Drawing.Size(209, 502);
       this.treeSlaveGroup.TabIndex = 0;
+      this.treeSlaveGroup.Click += new System.EventHandler(this.treeSlaveGroup_Click);
       // 
       // tabSlaveGroup
@@ -144,4 +176,12 @@
       // tabDetails
       // 
+      this.tabDetails.Controls.Add(this.txtName);
+      this.tabDetails.Controls.Add(this.txtCPU);
+      this.tabDetails.Controls.Add(this.txtMemory);
+      this.tabDetails.Controls.Add(this.txtDetailsCalculatedJobs);
+      this.tabDetails.Controls.Add(this.label12);
+      this.tabDetails.Controls.Add(this.label11);
+      this.tabDetails.Controls.Add(this.label10);
+      this.tabDetails.Controls.Add(this.label9);
       this.tabDetails.Location = new System.Drawing.Point(4, 22);
       this.tabDetails.Name = "tabDetails";
@@ -199,5 +239,5 @@
       // splitUsers.Panel2
       // 
-      this.splitUsers.Panel2.Controls.Add(this.grpUsersInfo);
+      this.splitUsers.Panel2.Controls.Add(this.tabUserDetails);
       this.splitUsers.Size = new System.Drawing.Size(722, 508);
       this.splitUsers.SplitterDistance = 240;
@@ -215,12 +255,190 @@
       this.lstUsers.UseCompatibleStateImageBehavior = false;
       // 
-      // grpUsersInfo
-      // 
-      this.grpUsersInfo.Location = new System.Drawing.Point(4, 4);
-      this.grpUsersInfo.Name = "grpUsersInfo";
-      this.grpUsersInfo.Size = new System.Drawing.Size(474, 504);
-      this.grpUsersInfo.TabIndex = 0;
-      this.grpUsersInfo.TabStop = false;
-      this.grpUsersInfo.Text = "User Information";
+      // label4
+      // 
+      this.label4.AutoSize = true;
+      this.label4.Location = new System.Drawing.Point(13, 111);
+      this.label4.Name = "label4";
+      this.label4.Size = new System.Drawing.Size(32, 13);
+      this.label4.TabIndex = 3;
+      this.label4.Text = "Email";
+      // 
+      // label3
+      // 
+      this.label3.AutoSize = true;
+      this.label3.Location = new System.Drawing.Point(13, 79);
+      this.label3.Name = "label3";
+      this.label3.Size = new System.Drawing.Size(29, 13);
+      this.label3.TabIndex = 2;
+      this.label3.Text = "Role";
+      // 
+      // label2
+      // 
+      this.label2.AutoSize = true;
+      this.label2.Location = new System.Drawing.Point(12, 50);
+      this.label2.Name = "label2";
+      this.label2.Size = new System.Drawing.Size(64, 13);
+      this.label2.TabIndex = 1;
+      this.label2.Text = "Last Activity";
+      // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Location = new System.Drawing.Point(13, 14);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(58, 13);
+      this.label1.TabIndex = 0;
+      this.label1.Text = "User name";
+      // 
+      // tabStatistics
+      // 
+      this.tabStatistics.Controls.Add(this.label5);
+      this.tabStatistics.Location = new System.Drawing.Point(4, 22);
+      this.tabStatistics.Name = "tabStatistics";
+      this.tabStatistics.Padding = new System.Windows.Forms.Padding(3);
+      this.tabStatistics.Size = new System.Drawing.Size(734, 520);
+      this.tabStatistics.TabIndex = 2;
+      this.tabStatistics.Text = "Statistics";
+      this.tabStatistics.UseVisualStyleBackColor = true;
+      // 
+      // label5
+      // 
+      this.label5.AutoSize = true;
+      this.label5.Location = new System.Drawing.Point(141, 221);
+      this.label5.Name = "label5";
+      this.label5.Size = new System.Drawing.Size(386, 13);
+      this.label5.TabIndex = 0;
+      this.label5.Text = "Show some global statistics, e.g. Overall execution time, nr of calculated jobs, " +
+          "....";
+      // 
+      // label6
+      // 
+      this.label6.AutoSize = true;
+      this.label6.Location = new System.Drawing.Point(13, 136);
+      this.label6.Name = "label6";
+      this.label6.Size = new System.Drawing.Size(63, 13);
+      this.label6.TabIndex = 8;
+      this.label6.Text = "User Priority";
+      // 
+      // label7
+      // 
+      this.label7.AutoSize = true;
+      this.label7.Location = new System.Drawing.Point(12, 170);
+      this.label7.Name = "label7";
+      this.label7.Size = new System.Drawing.Size(82, 13);
+      this.label7.TabIndex = 9;
+      this.label7.Text = "Calculated Jobs";
+      // 
+      // label8
+      // 
+      this.label8.AutoSize = true;
+      this.label8.Location = new System.Drawing.Point(13, 202);
+      this.label8.Name = "label8";
+      this.label8.Size = new System.Drawing.Size(116, 13);
+      this.label8.TabIndex = 10;
+      this.label8.Text = "Overall Execution Time";
+      // 
+      // txtUserExecutionTime
+      // 
+      this.txtUserExecutionTime.Location = new System.Drawing.Point(163, 202);
+      this.txtUserExecutionTime.Name = "txtUserExecutionTime";
+      this.txtUserExecutionTime.Size = new System.Drawing.Size(100, 20);
+      this.txtUserExecutionTime.TabIndex = 11;
+      this.txtUserExecutionTime.Text = "15d 3h 5m";
+      // 
+      // txtUserCalculatedJobs
+      // 
+      this.txtUserCalculatedJobs.Location = new System.Drawing.Point(163, 170);
+      this.txtUserCalculatedJobs.Name = "txtUserCalculatedJobs";
+      this.txtUserCalculatedJobs.Size = new System.Drawing.Size(100, 20);
+      this.txtUserCalculatedJobs.TabIndex = 12;
+      this.txtUserCalculatedJobs.Text = "125";
+      // 
+      // txtUserPriority
+      // 
+      this.txtUserPriority.Location = new System.Drawing.Point(163, 136);
+      this.txtUserPriority.Name = "txtUserPriority";
+      this.txtUserPriority.Size = new System.Drawing.Size(100, 20);
+      this.txtUserPriority.TabIndex = 13;
+      this.txtUserPriority.Text = "10";
+      // 
+      // txtUserEmail
+      // 
+      this.txtUserEmail.Location = new System.Drawing.Point(162, 103);
+      this.txtUserEmail.Name = "txtUserEmail";
+      this.txtUserEmail.Size = new System.Drawing.Size(100, 20);
+      this.txtUserEmail.TabIndex = 14;
+      this.txtUserEmail.Text = "ascheibe@mail.com";
+      // 
+      // txtUserRole
+      // 
+      this.txtUserRole.Location = new System.Drawing.Point(162, 72);
+      this.txtUserRole.Name = "txtUserRole";
+      this.txtUserRole.Size = new System.Drawing.Size(100, 20);
+      this.txtUserRole.TabIndex = 15;
+      this.txtUserRole.Text = "Hive Slave";
+      // 
+      // txtUserLastActivity
+      // 
+      this.txtUserLastActivity.Location = new System.Drawing.Point(161, 41);
+      this.txtUserLastActivity.Name = "txtUserLastActivity";
+      this.txtUserLastActivity.Size = new System.Drawing.Size(100, 20);
+      this.txtUserLastActivity.TabIndex = 16;
+      this.txtUserLastActivity.Text = "11.1.2010";
+      // 
+      // txtUserName
+      // 
+      this.txtUserName.Location = new System.Drawing.Point(161, 6);
+      this.txtUserName.Name = "txtUserName";
+      this.txtUserName.Size = new System.Drawing.Size(100, 20);
+      this.txtUserName.TabIndex = 17;
+      this.txtUserName.Text = "ascheibe";
+      // 
+      // tabUserDetails
+      // 
+      this.tabUserDetails.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.tabUserDetails.Controls.Add(this.tabUserInformation);
+      this.tabUserDetails.Controls.Add(this.tabUserJobs);
+      this.tabUserDetails.Location = new System.Drawing.Point(4, 4);
+      this.tabUserDetails.Name = "tabUserDetails";
+      this.tabUserDetails.SelectedIndex = 0;
+      this.tabUserDetails.Size = new System.Drawing.Size(471, 501);
+      this.tabUserDetails.TabIndex = 1;
+      // 
+      // tabUserInformation
+      // 
+      this.tabUserInformation.Controls.Add(this.txtUserName);
+      this.tabUserInformation.Controls.Add(this.txtUserLastActivity);
+      this.tabUserInformation.Controls.Add(this.txtUserRole);
+      this.tabUserInformation.Controls.Add(this.label1);
+      this.tabUserInformation.Controls.Add(this.txtUserEmail);
+      this.tabUserInformation.Controls.Add(this.label2);
+      this.tabUserInformation.Controls.Add(this.txtUserPriority);
+      this.tabUserInformation.Controls.Add(this.label3);
+      this.tabUserInformation.Controls.Add(this.txtUserCalculatedJobs);
+      this.tabUserInformation.Controls.Add(this.label4);
+      this.tabUserInformation.Controls.Add(this.txtUserExecutionTime);
+      this.tabUserInformation.Controls.Add(this.label6);
+      this.tabUserInformation.Controls.Add(this.label8);
+      this.tabUserInformation.Controls.Add(this.label7);
+      this.tabUserInformation.Location = new System.Drawing.Point(4, 22);
+      this.tabUserInformation.Name = "tabUserInformation";
+      this.tabUserInformation.Padding = new System.Windows.Forms.Padding(3);
+      this.tabUserInformation.Size = new System.Drawing.Size(463, 475);
+      this.tabUserInformation.TabIndex = 0;
+      this.tabUserInformation.Text = "User Information";
+      this.tabUserInformation.UseVisualStyleBackColor = true;
+      // 
+      // tabUserJobs
+      // 
+      this.tabUserJobs.Location = new System.Drawing.Point(4, 22);
+      this.tabUserJobs.Name = "tabUserJobs";
+      this.tabUserJobs.Padding = new System.Windows.Forms.Padding(3);
+      this.tabUserJobs.Size = new System.Drawing.Size(463, 475);
+      this.tabUserJobs.TabIndex = 1;
+      this.tabUserJobs.Text = "Jobs";
+      this.tabUserJobs.UseVisualStyleBackColor = true;
       // 
       // scheduleControl1
@@ -244,4 +462,72 @@
       this.hiveJobListViewSlaves.TabIndex = 0;
       // 
+      // label9
+      // 
+      this.label9.AutoSize = true;
+      this.label9.Location = new System.Drawing.Point(7, 38);
+      this.label9.Name = "label9";
+      this.label9.Size = new System.Drawing.Size(35, 13);
+      this.label9.TabIndex = 0;
+      this.label9.Text = "Name";
+      // 
+      // label10
+      // 
+      this.label10.AutoSize = true;
+      this.label10.Location = new System.Drawing.Point(7, 63);
+      this.label10.Name = "label10";
+      this.label10.Size = new System.Drawing.Size(29, 13);
+      this.label10.TabIndex = 1;
+      this.label10.Text = "CPU";
+      // 
+      // label11
+      // 
+      this.label11.AutoSize = true;
+      this.label11.Location = new System.Drawing.Point(7, 89);
+      this.label11.Name = "label11";
+      this.label11.Size = new System.Drawing.Size(44, 13);
+      this.label11.TabIndex = 2;
+      this.label11.Text = "Memory";
+      // 
+      // label12
+      // 
+      this.label12.AutoSize = true;
+      this.label12.Location = new System.Drawing.Point(6, 115);
+      this.label12.Name = "label12";
+      this.label12.Size = new System.Drawing.Size(82, 13);
+      this.label12.TabIndex = 3;
+      this.label12.Text = "Calculated Jobs";
+      // 
+      // txtDetailsCalculatedJobs
+      // 
+      this.txtDetailsCalculatedJobs.Location = new System.Drawing.Point(123, 108);
+      this.txtDetailsCalculatedJobs.Name = "txtDetailsCalculatedJobs";
+      this.txtDetailsCalculatedJobs.Size = new System.Drawing.Size(100, 20);
+      this.txtDetailsCalculatedJobs.TabIndex = 4;
+      this.txtDetailsCalculatedJobs.Text = "33";
+      // 
+      // txtMemory
+      // 
+      this.txtMemory.Location = new System.Drawing.Point(123, 82);
+      this.txtMemory.Name = "txtMemory";
+      this.txtMemory.Size = new System.Drawing.Size(100, 20);
+      this.txtMemory.TabIndex = 5;
+      this.txtMemory.Text = "2048 MB";
+      // 
+      // txtCPU
+      // 
+      this.txtCPU.Location = new System.Drawing.Point(123, 56);
+      this.txtCPU.Name = "txtCPU";
+      this.txtCPU.Size = new System.Drawing.Size(100, 20);
+      this.txtCPU.TabIndex = 6;
+      this.txtCPU.Text = "Intel Core 2 Duo @ 2.4 Ghz";
+      // 
+      // txtName
+      // 
+      this.txtName.Location = new System.Drawing.Point(123, 30);
+      this.txtName.Name = "txtName";
+      this.txtName.Size = new System.Drawing.Size(100, 20);
+      this.txtName.TabIndex = 7;
+      this.txtName.Text = "ascheibepc";
+      // 
       // HiveAdministrationView
       // 
@@ -251,4 +537,5 @@
       this.Name = "HiveAdministrationView";
       this.Size = new System.Drawing.Size(745, 546);
+      this.Load += new System.EventHandler(this.HiveAdministrationView_Load);
       this.tabAdmin.ResumeLayout(false);
       this.tabSlaves.ResumeLayout(false);
@@ -258,4 +545,6 @@
       this.splitSlaves.ResumeLayout(false);
       this.tabSlaveGroup.ResumeLayout(false);
+      this.tabDetails.ResumeLayout(false);
+      this.tabDetails.PerformLayout();
       this.tabSchedule.ResumeLayout(false);
       this.tabJobs.ResumeLayout(false);
@@ -265,4 +554,9 @@
       ((System.ComponentModel.ISupportInitialize)(this.splitUsers)).EndInit();
       this.splitUsers.ResumeLayout(false);
+      this.tabStatistics.ResumeLayout(false);
+      this.tabStatistics.PerformLayout();
+      this.tabUserDetails.ResumeLayout(false);
+      this.tabUserInformation.ResumeLayout(false);
+      this.tabUserInformation.PerformLayout();
       this.ResumeLayout(false);
 
@@ -283,6 +577,32 @@
     private System.Windows.Forms.SplitContainer splitUsers;
     private System.Windows.Forms.ListView lstUsers;
-    private System.Windows.Forms.GroupBox grpUsersInfo;
     private HiveJobListView hiveJobListViewSlaves;
+    private System.Windows.Forms.Label label3;
+    private System.Windows.Forms.Label label2;
+    private System.Windows.Forms.Label label1;
+    private System.Windows.Forms.Label label4;
+    private System.Windows.Forms.TabPage tabStatistics;
+    private System.Windows.Forms.Label label5;
+    private System.Windows.Forms.Label label8;
+    private System.Windows.Forms.Label label7;
+    private System.Windows.Forms.Label label6;
+    private System.Windows.Forms.TextBox txtUserName;
+    private System.Windows.Forms.TextBox txtUserLastActivity;
+    private System.Windows.Forms.TextBox txtUserRole;
+    private System.Windows.Forms.TextBox txtUserEmail;
+    private System.Windows.Forms.TextBox txtUserPriority;
+    private System.Windows.Forms.TextBox txtUserCalculatedJobs;
+    private System.Windows.Forms.TextBox txtUserExecutionTime;
+    private System.Windows.Forms.TabControl tabUserDetails;
+    private System.Windows.Forms.TabPage tabUserInformation;
+    private System.Windows.Forms.TabPage tabUserJobs;
+    private System.Windows.Forms.Label label12;
+    private System.Windows.Forms.Label label11;
+    private System.Windows.Forms.Label label10;
+    private System.Windows.Forms.Label label9;
+    private System.Windows.Forms.TextBox txtName;
+    private System.Windows.Forms.TextBox txtCPU;
+    private System.Windows.Forms.TextBox txtMemory;
+    private System.Windows.Forms.TextBox txtDetailsCalculatedJobs;
   }
 }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/Administration/HiveAdministrationView.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/Administration/HiveAdministrationView.cs	(revision 5469)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/Administration/HiveAdministrationView.cs	(revision 5472)
@@ -20,8 +20,10 @@
 #endregion
 
+using System.Collections.Generic;
 using System.Windows.Forms;
 using HeuristicLab.Clients.Hive.Administration;
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
+//using HeuristicLab.Services.Hive.Common.DataTransfer;
 
 namespace HeuristicLab.Clients.Hive.Views.Administration {
@@ -63,4 +65,41 @@
     }
 
+    /*List<SlaveGroup> slaveGroups;
+    List<Slave> slaves;*/
+
+    private void HiveAdministrationView_Load(object sender, System.EventArgs e) {
+
+      /* using (HeuristicLab.Clients.Common.Disposable<IHiveService> service = ServiceLocator.Instance.GetService()) {
+         slaveGroups = new List<SlaveGroup>(service.Obj.GetSlaveGroups());
+         slaves = new List<Slave>(service.Obj.GetSlaves());
+
+         foreach (SlaveGroup g in slaveGroups) {
+           TreeNode tn = new TreeNode();
+           tn.Text = "Group " + g.Name;
+           foreach (Slave s in slaves.FindAll(s => s.ParentResourceId != null && s.ParentResourceId == g.Id)) {
+             tn.Nodes.Add(new TreeNode(s.Name));
+           }
+           treeSlaveGroup.Nodes.Add(tn);
+         }
+
+         TreeNode ungrp = new TreeNode("UNGROUPED");
+         foreach (Slave s in slaves.FindAll(s => s.ParentResourceId == null)) {
+           ungrp.Nodes.Add(new TreeNode(s.Name));
+         }
+         treeSlaveGroup.Nodes.Add(ungrp);
+
+       }*/
+    }
+
+    private void treeSlaveGroup_Click(object sender, System.EventArgs e) {
+      string text = treeSlaveGroup.SelectedNode.Text;
+
+      /*Slave slave = slaves.Find(s => s.Name == text);
+      if (slave != null) {
+       
+      } */
+
+    }
+
     #region Event Handlers
     // TODO: Put event handlers here
