comparison FrmArmyTree.cs @ 221:5233147ca7e4

Re #101: Make army names and sizes modifiable after creation * Add form for editing name and size * Add edit options from army tree * Add edit options from Edit menu
author IBBoard <dev@ibboard.co.uk>
date Mon, 29 Aug 2011 20:06:54 +0100
parents 417d3f75a752
children 4ada3252d1ea
comparison
equal deleted inserted replaced
220:467decfdde8e 221:5233147ca7e4
34 private StringValChangedDelegate UnitNameChangedMethod, ArmyNameChangedMethod, TreeNameChangedMethod; 34 private StringValChangedDelegate UnitNameChangedMethod, ArmyNameChangedMethod, TreeNameChangedMethod;
35 private ToolBar toolBar; 35 private ToolBar toolBar;
36 private IBBToolBarButton bttnEdit; 36 private IBBToolBarButton bttnEdit;
37 private IBBToolBarButton bttnDelete; 37 private IBBToolBarButton bttnDelete;
38 private ImageList imageList; 38 private ImageList imageList;
39 private IBBMenuItem miEditArmy;
39 private CommandStack commandStack; 40 private CommandStack commandStack;
40 public GameSystem CurrentGameSystem 41 public GameSystem CurrentGameSystem
41 { 42 {
42 get { return WarFoundryCore.CurrentGameSystem; } 43 get { return WarFoundryCore.CurrentGameSystem; }
43 set { WarFoundryCore.CurrentGameSystem = value; } 44 set { WarFoundryCore.CurrentGameSystem = value; }
100 /// Required method for Designer support - do not modify 101 /// Required method for Designer support - do not modify
101 /// the contents of this method with the code editor. 102 /// the contents of this method with the code editor.
102 /// </summary> 103 /// </summary>
103 private void InitializeComponent() 104 private void InitializeComponent()
104 { 105 {
105 this.components = new System.ComponentModel.Container(); 106 this.components = new System.ComponentModel.Container();
106 System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmArmyTree)); 107 System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmArmyTree));
107 this.contextMenu = new System.Windows.Forms.ContextMenu(); 108 this.contextMenu = new System.Windows.Forms.ContextMenu();
108 this.miEditUnit = new IBBoard.Windows.Forms.IBBMenuItem(); 109 this.miEditUnit = new IBBoard.Windows.Forms.IBBMenuItem();
109 this.miDeleteUnit = new IBBoard.Windows.Forms.IBBMenuItem(); 110 this.miDeleteUnit = new IBBoard.Windows.Forms.IBBMenuItem();
110 this.imageList = new System.Windows.Forms.ImageList(this.components); 111 this.imageList = new System.Windows.Forms.ImageList(this.components);
111 this.toolBar = new System.Windows.Forms.ToolBar(); 112 this.toolBar = new System.Windows.Forms.ToolBar();
112 this.bttnEdit = new IBBoard.Windows.Forms.IBBToolBarButton(); 113 this.bttnEdit = new IBBoard.Windows.Forms.IBBToolBarButton();
113 this.bttnDelete = new IBBoard.Windows.Forms.IBBToolBarButton(); 114 this.bttnDelete = new IBBoard.Windows.Forms.IBBToolBarButton();
114 this.treeView = new System.Windows.Forms.TreeView(); 115 this.treeView = new System.Windows.Forms.TreeView();
115 this.SuspendLayout(); 116 this.miEditArmy = new IBBoard.Windows.Forms.IBBMenuItem();
116 // 117 this.SuspendLayout();
117 // contextMenu 118 //
118 // 119 // contextMenu
119 this.contextMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { 120 //
121 this.contextMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
122 this.miEditArmy,
120 this.miEditUnit, 123 this.miEditUnit,
121 this.miDeleteUnit}); 124 this.miDeleteUnit});
122 this.contextMenu.Popup += new System.EventHandler(this.contextMenu_Popup); 125 this.contextMenu.Popup += new System.EventHandler(this.contextMenu_Popup);
123 // 126 //
124 // miEditUnit 127 // miEditUnit
125 // 128 //
126 this.miEditUnit.Index = 0; 129 this.miEditUnit.Index = 1;
127 this.miEditUnit.Text = "&edit unit"; 130 this.miEditUnit.Text = "&edit unit";
128 this.miEditUnit.Click += new System.EventHandler(this.miEdit_Click); 131 this.miEditUnit.Click += new System.EventHandler(this.miEdit_Click);
129 // 132 //
130 // miDeleteUnit 133 // miDeleteUnit
131 // 134 //
132 this.miDeleteUnit.Index = 1; 135 this.miDeleteUnit.Index = 2;
133 this.miDeleteUnit.Text = "&delete unit"; 136 this.miDeleteUnit.Text = "&delete unit";
134 this.miDeleteUnit.Click += new System.EventHandler(this.miDelete_Click); 137 this.miDeleteUnit.Click += new System.EventHandler(this.miDelete_Click);
135 // 138 //
136 // imageList 139 // imageList
137 // 140 //
138 this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream"))); 141 this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream")));
139 this.imageList.TransparentColor = System.Drawing.Color.Transparent; 142 this.imageList.TransparentColor = System.Drawing.Color.Transparent;
140 this.imageList.Images.SetKeyName(0, "gtk-edit.png"); 143 this.imageList.Images.SetKeyName(0, "gtk-edit.png");
141 this.imageList.Images.SetKeyName(1, "edit-delete.png"); 144 this.imageList.Images.SetKeyName(1, "edit-delete.png");
142 // 145 //
143 // toolBar 146 // toolBar
144 // 147 //
145 this.toolBar.Buttons.AddRange(new System.Windows.Forms.ToolBarButton[] { 148 this.toolBar.Buttons.AddRange(new System.Windows.Forms.ToolBarButton[] {
146 this.bttnEdit, 149 this.bttnEdit,
147 this.bttnDelete}); 150 this.bttnDelete});
148 this.toolBar.ButtonSize = new System.Drawing.Size(16, 16); 151 this.toolBar.ButtonSize = new System.Drawing.Size(16, 16);
149 this.toolBar.DropDownArrows = true; 152 this.toolBar.DropDownArrows = true;
150 this.toolBar.ImageList = this.imageList; 153 this.toolBar.ImageList = this.imageList;
151 this.toolBar.Location = new System.Drawing.Point(0, 0); 154 this.toolBar.Location = new System.Drawing.Point(0, 0);
152 this.toolBar.Name = "toolBar"; 155 this.toolBar.Name = "toolBar";
153 this.toolBar.ShowToolTips = true; 156 this.toolBar.ShowToolTips = true;
154 this.toolBar.Size = new System.Drawing.Size(240, 28); 157 this.toolBar.Size = new System.Drawing.Size(240, 28);
155 this.toolBar.TabIndex = 3; 158 this.toolBar.TabIndex = 3;
156 this.toolBar.ButtonClick += new System.Windows.Forms.ToolBarButtonClickEventHandler(this.toolBar_ButtonClick); 159 this.toolBar.ButtonClick += new System.Windows.Forms.ToolBarButtonClickEventHandler(this.toolBar_ButtonClick);
157 // 160 //
158 // bttnEdit 161 // bttnEdit
159 // 162 //
160 this.bttnEdit.Enabled = false; 163 this.bttnEdit.Enabled = false;
161 this.bttnEdit.ImageIndex = 0; 164 this.bttnEdit.ImageIndex = 0;
162 this.bttnEdit.Name = "bttnEdit"; 165 this.bttnEdit.Name = "bttnEdit";
163 // 166 //
164 // bttnDelete 167 // bttnDelete
165 // 168 //
166 this.bttnDelete.Enabled = false; 169 this.bttnDelete.Enabled = false;
167 this.bttnDelete.ImageIndex = 1; 170 this.bttnDelete.ImageIndex = 1;
168 this.bttnDelete.Name = "bttnDelete"; 171 this.bttnDelete.Name = "bttnDelete";
169 // 172 //
170 // treeView 173 // treeView
171 // 174 //
172 this.treeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 175 this.treeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
173 | System.Windows.Forms.AnchorStyles.Left) 176 | System.Windows.Forms.AnchorStyles.Left)
174 | System.Windows.Forms.AnchorStyles.Right))); 177 | System.Windows.Forms.AnchorStyles.Right)));
175 this.treeView.ContextMenu = this.contextMenu; 178 this.treeView.ContextMenu = this.contextMenu;
176 this.treeView.FullRowSelect = true; 179 this.treeView.FullRowSelect = true;
177 this.treeView.Location = new System.Drawing.Point(0, 28); 180 this.treeView.Location = new System.Drawing.Point(0, 28);
178 this.treeView.Name = "treeView"; 181 this.treeView.Name = "treeView";
179 this.treeView.Size = new System.Drawing.Size(240, 250); 182 this.treeView.Size = new System.Drawing.Size(240, 250);
180 this.treeView.TabIndex = 0; 183 this.treeView.TabIndex = 0;
181 this.treeView.DoubleClick += new System.EventHandler(this.treeView_DoubleClick); 184 this.treeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView_AfterSelect);
182 this.treeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView_AfterSelect); 185 this.treeView.DoubleClick += new System.EventHandler(this.treeView_DoubleClick);
183 this.treeView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.treeView_MouseDown); 186 this.treeView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.treeView_MouseDown);
184 // 187 //
185 // FrmArmyTree 188 // miEditArmy
186 // 189 //
187 this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); 190 this.miEditArmy.Index = 0;
188 this.ClientSize = new System.Drawing.Size(240, 277); 191 this.miEditArmy.Text = "&edit army";
189 this.ControlBox = false; 192 this.miEditArmy.Click += new System.EventHandler(this.miEditArmy_Click);
190 this.Controls.Add(this.toolBar); 193 //
191 this.Controls.Add(this.treeView); 194 // FrmArmyTree
192 this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow; 195 //
193 this.MaximizeBox = false; 196 this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
194 this.MinimizeBox = false; 197 this.ClientSize = new System.Drawing.Size(240, 277);
195 this.Name = "FrmArmyTree"; 198 this.ControlBox = false;
196 this.Text = "FrmArmyTree"; 199 this.Controls.Add(this.toolBar);
197 this.ResumeLayout(false); 200 this.Controls.Add(this.treeView);
198 this.PerformLayout(); 201 this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
202 this.MaximizeBox = false;
203 this.MinimizeBox = false;
204 this.Name = "FrmArmyTree";
205 this.Text = "FrmArmyTree";
206 this.ResumeLayout(false);
207 this.PerformLayout();
199 208
200 } 209 }
201 #endregion 210 #endregion
202 211
203 private void ClearArmy() 212 private void ClearArmy()
339 348
340 349
341 private void contextMenu_Popup(object sender, System.EventArgs e) 350 private void contextMenu_Popup(object sender, System.EventArgs e)
342 { 351 {
343 TreeNode node = treeView.SelectedNode; 352 TreeNode node = treeView.SelectedNode;
344 353 Object tag = (node != null) ? node.Tag : null;
345 if (node!=null && node.Tag is Unit) 354
346 { 355 if (tag is Unit)
347 foreach(MenuItem item in contextMenu.MenuItems) 356 {
348 { 357 miDeleteUnit.Visible = true;
349 item.Visible = true; 358 miEditUnit.Visible = true;
350 } 359 miEditArmy.Visible = false;
360 }
361 else if (tag is Army)
362 {
363 miDeleteUnit.Visible = false;
364 miEditUnit.Visible = false;
365 miEditArmy.Visible = true;
351 } 366 }
352 else 367 else
353 { 368 {
354 foreach(MenuItem item in contextMenu.MenuItems) 369 miDeleteUnit.Visible = false;
355 { 370 miEditUnit.Visible = false;
356 item.Visible = false; 371 miEditArmy.Visible = false;
357 }
358 } 372 }
359 } 373 }
360 374
361 private void treeView_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) 375 private void treeView_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
362 { 376 {
392 } 406 }
393 } 407 }
394 408
395 private void miEdit_Click(object sender, System.EventArgs e) 409 private void miEdit_Click(object sender, System.EventArgs e)
396 { 410 {
397 EditUnit(); 411 EditTreeItem();
398 } 412 }
399 413
400 private void treeView_DoubleClick(object sender, System.EventArgs e) 414 private void treeView_DoubleClick(object sender, System.EventArgs e)
401 { 415 {
402 EditUnit(); 416 EditTreeItem();
403 } 417 }
404 418
405 private void EditUnit() 419 private void EditTreeItem()
406 { 420 {
407 TreeNode selected = treeView.SelectedNode; 421 TreeNode selected = treeView.SelectedNode;
408 object tagData = selected.Tag; 422 object tagData = selected.Tag;
409 423
410 if (tagData is Unit) 424 if (tagData is Unit)
411 { 425 {
412 Unit unit = (Unit) tagData; 426 Unit unit = (Unit) tagData;
413 MdiParent.OpenUnitDialog(unit); 427 MdiParent.OpenUnitDialog(unit);
428 }
429 else if (tagData is Army)
430 {
431 EditArmy((Army)tagData);
414 } 432 }
415 } 433 }
416 434
417 private void UpdateUnitName(WarFoundryObject obj, string oldValue, string newValue) 435 private void UpdateUnitName(WarFoundryObject obj, string oldValue, string newValue)
418 { 436 {
452 { 470 {
453 DeleteUnit(); 471 DeleteUnit();
454 } 472 }
455 else if (e.Button == bttnEdit) 473 else if (e.Button == bttnEdit)
456 { 474 {
457 EditUnit(); 475 EditTreeItem();
458 } 476 }
459 } 477 }
460 478
461 private void treeView_AfterSelect(object sender, TreeViewEventArgs e) 479 private void treeView_AfterSelect(object sender, TreeViewEventArgs e)
462 { 480 {
463 TreeNode node = treeView.SelectedNode; 481 TreeNode node = treeView.SelectedNode;
464 482
465 bttnDelete.Enabled = (node != null && node.Tag is Unit); 483 bttnDelete.Enabled = (node != null && node.Tag is Unit);
466 bttnEdit.Enabled = bttnDelete.Enabled; 484 bttnEdit.Enabled = (node != null && (node.Tag is Unit || node.Tag is Army));
485 }
486
487 private void miEditArmy_Click(object sender, EventArgs e)
488 {
489 Army army = treeView.SelectedNode.Tag as Army;
490 EditArmy(army);
491 }
492
493 private void EditArmy(Army army)
494 {
495 FrmEditArmy editForm = new FrmEditArmy(commandStack, army);
496 editForm.ShowDialog(this.ParentForm);
467 } 497 }
468 } 498 }
469 } 499 }