comparison api/Commands/AbstractReplaceUnitEquipmentCommand.cs @ 289:650bbe79b884 WarFoundry_v0.1

Fixes #336: Command descriptions don't refresh on language change * Remove cached string values and just return the text each time
author IBBoard <dev@ibboard.co.uk>
date Sun, 02 Jan 2011 21:01:20 +0000
parents 391446c9b250
children
comparison
equal deleted inserted replaced
288:5c4b3d91795f 289:650bbe79b884
14 /// </summary> 14 /// </summary>
15 public abstract class AbstractReplaceUnitEquipmentCommand : Command 15 public abstract class AbstractReplaceUnitEquipmentCommand : Command
16 { 16 {
17 private SetUnitEquipmentNumericAmountCommand removeOldCommand; 17 private SetUnitEquipmentNumericAmountCommand removeOldCommand;
18 private AbstractSetUnitEquipmentAmountCommand addNewCommand; 18 private AbstractSetUnitEquipmentAmountCommand addNewCommand;
19 private string description; 19
20 private string undoDescription;
21
22 public AbstractReplaceUnitEquipmentCommand(Unit unit, UnitEquipmentItem oldItem, AbstractSetUnitEquipmentAmountCommand addNewEquipmentCommand) 20 public AbstractReplaceUnitEquipmentCommand(Unit unit, UnitEquipmentItem oldItem, AbstractSetUnitEquipmentAmountCommand addNewEquipmentCommand)
23 { 21 {
24 //We can get away with a numeric amount here even if it is a ratio item because we're setting it to 0 22 //We can get away with a numeric amount here even if it is a ratio item because we're setting it to 0
25 removeOldCommand = new SetUnitEquipmentNumericAmountCommand(unit, oldItem, 0); 23 removeOldCommand = new SetUnitEquipmentNumericAmountCommand(unit, oldItem, 0);
26 addNewCommand = addNewEquipmentCommand; 24 addNewCommand = addNewEquipmentCommand;
33 31
34 public override string Description 32 public override string Description
35 { 33 {
36 get 34 get
37 { 35 {
38 if (description == null) 36 return Translation.GetTranslation("replaceUnitEquipmentCommandDescription", "replace {0} with {1} for {2}", removeOldCommand.EquipItem.Name, addNewCommand.EquipItem.Name, removeOldCommand.Unit.Name);
39 {
40 description = Translation.GetTranslation("replaceUnitEquipmentCommandDescription", "replace {0} with {1} for {2}", removeOldCommand.EquipItem.Name, addNewCommand.EquipItem.Name, removeOldCommand.Unit.Name);
41 }
42
43 return description;
44 } 37 }
45 } 38 }
46 39
47 public override string UndoDescription 40 public override string UndoDescription
48 { 41 {
49 get 42 get
50 { 43 {
51 if (undoDescription == null) 44 return Translation.GetTranslation("replaceUnitEquipmentCommandUndoDescription", "replace {0} with {1} for {2}", addNewCommand.EquipItem.Name, removeOldCommand.EquipItem.Name, removeOldCommand.Unit.Name);
52 {
53 undoDescription = Translation.GetTranslation("replaceUnitEquipmentCommandUndoDescription", "replace {0} with {1} for {2}", addNewCommand.EquipItem.Name, removeOldCommand.EquipItem.Name, removeOldCommand.Unit.Name);
54 }
55
56 return undoDescription;
57 } 45 }
58 } 46 }
59 47
60 public override bool Execute() 48 public override bool Execute()
61 { 49 {
73 { 61 {
74 addNewCommand.Undo(); 62 addNewCommand.Undo();
75 removeOldCommand.Undo(); 63 removeOldCommand.Undo();
76 } 64 }
77 65
78
79 public override string Name 66 public override string Name
80 { 67 {
81 get 68 get
82 { 69 {
83 return "Replace required equipment"; 70 return "Replace required equipment";