Mercurial > repos > IBDev-IBBoard.WarFoundry.GUI.WinForms
annotate UI/EquipmentAmountControl.cs @ 83:6d5cb8c7b6ed
Fixes #204: Use new limits in WinForms UI
* Set initial amounts correctly
* Disable percentage option when all that can be done is "equip all"
* Remove unused references to "INFINITY"
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Fri, 30 Oct 2009 21:00:04 +0000 |
parents | 9dc22147c2db |
children | 0bb9f40d44eb |
rev | line source |
---|---|
78
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
1 using System; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
2 using System.Collections.Generic; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
3 using System.ComponentModel; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
4 using System.Drawing; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
5 using System.Data; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
6 using System.Text; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
7 using System.Windows.Forms; |
80
c243b043aa62
Re #179: Make sure that translations are used throughout UI
IBBoard <dev@ibboard.co.uk>
parents:
78
diff
changeset
|
8 using IBBoard.CustomMath; |
81
e749b748e7ea
Re #198: Add slots with counts to units
IBBoard <dev@ibboard.co.uk>
parents:
80
diff
changeset
|
9 using IBBoard.Limits; |
78
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
10 using IBBoard.WarFoundry.API; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
11 using IBBoard.WarFoundry.API.Objects; |
82
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
12 using IBBoard.WarFoundry.API.Util; |
78
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
13 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
14 namespace IBBoard.WarFoundry.GUI.WinForms.UI |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
15 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
16 public partial class EquipmentAmountControl : UserControl |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
17 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
18 private Unit unit; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
19 private UnitEquipmentItem equip; |
82
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
20 public event EventHandler ValueChanged; |
78
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
21 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
22 public EquipmentAmountControl() |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
23 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
24 InitializeComponent(); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
25 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
26 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
27 public void SetUnit(Unit equipUnit) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
28 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
29 unit = equipUnit; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
30 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
31 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
32 public void SetUnitEquipmentItem(UnitEquipmentItem unitEquipment) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
33 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
34 equip = unitEquipment; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
35 SetWidgetValues(); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
36 SetUnitEquipmentItemAmount(); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
37 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
38 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
39 private void OnValueChanged() |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
40 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
41 if (ValueChanged != null) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
42 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
43 ValueChanged(this, new EventArgs()); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
44 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
45 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
46 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
47 private void SetWidgetValues() |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
48 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
49 if (equip != null) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
50 { |
82
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
51 bool equipIsRatioLimit = UnitEquipmentUtil.IsEquipmentRatioLimited(unit, equip); |
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
52 double maxPercent = UnitEquipmentUtil.GetMaxEquipmentPercentage(unit, equip); |
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
53 double minPercent = UnitEquipmentUtil.GetMinEquipmentPercentage(unit, equip); |
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
54 int maxNumber = UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip); |
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
55 int minNumber = UnitEquipmentUtil.GetMinEquipmentCount(unit, equip); |
81
e749b748e7ea
Re #198: Add slots with counts to units
IBBoard <dev@ibboard.co.uk>
parents:
80
diff
changeset
|
56 |
82
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
57 SetUpDownControlMinMaxes(minPercent, maxPercent, minNumber, maxNumber); |
83
6d5cb8c7b6ed
Fixes #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
82
diff
changeset
|
58 |
6d5cb8c7b6ed
Fixes #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
82
diff
changeset
|
59 if (equipIsRatioLimit) |
6d5cb8c7b6ed
Fixes #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
82
diff
changeset
|
60 { |
6d5cb8c7b6ed
Fixes #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
82
diff
changeset
|
61 SetEquipmentAmountsFromPercentage(minPercent); |
6d5cb8c7b6ed
Fixes #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
82
diff
changeset
|
62 } |
6d5cb8c7b6ed
Fixes #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
82
diff
changeset
|
63 else |
6d5cb8c7b6ed
Fixes #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
82
diff
changeset
|
64 { |
6d5cb8c7b6ed
Fixes #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
82
diff
changeset
|
65 SetEquipmentAmountsFromNumber(minNumber); |
6d5cb8c7b6ed
Fixes #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
82
diff
changeset
|
66 } |
78
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
67 |
82
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
68 rbEquipAll.Enabled = equipIsRatioLimit && maxPercent == 100; |
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
69 rbEquipAll.Checked = equipIsRatioLimit && minPercent == 100; |
83
6d5cb8c7b6ed
Fixes #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
82
diff
changeset
|
70 percentage.Enabled = equipIsRatioLimit && minPercent != 100; |
82
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
71 rbPercentage.Enabled = percentage.Enabled; |
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
72 rbPercentage.Checked = equipIsRatioLimit && !rbEquipAll.Checked; |
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
73 numeric.Enabled = !equipIsRatioLimit || minPercent != 100; |
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
74 rbNumeric.Enabled = numeric.Enabled; |
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
75 rbNumeric.Checked = !equipIsRatioLimit; |
78
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
76 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
77 else |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
78 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
79 Enabled = false; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
80 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
81 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
82 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
83 private void SetUpDownControlMinMaxes(double minPercent, double maxPercent, int minNumber, int maxNumber) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
84 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
85 percentage.ValueChanged -= percentage_ValueChanged; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
86 numeric.ValueChanged -= numeric_ValueChanged; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
87 SetUpDownControlMinMax(percentage, minPercent, maxPercent); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
88 SetUpDownControlMinMax(numeric, (decimal) minNumber, (decimal) maxNumber); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
89 percentage.ValueChanged += percentage_ValueChanged; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
90 numeric.ValueChanged += numeric_ValueChanged; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
91 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
92 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
93 private void SetUpDownControlMinMax(NumericUpDown upDownControl, double min, double max) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
94 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
95 SetUpDownControlMinMax(upDownControl, (decimal)min, (decimal)max); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
96 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
97 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
98 private void SetUpDownControlMinMax(NumericUpDown upDownControl, decimal min, decimal max) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
99 { |
82
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
100 upDownControl.Minimum = min; |
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
101 upDownControl.Maximum = max; |
78
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
102 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
103 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
104 private void rbEquipAll_CheckedChanged(object sender, EventArgs e) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
105 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
106 bool equipAll = rbEquipAll.Checked; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
107 numeric.Enabled = !equipAll; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
108 percentage.Enabled = !equipAll; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
109 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
110 if (equipAll) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
111 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
112 numeric.Value = unit.Size; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
113 percentage.Value = 100; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
114 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
115 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
116 radioCheckedChanged(sender, e); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
117 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
118 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
119 private void percentage_ValueChanged(object sender, EventArgs e) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
120 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
121 SetNumericValueFromPercentage(); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
122 rbEquipAll.Checked = (percentage.Value == 100 && !rbNumeric.Checked); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
123 OnValueChanged(); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
124 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
125 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
126 private void SetNumericValueFromPercentage() |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
127 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
128 double percent = (double)percentage.Value; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
129 numeric.Value = CalculateNumericValueFromPercentage(percent); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
130 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
131 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
132 private decimal CalculateNumericValueFromPercentage(double percent) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
133 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
134 return (decimal) IBBMath.Round(unit.Size * (percent / 100.0), equip.RoundNumberUp); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
135 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
136 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
137 private void numeric_ValueChanged(object sender, EventArgs e) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
138 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
139 SetPercentageValueFromNumeric(); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
140 OnValueChanged(); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
141 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
142 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
143 private void SetPercentageValueFromNumeric() |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
144 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
145 int number = (int)numeric.Value; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
146 percentage.Value = CalcualtePercentageValueFromNumber(number); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
147 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
148 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
149 private decimal CalcualtePercentageValueFromNumber(int number) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
150 { |
82
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
151 return (decimal) Math.Round((number / (unit.Size * 1.0)) * 100, 1); |
78
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
152 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
153 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
154 public double EquipmentAmount |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
155 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
156 get |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
157 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
158 double val = 0; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
159 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
160 if (rbNumeric.Checked) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
161 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
162 val = (double) numeric.Value; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
163 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
164 else if (rbPercentage.Checked) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
165 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
166 val = (double) percentage.Value; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
167 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
168 else if (rbEquipAll.Checked) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
169 { |
82
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
170 val = 100; |
78
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
171 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
172 else |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
173 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
174 val = 0; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
175 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
176 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
177 return val; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
178 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
179 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
180 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
181 public bool IsRatioEquipmentAmount |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
182 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
183 get |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
184 { |
82
9dc22147c2db
Re #204: Use new limits in WinForms UI
IBBoard <dev@ibboard.co.uk>
parents:
81
diff
changeset
|
185 return !rbNumeric.Checked; |
78
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
186 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
187 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
188 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
189 private void SetUnitEquipmentItemAmount() |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
190 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
191 double equipAmountNum = unit.GetEquipmentAmount(equip); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
192 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
193 if (equipAmountNum > 0) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
194 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
195 bool isRatio = unit.GetEquipmentAmountIsRatio(equip); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
196 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
197 if (isRatio) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
198 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
199 SetEquipmentAmountsFromPercentage(equipAmountNum); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
200 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
201 else |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
202 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
203 int equipAmount = (int) equipAmountNum; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
204 SetEquipmentAmountsFromNumber(equipAmount); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
205 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
206 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
207 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
208 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
209 private void SetEquipmentAmountsFromPercentage(double equipAmountNum) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
210 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
211 numeric.Value = CalculateNumericValueFromPercentage(equipAmountNum); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
212 percentage.Value = (decimal) equipAmountNum; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
213 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
214 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
215 private void SetEquipmentAmountsFromNumber(int equipAmount) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
216 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
217 percentage.Value = CalcualtePercentageValueFromNumber(equipAmount); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
218 numeric.Value = equipAmount; |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
219 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
220 |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
221 private void radioCheckedChanged(object sender, EventArgs e) |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
222 { |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
223 OnValueChanged(); |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
224 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
225 } |
431cc3ace26c
Fixes #187: Error when adding equipment with minNum > unit size
IBBoard <dev@ibboard.co.uk>
parents:
77
diff
changeset
|
226 } |