Index: /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/CloudResourcesView.Designer.cs
===================================================================
--- /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/CloudResourcesView.Designer.cs	(revision 7388)
+++ /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/CloudResourcesView.Designer.cs	(revision 7389)
@@ -23,6 +23,8 @@
       this.treeCloudResources = new System.Windows.Forms.TreeView();
       this.imageListCloudResources = new System.Windows.Forms.ImageList(this.components);
+      this.subscriptionView = new HeuristicLab.Clients.Hive.CloudManager.Views.SubscriptionView();
       ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
       this.splitContainer1.Panel1.SuspendLayout();
+      this.splitContainer1.Panel2.SuspendLayout();
       this.splitContainer1.SuspendLayout();
       this.SuspendLayout();
@@ -42,6 +44,10 @@
       this.splitContainer1.Panel1.Controls.Add(this.btnAddSubscription);
       this.splitContainer1.Panel1.Controls.Add(this.treeCloudResources);
-      this.splitContainer1.Size = new System.Drawing.Size(670, 497);
-      this.splitContainer1.SplitterDistance = 249;
+      // 
+      // splitContainer1.Panel2
+      // 
+      this.splitContainer1.Panel2.Controls.Add(this.subscriptionView);
+      this.splitContainer1.Size = new System.Drawing.Size(804, 497);
+      this.splitContainer1.SplitterDistance = 275;
       this.splitContainer1.TabIndex = 0;
       // 
@@ -95,6 +101,6 @@
       // treeCloudResources
       // 
-      this.treeCloudResources.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-            | System.Windows.Forms.AnchorStyles.Left)
+      this.treeCloudResources.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.treeCloudResources.ImageIndex = 0;
@@ -103,6 +109,7 @@
       this.treeCloudResources.Name = "treeCloudResources";
       this.treeCloudResources.SelectedImageIndex = 0;
-      this.treeCloudResources.Size = new System.Drawing.Size(243, 460);
+      this.treeCloudResources.Size = new System.Drawing.Size(269, 460);
       this.treeCloudResources.TabIndex = 0;
+      this.treeCloudResources.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeCloudResources_NodeMouseClick);
       // 
       // imageListCloudResources
@@ -112,4 +119,16 @@
       this.imageListCloudResources.TransparentColor = System.Drawing.Color.Transparent;
       // 
+      // subscriptionView
+      // 
+      this.subscriptionView.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.subscriptionView.Caption = "SubscriptionView";
+      this.subscriptionView.Content = null;
+      this.subscriptionView.Location = new System.Drawing.Point(6, 34);
+      this.subscriptionView.Name = "subscriptionView";
+      this.subscriptionView.ReadOnly = false;
+      this.subscriptionView.Size = new System.Drawing.Size(516, 207);
+      this.subscriptionView.TabIndex = 0;
+      // 
       // CloudResourcesView
       // 
@@ -118,7 +137,8 @@
       this.Controls.Add(this.splitContainer1);
       this.Name = "CloudResourcesView";
-      this.Size = new System.Drawing.Size(670, 497);
+      this.Size = new System.Drawing.Size(804, 497);
       this.splitContainer1.Panel1.ResumeLayout(false);
       this.splitContainer1.Panel1.PerformLayout();
+      this.splitContainer1.Panel2.ResumeLayout(false);
       ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
       this.splitContainer1.ResumeLayout(false);
@@ -137,4 +157,5 @@
     private System.Windows.Forms.Label lblRefresh;
     private System.Windows.Forms.ImageList imageListCloudResources;
+    private SubscriptionView subscriptionView;
   }
 }
Index: /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/CloudResourcesView.cs
===================================================================
--- /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/CloudResourcesView.cs	(revision 7388)
+++ /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/CloudResourcesView.cs	(revision 7389)
@@ -4,4 +4,5 @@
 using System.Windows.Forms;
 using HeuristicLab.Clients.Hive.CloudManager.Model;
+using HeuristicLab.Common;
 using HeuristicLab.Core;
 using HeuristicLab.Core.Views;
