Changeset 5676 for branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/Administration/ResourcesView.cs
- Timestamp:
- 03/14/11 16:49:58 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/Administration/ResourcesView.cs
r5638 r5676 21 21 22 22 using System; 23 using System.Drawing; 23 24 using System.Linq; 24 25 using System.Windows.Forms; … … 41 42 treeSlaveGroup.ImageList.Images.Add(HiveImageLibrary.SlaveGroup); 42 43 updateScheduleControl.UpdateAction = new Action(UpdateSchedule); 43 } 44 45 private void UpdateSchedule() { 46 Guid resourceId = scheduleView.ResourceId; 47 if (resourceId != null) { 48 ServiceLocator.Instance.CallHiveService(service => { 49 var appointments = service.GetScheduleForResource(resourceId); 50 ItemList<Appointment> ias = new ItemList<Appointment>(); 51 appointments.ForEach(a => ias.Add(a)); 52 scheduleView.Invoke(new Action(() => scheduleView.Content = ias)); 53 }); 54 } 44 updateSlaveGroup.UpdateAction = new Action(UpdateSlaveGroups); 55 45 } 56 46 57 47 #region Register Content Events 58 48 protected override void DeregisterContentEvents() { 59 // TODO: Deregister your event handlers on the Content here 49 Content.ItemsAdded -= new Collections.CollectionItemsChangedEventHandler<Collections.IndexedItem<Resource>>(Content_ItemsAdded); 50 Content.ItemsRemoved -= new Collections.CollectionItemsChangedEventHandler<Collections.IndexedItem<Resource>>(Content_ItemsRemoved); 60 51 base.DeregisterContentEvents(); 61 52 } 62 53 protected override void RegisterContentEvents() { 63 54 base.RegisterContentEvents(); 64 // TODO: Register your event handlers on the Content here 55 Content.ItemsAdded += new Collections.CollectionItemsChangedEventHandler<Collections.IndexedItem<Resource>>(Content_ItemsAdded); 56 Content.ItemsRemoved += new Collections.CollectionItemsChangedEventHandler<Collections.IndexedItem<Resource>>(Content_ItemsRemoved); 65 57 } 66 58 #endregion … … 72 64 treeSlaveGroup.Nodes.Clear(); 73 65 } else { 74 66 treeSlaveGroup.Nodes.Clear(); 67 68 //rebuild 75 69 TreeNode ungrp = new TreeNode("UNGROUPED"); 76 70 ungrp.ImageIndex = treeSlaveGroup.ImageList.Images.Count - 1; … … 99 93 treeSlaveGroup.Nodes.Add(tn); 100 94 101 102 95 } else if (g.GetType() == typeof(Slave)) { 103 96 if (g.ParentResourceId == null) { … … 120 113 121 114 private void treeSlaveGroup_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { 115 if (slaveView.Content != null && slaveView.Content is SlaveGroup) { 116 slaveView.Content.PropertyChanged -= new System.ComponentModel.PropertyChangedEventHandler(SlaveViewContent_PropertyChanged); 117 } 118 119 slaveView.Content = (Resource)e.Node.Tag; 120 122 121 if (e.Node.Tag.GetType() == typeof(Slave)) { 123 slaveView.Content = (Slave)e.Node.Tag;124 122 scheduleView.ResourceId = ((Slave)e.Node.Tag).Id; 125 } 126 } 127 128 #region Event Handlers 129 // TODO: Put event handlers here 130 #endregion 123 } else if (e.Node.Tag is SlaveGroup) { 124 slaveView.Content.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(SlaveViewContent_PropertyChanged); 125 } 126 } 127 128 void SlaveViewContent_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { 129 OnContentChanged(); 130 } 131 132 private void btnAddGroup_Click(object sender, EventArgs e) { 133 SlaveGroup newGroup = new SlaveGroup(); 134 newGroup.Name = "New Group"; 135 Content.Add(newGroup); 136 } 137 138 void Content_ItemsRemoved(object sender, Collections.CollectionItemsChangedEventArgs<Collections.IndexedItem<Resource>> e) { 139 OnContentChanged(); 140 } 141 142 void Content_ItemsAdded(object sender, Collections.CollectionItemsChangedEventArgs<Collections.IndexedItem<Resource>> e) { 143 OnContentChanged(); 144 } 145 146 private void btnRemoveGroup_Click(object sender, EventArgs e) { 147 if (treeSlaveGroup.SelectedNode != null && treeSlaveGroup.SelectedNode.Tag != null) { 148 Content.Remove((Resource)treeSlaveGroup.SelectedNode.Tag); 149 } 150 } 151 152 private void btnSave_Click(object sender, EventArgs e) { 153 foreach (Resource res in Content) { 154 if (res is SlaveGroup && res.Id == Guid.Empty) { 155 SlaveGroup slaveGroup = (SlaveGroup)res; 156 ServiceLocator.Instance.CallHiveService(service => service.AddSlaveGroup(slaveGroup)); 157 } 158 if (res.Id != Guid.Empty && res.Modified) { 159 if (res is SlaveGroup) { 160 ServiceLocator.Instance.CallHiveService(service => service.UpdateSlaveGroup((SlaveGroup)res)); 161 } else if (res is Slave) { 162 ServiceLocator.Instance.CallHiveService(service => service.UpdateSlave((Slave)res)); 163 } 164 } 165 } 166 } 167 168 private void treeSlaveGroup_DragDrop(object sender, DragEventArgs e) { 169 if (e.Data.GetDataPresent("System.Windows.Forms.TreeNode", false)) { 170 Point pt = ((TreeView)sender).PointToClient(new Point(e.X, e.Y)); 171 TreeNode destNode = ((TreeView)sender).GetNodeAt(pt); 172 TreeNode newNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode"); 173 174 if (destNode.TreeView == newNode.TreeView) { 175 SlaveGroup sgrp = null; 176 if (destNode.Tag != null && destNode.Tag is SlaveGroup) { 177 sgrp = (SlaveGroup)destNode.Tag; 178 } 179 if (destNode.Parent != null && destNode.Parent.Tag is SlaveGroup) { 180 sgrp = (SlaveGroup)destNode.Parent.Tag; 181 } 182 183 if (sgrp != null) { 184 if (newNode.Tag != null && newNode.Tag is Slave) { 185 Slave slave = (Slave)newNode.Tag; 186 if (slave.ParentResourceId != sgrp.Id) { 187 slave.ParentResourceId = sgrp.Id; 188 OnContentChanged(); 189 } 190 } 191 } 192 } 193 } 194 } 195 196 private void treeSlaveGroup_ItemDrag(object sender, ItemDragEventArgs e) { 197 TreeNode sourceNode = (TreeNode)e.Item; 198 DoDragDrop(sourceNode, DragDropEffects.All); 199 } 200 201 private void treeSlaveGroup_DragEnter(object sender, DragEventArgs e) { 202 e.Effect = DragDropEffects.Move; 203 } 204 205 private void treeSlaveGroup_DragOver(object sender, DragEventArgs e) { 206 e.Effect = DragDropEffects.Move; 207 } 208 209 private void treeSlaveGroup_QueryContinueDrag(object sender, QueryContinueDragEventArgs e) { 210 e.Action = DragAction.Continue; 211 } 212 213 void ResetView() { 214 treeSlaveGroup.Nodes.Clear(); 215 if (slaveView.Content != null && slaveView.Content is SlaveGroup) { 216 slaveView.Content.PropertyChanged -= new System.ComponentModel.PropertyChangedEventHandler(SlaveViewContent_PropertyChanged); 217 } 218 slaveView.Content = null; 219 scheduleView.ResourceId = Guid.Empty; 220 } 221 222 private void UpdateSlaveGroups() { 223 this.Invoke(new Action(ResetView)); 224 Content.Clear(); 225 IItemList<Resource> resources = new ItemList<Resource>(); 226 227 ServiceLocator.Instance.CallHiveService(service => { 228 service.GetSlaveGroups().ForEach(g => resources.Add(g)); 229 service.GetSlaves().ForEach(s => resources.Add(s)); 230 }); 231 Content = resources; 232 } 233 234 private void UpdateSchedule() { 235 Guid resourceId = scheduleView.ResourceId; 236 if (resourceId != null) { 237 ServiceLocator.Instance.CallHiveService(service => { 238 var appointments = service.GetScheduleForResource(resourceId); 239 ItemList<Appointment> ias = new ItemList<Appointment>(); 240 appointments.ForEach(a => ias.Add(a)); 241 scheduleView.Invoke(new Action(() => scheduleView.Content = ias)); 242 }); 243 } 244 } 131 245 } 132 246 }
Note: See TracChangeset
for help on using the changeset viewer.