comparison FrmArmyTree.cs @ 234:c06d0865ff27

Fixes #388: Add "Add unit" options to army tree * Add button, context menu and double-click hooks for adding units
author IBBoard <dev@ibboard.co.uk>
date Sat, 21 Jan 2012 11:36:23 +0000
parents 870877498db9
children 2c3474d652e1
comparison
equal deleted inserted replaced
233:1ebbe78f89e7 234:c06d0865ff27
261 } 261 }
262 else if (tagData is Army) 262 else if (tagData is Army)
263 { 263 {
264 EditArmy((Army)tagData); 264 EditArmy((Army)tagData);
265 } 265 }
266 } 266 else if (tagData is ArmyCategory)
267 267 {
268 AddUnitFromCategory((ArmyCategory)tagData);
269 }
270 }
271
268 private void UpdateUnitName(WarFoundryObject obj, string oldValue, string newValue) 272 private void UpdateUnitName(WarFoundryObject obj, string oldValue, string newValue)
269 { 273 {
270 if (obj is ICostedWarFoundryObject) 274 if (obj is ICostedWarFoundryObject)
271 { 275 {
272 SetNodeName(obj); 276 SetNodeName(obj);
292 } 296 }
293 297
294 private void treeView_AfterSelect(object sender, TreeViewEventArgs e) 298 private void treeView_AfterSelect(object sender, TreeViewEventArgs e)
295 { 299 {
296 TreeNode node = treeView.SelectedNode; 300 TreeNode node = treeView.SelectedNode;
297 301 bttnAdd.Enabled = (node != null && node.Tag is ArmyCategory);
298 bttnDelete.Enabled = (node != null && node.Tag is Unit); 302 bttnDelete.Enabled = (node != null && node.Tag is Unit);
299 bttnEdit.Enabled = (node != null && (node.Tag is Unit || node.Tag is Army)); 303 bttnEdit.Enabled = (node != null && (node.Tag is Unit || node.Tag is Army));
300 } 304 }
301 305
302 private void miEditArmy_Click(object sender, EventArgs e) 306 private void miEditArmy_Click(object sender, EventArgs e)
325 { 329 {
326 TreeNode node = treeView.SelectedNode; 330 TreeNode node = treeView.SelectedNode;
327 Object tag = (node != null) ? node.Tag : null; 331 Object tag = (node != null) ? node.Tag : null;
328 bool tagIsUnit = (tag is Unit); 332 bool tagIsUnit = (tag is Unit);
329 bool tagIsArmy = (tag is Army); 333 bool tagIsArmy = (tag is Army);
330 334 bool tagIsCategory = (tag is ArmyCategory);
331 if (!tagIsUnit && !tagIsArmy) 335
336 if (!tagIsUnit && !tagIsArmy && !tagIsCategory)
332 { 337 {
333 e.Cancel = true; 338 e.Cancel = true;
334 } 339 }
335 else 340 else
336 { 341 {
337 miDeleteUnit.Visible = tagIsUnit; 342 miDeleteUnit.Visible = tagIsUnit;
338 miEditUnit.Visible = tagIsUnit; 343 miEditUnit.Visible = tagIsUnit;
339 miEditArmy.Visible = tagIsArmy; 344 miEditArmy.Visible = tagIsArmy;
340 } 345 miAddUnit.Visible = tagIsCategory;
346 }
347 }
348
349 private void miAddUnit_Click(object sender, EventArgs e)
350 {
351 AddUnit();
352 }
353
354 private void AddUnit()
355 {
356 ArmyCategory tagData = treeView.SelectedNode.Tag as ArmyCategory;
357 AddUnitFromCategory(tagData);
358 }
359
360 private void AddUnitFromCategory(ArmyCategory tagData)
361 {
362 MdiParent.AddUnitFromCategory(tagData.Category);
363 }
364
365 private void bttnAdd_Click(object sender, EventArgs e)
366 {
367 AddUnit();
341 } 368 }
342 } 369 }
343 } 370 }