@@ -98,5 +99,5 @@
       SetEnabledStateOfControls();
       if (Content == null) {
-        //slaveView.Content = null;
+        subscriptionView.Content = null;
         treeCloudResources.Nodes.Clear();
       } else {
@@ -194,6 +195,21 @@
 
     private void btnAddSlaveService_Click(object sender, EventArgs e) {
-      using (var form = new AddAzureServiceDialog(Content)) {
+      // When refreshing subscriptions in the dialog, 
+      // discoverservices and safetoconfig properties are always set to false
+      // -> work on deep copy
+      Cloner cloner = new Cloner();
+      IItemList<Subscription> subscriptions = cloner.Clone(Content);
+      using (var form = new AddAzureServiceDialog(subscriptions)) {
         form.ShowDialog();
+
+      }
+    }
+
+    private void treeCloudResources_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) {
+      if (e.Node.Tag is Subscription) {
+        subscriptionView.Visible = true;
+        subscriptionView.Content = (Subscription)e.Node.Tag;
+      } else {
+        subscriptionView.Visible = false;
 
       }
Index: /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/SubscriptionView.Designer.cs
===================================================================
--- /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/SubscriptionView.Designer.cs	(revision 7388)
+++ /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/SubscriptionView.Designer.cs	(revision 7389)
@@ -33,8 +33,10 @@
       this.cbDiscoverServices = new System.Windows.Forms.CheckBox();
       this.gbQuota = new System.Windows.Forms.GroupBox();
+      this.lblQuotaHostedServices = new System.Windows.Forms.Label();
+      this.label6 = new System.Windows.Forms.Label();
+      this.lblQuotaCores = new System.Windows.Forms.Label();
       this.label5 = new System.Windows.Forms.Label();
-      this.lblQuotaCores = new System.Windows.Forms.Label();
-      this.label6 = new System.Windows.Forms.Label();
-      this.lblQuotaHostedServices = new System.Windows.Forms.Label();
+      this.label7 = new System.Windows.Forms.Label();
+      this.txtSubscriptionName = new System.Windows.Forms.TextBox();
       this.gbQuota.SuspendLayout();
       this.SuspendLayout();
@@ -55,5 +57,6 @@
       this.txtSubscriptionId.Location = new System.Drawing.Point(122, 9);
       this.txtSubscriptionId.Name = "txtSubscriptionId";
-      this.txtSubscriptionId.Size = new System.Drawing.Size(396, 20);
+      this.txtSubscriptionId.ReadOnly = true;
+      this.txtSubscriptionId.Size = new System.Drawing.Size(405, 20);
       this.txtSubscriptionId.TabIndex = 10;
       // 
@@ -61,5 +64,5 @@
       // 
       this.label3.AutoSize = true;
-      this.label3.Location = new System.Drawing.Point(3, 43);
+      this.label3.Location = new System.Drawing.Point(3, 64);
       this.label3.Name = "label3";
       this.label3.Size = new System.Drawing.Size(113, 13);
@@ -71,7 +74,8 @@
       this.txtCertThumbprint.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
             | System.Windows.Forms.AnchorStyles.Right)));
-      this.txtCertThumbprint.Location = new System.Drawing.Point(122, 40);
+      this.txtCertThumbprint.Location = new System.Drawing.Point(122, 61);
       this.txtCertThumbprint.Name = "txtCertThumbprint";
-      this.txtCertThumbprint.Size = new System.Drawing.Size(396, 20);
+      this.txtCertThumbprint.ReadOnly = true;
+      this.txtCertThumbprint.Size = new System.Drawing.Size(405, 20);
       this.txtCertThumbprint.TabIndex = 17;
       // 
@@ -79,5 +83,5 @@
       // 
       this.label2.AutoSize = true;
-      this.label2.Location = new System.Drawing.Point(4, 141);
+      this.label2.Location = new System.Drawing.Point(3, 180);
       this.label2.Name = "label2";
       this.label2.Size = new System.Drawing.Size(96, 13);
@@ -88,14 +92,15 @@
       // 
       this.cbSaveSubscription.AutoSize = true;
-      this.cbSaveSubscription.Location = new System.Drawing.Point(123, 141);
+      this.cbSaveSubscription.Location = new System.Drawing.Point(122, 179);
       this.cbSaveSubscription.Name = "cbSaveSubscription";
       this.cbSaveSubscription.Size = new System.Drawing.Size(15, 14);
       this.cbSaveSubscription.TabIndex = 19;
       this.cbSaveSubscription.UseVisualStyleBackColor = true;
