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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }