Changeset 7433 for branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/CloudResourcesView.cs
- Timestamp:
- 01/31/12 15:25:18 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/CloudResourcesView.cs
r7403 r7433 101 101 viewHost.Content = null; 102 102 treeCloudResources.Nodes.Clear(); 103 } else {103 } else if (treeCloudResources.Nodes.Count == 0) { 104 104 treeCloudResources.BeginUpdate(); 105 treeCloudResources.Nodes.Clear();105 //treeCloudResources.Nodes.Clear(); 106 106 foreach (Subscription sub in Content) { 107 TreeNode nodeSub = new TreeNode(); 108 nodeSub.Tag = sub; 109 nodeSub.Text = sub.SubscriptionName; 110 nodeSub.ImageIndex = subscriptionImageIndex; 111 nodeSub.SelectedImageIndex = nodeSub.ImageIndex; 112 107 TreeNode nodeSub = GetTreeNode(sub, sub.SubscriptionName, subscriptionImageIndex); 113 108 foreach (HostedService s in HostedServices) { 114 109 if (s.Subscription.SubscriptionID == sub.SubscriptionID) { 115 TreeNode nodeServ = new TreeNode(); 116 nodeServ.Tag = s; 117 nodeServ.Text = s.HostedServiceProperties.Label; 118 nodeServ.ImageIndex = serviceImageIndex; 119 nodeServ.SelectedImageIndex = nodeServ.ImageIndex; 120 110 TreeNode nodeServ = GetTreeNode(s, s.HostedServiceProperties.Label, serviceImageIndex); 121 111 foreach (Deployment d in s.Deployments) { 122 TreeNode nodeDepl = new TreeNode(); 123 nodeDepl.Tag = d; 124 nodeDepl.Text = d.Label + " (" + d.DeploymentSlot + ")"; 125 nodeDepl.ImageIndex = deploymentImageIndex; 126 nodeDepl.SelectedImageIndex = nodeDepl.ImageIndex; 112 TreeNode nodeDepl = GetTreeNode(d, d.Label + " (" + d.DeploymentSlot + ")", deploymentImageIndex); 127 113 nodeServ.Nodes.Add(nodeDepl); 128 114 } … … 133 119 } 134 120 treeCloudResources.EndUpdate(); 135 } 121 } else { 122 treeCloudResources.BeginUpdate(); 123 TreeNodeCollection tncSubs = treeCloudResources.Nodes; 124 125 // Delete treenodes that have no corresponding data in Content and HosteServices 126 foreach (TreeNode tnSub in tncSubs) { 127 Subscription s = (Subscription)tnSub.Tag; 128 int idx = Content.IndexOf(s); 129 if (idx == -1) { 130 tncSubs.Remove(tnSub); 131 } else { 132 TreeNodeCollection tncHS = tnSub.Nodes; 133 foreach (TreeNode tnHS in tncHS) { 134 HostedService hs = (HostedService)tnHS.Tag; 135 int idxHS = HostedServices.IndexOf(hs); 136 if (idxHS == -1) { 137 tncHS.Remove(tnHS); 138 } else { 139 TreeNodeCollection tncDep = tnHS.Nodes; 140 foreach (TreeNode tnDep in tncDep) { 141 Deployment dep = (Deployment)tnDep.Tag; 142 HostedService hsDep = HostedServices[idxHS]; 143 int idxDep = hsDep.Deployments.IndexOf(dep); 144 if (idxDep == -1) { 145 tncDep.Remove(tnDep); 146 } 147 } 148 } 149 } 150 } 151 } 152 153 // Add missing treenodes 154 foreach (Subscription sub in Content) { 155 bool foundSub = false; 156 TreeNode foundSubNode = null; 157 foreach (TreeNode tnSub in treeCloudResources.Nodes) { 158 if (((Subscription)tnSub.Tag).Equals(sub)) { 159 foundSub = true; 160 foundSubNode = tnSub; 161 } 162 } 163 TreeNode nodeSub; 164 if (!foundSub) { 165 nodeSub = GetTreeNode(sub, sub.SubscriptionName, subscriptionImageIndex); 166 treeCloudResources.Nodes.Add(nodeSub); 167 } else { 168 nodeSub = foundSubNode; 169 } 170 foreach (HostedService s in HostedServices) { 171 if (s.Subscription.SubscriptionID == sub.SubscriptionID) { 172 bool foundHS = false; 173 TreeNode foundHSNode = null; 174 foreach (TreeNode tnHS in nodeSub.Nodes) { 175 if (((HostedService)tnHS.Tag).Equals(s)) { 176 foundHS = true; 177 foundHSNode = tnHS; 178 } 179 } 180 TreeNode nodeServ; 181 if (!foundHS) { 182 nodeServ = GetTreeNode(s, s.HostedServiceProperties.Label, serviceImageIndex); 183 nodeSub.Nodes.Add(nodeServ); 184 } else { 185 nodeServ = foundHSNode; 186 } 187 foreach (Deployment d in s.Deployments) { 188 bool foundDep = false; 189 TreeNode foundDepNode; 190 foreach (TreeNode tnDep in nodeServ.Nodes) { 191 if (((Deployment)tnDep.Tag).Equals(d)) { 192 foundDep = true; 193 foundDepNode = tnDep; 194 } 195 } 196 TreeNode nodeDepl; 197 if (!foundDep) { 198 nodeDepl = GetTreeNode(d, d.Label + " (" + d.DeploymentSlot + ")", deploymentImageIndex); 199 nodeServ.Nodes.Add(nodeDepl); 200 } else { 201 // nothing to do 202 } 203 } 204 } 205 } 206 } 207 // ---------------------------- 208 treeCloudResources.EndUpdate(); 209 } 210 } 211 212 private TreeNode GetTreeNode(Object tag, string text, int imageIndex) { 213 TreeNode node = new TreeNode(); 214 node.Tag = tag; 215 node.Text = text; 216 node.ImageIndex = imageIndex; 217 node.SelectedImageIndex = node.ImageIndex; 218 return node; 136 219 } 137 220
Note: See TracChangeset
for help on using the changeset viewer.