+      this.cbSaveSubscription.CheckedChanged += new System.EventHandler(this.cbSaveSubscription_CheckedChanged);
       // 
       // label4
       // 
       this.label4.AutoSize = true;
-      this.label4.Location = new System.Drawing.Point(4, 166);
+      this.label4.Location = new System.Drawing.Point(3, 160);
       this.label4.Name = "label4";
       this.label4.Size = new System.Drawing.Size(96, 13);
@@ -106,9 +111,10 @@
       // 
       this.cbDiscoverServices.AutoSize = true;
-      this.cbDiscoverServices.Location = new System.Drawing.Point(123, 166);
+      this.cbDiscoverServices.Location = new System.Drawing.Point(122, 159);
       this.cbDiscoverServices.Name = "cbDiscoverServices";
       this.cbDiscoverServices.Size = new System.Drawing.Size(15, 14);
       this.cbDiscoverServices.TabIndex = 21;
       this.cbDiscoverServices.UseVisualStyleBackColor = true;
+      this.cbDiscoverServices.CheckedChanged += new System.EventHandler(this.cbDiscoverServices_CheckedChanged);
       // 
       // gbQuota
@@ -120,10 +126,37 @@
       this.gbQuota.Controls.Add(this.lblQuotaCores);
       this.gbQuota.Controls.Add(this.label5);
-      this.gbQuota.Location = new System.Drawing.Point(6, 73);
+      this.gbQuota.Location = new System.Drawing.Point(6, 87);
       this.gbQuota.Name = "gbQuota";
-      this.gbQuota.Size = new System.Drawing.Size(512, 65);
+      this.gbQuota.Size = new System.Drawing.Size(521, 65);
       this.gbQuota.TabIndex = 22;
       this.gbQuota.TabStop = false;
       this.gbQuota.Text = "Quota";
+      // 
+      // lblQuotaHostedServices
+      // 
+      this.lblQuotaHostedServices.AutoSize = true;
+      this.lblQuotaHostedServices.Location = new System.Drawing.Point(113, 39);
+      this.lblQuotaHostedServices.Name = "lblQuotaHostedServices";
+      this.lblQuotaHostedServices.Size = new System.Drawing.Size(30, 13);
+      this.lblQuotaHostedServices.TabIndex = 26;
+      this.lblQuotaHostedServices.Text = "0 / 3";
+      // 
+      // label6
+      // 
+      this.label6.AutoSize = true;
+      this.label6.Location = new System.Drawing.Point(6, 39);
+      this.label6.Name = "label6";
+      this.label6.Size = new System.Drawing.Size(88, 13);
+      this.label6.TabIndex = 25;
+      this.label6.Text = "Hosted Services:";
+      // 
+      // lblQuotaCores
+      // 
+      this.lblQuotaCores.AutoSize = true;
+      this.lblQuotaCores.Location = new System.Drawing.Point(113, 16);
+      this.lblQuotaCores.Name = "lblQuotaCores";
+      this.lblQuotaCores.Size = new System.Drawing.Size(30, 13);
+      this.lblQuotaCores.TabIndex = 24;
+      this.lblQuotaCores.Text = "0 / 3";
       // 
       // label5
@@ -136,30 +169,22 @@
       this.label5.Text = "Cores:";
       // 
