1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
package ca.spaz.cron.ui; |
5 |
|
|
6 |
|
import java.awt.*; |
7 |
|
import java.util.*; |
8 |
|
import java.util.List; |
9 |
|
|
10 |
|
import javax.swing.*; |
11 |
|
import javax.swing.event.*; |
12 |
|
|
13 |
|
import ca.spaz.cron.user.*; |
14 |
|
import ca.spaz.cron.user.impl.*; |
15 |
|
|
16 |
0 |
public class BiomarkerPanel extends JPanel { |
17 |
0 |
private Date curDate = new Date(); |
18 |
0 |
private JSpinner weightSpinner; |
19 |
|
|
20 |
|
|
21 |
0 |
public BiomarkerPanel() { |
22 |
|
|
23 |
0 |
JPanel lp = new JPanel(class="keyword">new GridLayout(5,1,8,8)); |
24 |
0 |
lp.add(new JCheckBox("Weight:")); |
25 |
0 |
lp.add(new JCheckBox("Systolic:")); |
26 |
0 |
lp.add(new JCheckBox("Diastolic:")); |
27 |
0 |
lp.add(new JCheckBox("Resting Heart Rate:")); |
28 |
0 |
lp.add(new JCheckBox("Body Temperature:")); |
29 |
|
|
30 |
0 |
JPanel rp = new JPanel(class="keyword">new GridLayout(5,1,8,8)); |
31 |
0 |
rp.add(getWeightSpinner()); |
32 |
0 |
rp.add(new JSpinner()); |
33 |
0 |
rp.add(new JSpinner()); |
34 |
0 |
rp.add(new JSpinner()); |
35 |
0 |
rp.add(new JSpinner()); |
36 |
|
|
37 |
0 |
JPanel fp = new JPanel(class="keyword">new BorderLayout(4, 4)); |
38 |
0 |
fp.setBorder(BorderFactory.createEmptyBorder(10,10,10,10)); |
39 |
0 |
fp.add(lp, BorderLayout.WEST); |
40 |
0 |
fp.add(rp, BorderLayout.CENTER); |
41 |
|
|
42 |
0 |
setBorder(BorderFactory.createEmptyBorder(10,10,10,10)); |
43 |
0 |
setLayout(new BorderLayout(4, 4)); |
44 |
0 |
add(fp, BorderLayout.NORTH); |
45 |
0 |
} |
46 |
|
|
47 |
|
private JSpinner getWeightSpinner() { |
48 |
0 |
if (weightSpinner == null) { |
49 |
0 |
weightSpinner = new JSpinner(class="keyword">new SpinnerNumberModel(150,0,1000,1)); |
50 |
0 |
weightSpinner.addChangeListener(new ChangeListener() { |
51 |
|
public void stateChanged(ChangeEvent e) { |
52 |
|
WeightMetric wm = new WeightMetric(); |
53 |
|
wm.setValue((Number)weightSpinner.getValue()); |
54 |
|
getUserMetrics().addMetric(wm); |
55 |
|
} |
56 |
|
}); |
57 |
0 |
List l = getUserMetrics().getMetrics(); |
58 |
0 |
Iterator iter = l.iterator(); |
59 |
0 |
while (iter.hasNext()) { |
60 |
0 |
Metric m = (Metric)iter.next(); |
61 |
0 |
if (m instanceof WeightMetric) { |
62 |
0 |
weightSpinner.setValue(m.getValue()); |
63 |
|
} |
64 |
0 |
} |
65 |
|
} |
66 |
0 |
return weightSpinner; |
67 |
|
} |
68 |
|
|
69 |
|
public void setDate(Date d) { |
70 |
0 |
this.curDate = d; |
71 |
0 |
} |
72 |
|
|
73 |
0 |
private UserMetrics getUserMetrics() { |
74 |
0 |
List metrics = CRONUser.getUser().getUserMetrics(curDate); |
75 |
0 |
if (metrics == null) { |
76 |
0 |
UserMetrics m = new UserMetrics(curDate); |
77 |
0 |
CRONUser.getUser().addUserMetrics(curDate, m); |
78 |
0 |
return m; |
79 |
|
} |
80 |
0 |
return (UserMetrics)metrics.get(0); |
81 |
|
} |
82 |
|
} |