Mercurial > repos > IBBoard.WarFoundry.GUI.WinForms
comparison FrmArmyTree.cs @ 62:0e7c257ca8d6 WarFoundry_v0.1beta2_Winforms
Fixes #164: Show unit cost in army tree
* Add points value in army tree for units, category and army (aggregating as it goes up the tree)
* Add code to update tree node text as points values change
* Remove references to now deprecated points-related properties
Also:
* Add rolling log file appender to logging config
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 19 Sep 2009 19:44:45 +0000 |
parents | a0ec03c24cd9 |
children | 4db2c1086a85 |
comparison
equal
deleted
inserted
replaced
61:a0ec03c24cd9 | 62:0e7c257ca8d6 |
---|---|
6 using System.Drawing; | 6 using System.Drawing; |
7 using System.Collections.Generic; | 7 using System.Collections.Generic; |
8 using System.ComponentModel; | 8 using System.ComponentModel; |
9 using System.Windows.Forms; | 9 using System.Windows.Forms; |
10 using IBBoard.Commands; | 10 using IBBoard.Commands; |
11 using IBBoard.Lang; | |
11 using IBBoard.Windows.Forms.I18N; | 12 using IBBoard.Windows.Forms.I18N; |
12 using IBBoard.Windows.Forms; | 13 using IBBoard.Windows.Forms; |
13 using IBBoard.WarFoundry.API; | 14 using IBBoard.WarFoundry.API; |
14 using IBBoard.WarFoundry.API.Commands; | 15 using IBBoard.WarFoundry.API.Commands; |
15 using IBBoard.WarFoundry.API.Objects; | 16 using IBBoard.WarFoundry.API.Objects; |
202 TreeNode[] catNodes = new TreeNode[cats.Length]; | 203 TreeNode[] catNodes = new TreeNode[cats.Length]; |
203 Unit[] units; | 204 Unit[] units; |
204 | 205 |
205 for (int i = 0; i < cats.Length; i++) | 206 for (int i = 0; i < cats.Length; i++) |
206 { | 207 { |
207 units = army.GetUnits(cats[i]); | 208 ArmyCategory cat = cats[i]; |
208 cats[i].NameChanged += TreeNameChangedMethod; | 209 units = army.GetUnits(cat); |
210 cat.NameChanged += TreeNameChangedMethod; | |
211 cat.PointsValueChanged += NodePointsValueChanged; | |
209 TreeNode[] unitNodes = new TreeNode[units.Length]; | 212 TreeNode[] unitNodes = new TreeNode[units.Length]; |
210 TreeNode temp; | 213 TreeNode temp; |
211 | 214 |
212 for (int j = 0; j < units.Length; j++) | 215 for (int j = 0; j < units.Length; j++) |
213 { | 216 { |
214 unitNodes[j] = CreateTreeNode(units[j]); | 217 unitNodes[j] = CreateTreeNode(units[j]); |
215 } | 218 } |
216 | 219 |
217 temp = new TreeNode(cats[i].Name, unitNodes); | 220 temp = new TreeNode(CreateNodeName(cat), unitNodes); |
218 temp.Tag = cats[i]; | 221 temp.Tag = cat; |
219 catNodes[i] = temp; | 222 catNodes[i] = temp; |
220 nodes[cats[i].ID] = temp; | 223 nodes[cat.ID] = temp; |
221 } | 224 } |
222 | 225 |
223 TreeNode root = new TreeNode(army.Name, catNodes); | 226 TreeNode root = new TreeNode(CreateNodeName(army), catNodes); |
224 root.Tag = army; | 227 root.Tag = army; |
228 army.PointsValueChanged += NodePointsValueChanged; | |
229 nodes[army.ID] = root; | |
225 treeView.Nodes.Add(root); | 230 treeView.Nodes.Add(root); |
226 root.ExpandAll(); | 231 root.ExpandAll(); |
227 } | 232 } |
228 } | 233 } |
234 | |
235 private string CreateNodeName(ICostedWarFoundryObject obj) | |
236 { | |
237 return Translation.GetTranslation("treeNodeText", "{0} ({1}pts)", obj.Name, obj.Points); | |
238 } | |
239 | |
240 private void NodePointsValueChanged(WarFoundryObject obj, double oldValue, double newValue) | |
241 { | |
242 if (obj is ICostedWarFoundryObject) | |
243 { | |
244 nodes[obj.ID].Text = CreateNodeName((ICostedWarFoundryObject)obj); | |
245 } | |
246 } | |
229 | 247 |
230 private TreeNode CreateTreeNode(Unit unit) | 248 private TreeNode CreateTreeNode(Unit unit) |
231 { | 249 { |
232 TreeNode temp = new TreeNode(unit.Name); | 250 TreeNode temp = new TreeNode(CreateNodeName(unit)); |
233 temp.Tag = unit; | 251 temp.Tag = unit; |
234 unit.NameChanged+= UnitNameChangedMethod; | 252 unit.NameChanged+= UnitNameChangedMethod; |
253 unit.PointsValueChanged += NodePointsValueChanged; | |
235 nodes[unit.ID] = temp; | 254 nodes[unit.ID] = temp; |
236 return temp; | 255 return temp; |
237 } | 256 } |
238 | 257 |
239 public void FrmArmyTree_ArmyChanged(Army oldArmy, Army newArmy) | 258 public void FrmArmyTree_ArmyChanged(Army oldArmy, Army newArmy) |
240 { | 259 { |
241 if (oldArmy != null) | 260 if (oldArmy != null) |
242 { | 261 { |
243 oldArmy.UnitAdded -= UnitAddedMethod; | 262 oldArmy.UnitAdded -= UnitAddedMethod; |
244 oldArmy.UnitRemoved -= UnitRemovedMethod; | 263 oldArmy.UnitRemoved -= UnitRemovedMethod; |
264 oldArmy.PointsValueChanged -= NodePointsValueChanged; | |
245 } | 265 } |
246 | 266 |
247 if (newArmy != null) | 267 if (newArmy != null) |
248 { | 268 { |
249 newArmy.UnitAdded += UnitAddedMethod; | 269 newArmy.UnitAdded += UnitAddedMethod; |
250 newArmy.UnitRemoved += UnitRemovedMethod; | 270 newArmy.UnitRemoved += UnitRemovedMethod; |
271 newArmy.PointsValueChanged += NodePointsValueChanged; | |
251 } | 272 } |
252 | 273 |
253 SetArmy(newArmy); | 274 SetArmy(newArmy); |
254 } | 275 } |
255 | 276 |