-      // lblQuotaCores
-      // 
-      this.lblQuotaCores.AutoSize = true;
-      this.lblQuotaCores.Location = new System.Drawing.Point(113, 16);
-      this.lblQuotaCores.Name = "lblQuotaCores";
-      this.lblQuotaCores.Size = new System.Drawing.Size(30, 13);
-      this.lblQuotaCores.TabIndex = 24;
-      this.lblQuotaCores.Text = "0 / 3";
-      // 
-      // label6
-      // 
-      this.label6.AutoSize = true;
-      this.label6.Location = new System.Drawing.Point(6, 39);
-      this.label6.Name = "label6";
-      this.label6.Size = new System.Drawing.Size(88, 13);
-      this.label6.TabIndex = 25;
-      this.label6.Text = "Hosted Services:";
-      // 
-      // lblQuotaHostedServices
-      // 
-      this.lblQuotaHostedServices.AutoSize = true;
-      this.lblQuotaHostedServices.Location = new System.Drawing.Point(113, 39);
-      this.lblQuotaHostedServices.Name = "lblQuotaHostedServices";
-      this.lblQuotaHostedServices.Size = new System.Drawing.Size(30, 13);
-      this.lblQuotaHostedServices.TabIndex = 26;
-      this.lblQuotaHostedServices.Text = "0 / 3";
+      // label7
+      // 
+      this.label7.AutoSize = true;
+      this.label7.Location = new System.Drawing.Point(3, 38);
+      this.label7.Name = "label7";
+      this.label7.Size = new System.Drawing.Size(99, 13);
+      this.label7.TabIndex = 23;
+      this.label7.Text = "Subscription Name:";
+      // 
+      // txtSubscriptionName
+      // 
+      this.txtSubscriptionName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.txtSubscriptionName.Location = new System.Drawing.Point(122, 35);
+      this.txtSubscriptionName.Name = "txtSubscriptionName";
+      this.txtSubscriptionName.ReadOnly = true;
+      this.txtSubscriptionName.Size = new System.Drawing.Size(405, 20);
+      this.txtSubscriptionName.TabIndex = 24;
       // 
       // SubscriptionView
@@ -167,4 +192,6 @@
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.txtSubscriptionName);
+      this.Controls.Add(this.label7);
       this.Controls.Add(this.gbQuota);
       this.Controls.Add(this.cbDiscoverServices);
@@ -177,5 +204,5 @@
       this.Controls.Add(this.label1);
       this.Name = "SubscriptionView";
-      this.Size = new System.Drawing.Size(521, 190);
+      this.Size = new System.Drawing.Size(530, 207);
       this.gbQuota.ResumeLayout(false);
       this.gbQuota.PerformLayout();
@@ -200,4 +227,6 @@
     private System.Windows.Forms.Label lblQuotaCores;
     private System.Windows.Forms.Label label5;
+    private System.Windows.Forms.Label label7;
+    private System.Windows.Forms.TextBox txtSubscriptionName;
   }
 }
Index: /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/SubscriptionView.cs
===================================================================
--- /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/SubscriptionView.cs	(revision 7388)
+++ /branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/SubscriptionView.cs	(revision 7389)
@@ -16,4 +16,51 @@
       InitializeComponent();
     }
+
+    protected override void DeregisterContentEvents() {
+      base.DeregisterContentEvents();
+    }
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content == null) {
+        txtSubscriptionId.Clear();
+        txtSubscriptionName.Clear();
+        txtCertThumbprint.Clear();
+        lblQuotaCores.Text = "-";
+        lblQuotaHostedServices.Text = "-";
+        cbDiscoverServices.Checked = false;
+        cbSaveSubscription.Checked = false;
+      } else {
+        Subscription sub = (Subscription)Content;
+        txtSubscriptionId.Text = sub.SubscriptionID;
+        txtSubscriptionName.Text = sub.SubscriptionName;
+        txtCertThumbprint.Text = sub.CertificateThumbprint;
+        lblQuotaCores.Text = string.Format("{0} / {1}", sub.CurrentCoreCount, sub.MaxCoreCount);
+        lblQuotaHostedServices.Text = string.Format("{0} / {1}", sub.CurrentHostedServices, sub.MaxHostedServices);
+        cbDiscoverServices.Checked = sub.DiscoverServices;
+        cbSaveSubscription.Checked = sub.SaveToConfig;
+      }
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+    }
+
+    private void cbSaveSubscription_CheckedChanged(object sender, System.EventArgs e) {
+      if (Content != null) {
+        Content.SaveToConfig = cbSaveSubscription.Checked;
+      }
+    }
+
+    private void cbDiscoverServices_CheckedChanged(object sender, System.EventArgs e) {
+      if (Content != null) {
+        Content.DiscoverServices = cbDiscoverServices.Checked;
+      }
+    }
+
+
   }
 }
