m@0
|
1 /*=============================================================================
|
m@0
|
2 * File: SubjectDataPanel.java
|
m@0
|
3 * Author: Marcus Pearce <m.pearce@gold.ac.uk>
|
m@0
|
4 * Created: <2007-02-14 11:28:27 marcusp>
|
m@0
|
5 * Time-stamp: <2008-03-11 18:09:47 marcusp>
|
m@0
|
6 *=============================================================================
|
m@0
|
7 */
|
m@0
|
8
|
m@0
|
9 import java.awt.*;
|
m@0
|
10 import java.awt.event.*;
|
m@0
|
11 import javax.swing.*;
|
m@0
|
12 import java.util.ArrayList;
|
m@0
|
13
|
m@0
|
14 public class SubjectDataPanel extends JPanel {
|
m@0
|
15
|
m@0
|
16 /* variables */
|
m@0
|
17 private JTextField ageField, trainingField, topfield, instrumentField,
|
m@0
|
18 participationField, listeningField, nationalityField;
|
m@0
|
19 private JComboBox sexBox, handBox, hearingBox, instrumentBox, trainingBox,
|
m@0
|
20 ethnicityBox;
|
m@0
|
21 private JButton finishButton;
|
m@0
|
22
|
m@0
|
23 private SubjectResults results;
|
m@0
|
24
|
m@0
|
25 /* accessors */
|
m@0
|
26 public JButton getFinishButton() { return finishButton; }
|
m@0
|
27
|
m@0
|
28 /* constructor */
|
m@0
|
29 public SubjectDataPanel(ExperimentGui gui, SubjectResults sr) {
|
m@0
|
30
|
m@0
|
31 results = sr;
|
m@0
|
32
|
m@0
|
33 JPanel questionsPanel = new JPanel();
|
m@0
|
34 questionsPanel.setLayout(new GridLayout(12,1));
|
m@0
|
35 questionsPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder(""),BorderFactory.createEmptyBorder(5,5,5,5)), questionsPanel.getBorder()));
|
m@0
|
36
|
m@0
|
37 String[] yesNoOptions = { "", "Yes", "No" };
|
m@0
|
38
|
m@0
|
39 // Age
|
m@0
|
40 ageField = new JTextField(10);
|
m@0
|
41 questionsPanel.add(new JLabel("Age: "));
|
m@0
|
42 questionsPanel.add(ageField);
|
m@0
|
43
|
m@0
|
44 // Gender
|
m@0
|
45 String[] sexBoxOptions = { "", "Male", "Female" };
|
m@0
|
46 sexBox = new JComboBox(sexBoxOptions);
|
m@0
|
47 sexBox.setSelectedIndex(0);
|
m@0
|
48 questionsPanel.add(new JLabel("Gender: "));
|
m@0
|
49 questionsPanel.add(sexBox);
|
m@0
|
50
|
m@0
|
51 // Ethnicity
|
m@0
|
52 String[] ethnicityBoxOptions =
|
m@0
|
53 { "", "Asian", "Black", "Chinese", "Mixed", "Other", "White",
|
m@0
|
54 "Undisclosed" };
|
m@0
|
55 ethnicityBox = new JComboBox(ethnicityBoxOptions);
|
m@0
|
56 questionsPanel.add(new JLabel("Ethnicity: "));
|
m@0
|
57 questionsPanel.add(ethnicityBox);
|
m@0
|
58
|
m@0
|
59 // Nationality
|
m@0
|
60 nationalityField = new JTextField(10);
|
m@0
|
61 questionsPanel.add(new JLabel("Nationality: "));
|
m@0
|
62 questionsPanel.add(nationalityField);
|
m@0
|
63
|
m@0
|
64 // Handedness
|
m@0
|
65 String[] handBoxOptions = { "", "Right-handed", "Left-handed" };
|
m@0
|
66 handBox = new JComboBox(handBoxOptions);
|
m@0
|
67 handBox.setSelectedIndex(0);
|
m@0
|
68 questionsPanel.add(new JLabel("Handedness: "));
|
m@0
|
69 questionsPanel.add(handBox);
|
m@0
|
70
|
m@0
|
71 // Hearing
|
m@0
|
72 hearingBox = new JComboBox(yesNoOptions);
|
m@0
|
73 questionsPanel.add(new JLabel("Do you have any hearing difficulties?"));
|
m@0
|
74 questionsPanel.add(hearingBox);
|
m@0
|
75
|
m@0
|
76 // Instrument / Sing
|
m@0
|
77 instrumentBox = new JComboBox(yesNoOptions);
|
m@0
|
78 instrumentField = new JTextField(10);
|
m@0
|
79
|
m@0
|
80 questionsPanel.add(new JLabel("Do you play an instrument/sing?"));
|
m@0
|
81 questionsPanel.add(instrumentBox);
|
m@0
|
82
|
m@0
|
83 questionsPanel.add(new JLabel("If so, for how many years have you played/sung? "));
|
m@0
|
84 questionsPanel.add(instrumentField);
|
m@0
|
85
|
m@0
|
86 // Musical Training
|
m@0
|
87 trainingBox = new JComboBox(yesNoOptions);
|
m@0
|
88 trainingField = new JTextField(10);
|
m@0
|
89
|
m@0
|
90 questionsPanel.add(new JLabel("Have you had formal musical training?"));
|
m@0
|
91 questionsPanel.add(trainingBox);
|
m@0
|
92
|
m@0
|
93 questionsPanel.add(new JLabel("If so, for how many years?"));
|
m@0
|
94 questionsPanel.add(trainingField);
|
m@0
|
95
|
m@0
|
96 // Musical Participation
|
m@0
|
97 participationField = new JTextField(10);
|
m@0
|
98
|
m@0
|
99 questionsPanel.add(new JLabel("How many hours a week do you spend practising/participating in music?"));
|
m@0
|
100 questionsPanel.add(participationField);
|
m@0
|
101
|
m@0
|
102 // Musical Listening
|
m@0
|
103 listeningField = new JTextField(10);
|
m@0
|
104 questionsPanel.add(new JLabel("How many hours per day do you spend listening to music?"));
|
m@0
|
105 questionsPanel.add(listeningField);
|
m@0
|
106
|
m@0
|
107 // Put it all together
|
m@0
|
108 JPanel finishPanel = new JPanel();
|
m@0
|
109 finishButton = new JButton("Finish.");
|
m@0
|
110 finishPanel.add(finishButton);
|
m@0
|
111
|
m@0
|
112 JPanel topPanel = new JPanel();
|
m@0
|
113 topPanel.add(new JLabel("Please answer the following questions:"),
|
m@0
|
114 BorderLayout.NORTH);
|
m@0
|
115
|
m@0
|
116 JPanel questionsPanel2 = new JPanel();
|
m@0
|
117 questionsPanel2.setLayout(new BorderLayout());
|
m@0
|
118 questionsPanel2.add(questionsPanel, BorderLayout.NORTH);
|
m@0
|
119
|
m@0
|
120 //getRootPane().setDefaultButton(finishButton);
|
m@0
|
121 this.setLayout (new BorderLayout());
|
m@0
|
122 add(topPanel, BorderLayout.NORTH);
|
m@0
|
123 add(questionsPanel2,BorderLayout.CENTER);
|
m@0
|
124 add(finishPanel,BorderLayout.SOUTH);
|
m@0
|
125 }
|
m@0
|
126
|
m@0
|
127 public void storeData() {
|
m@0
|
128 ArrayList subjectData = new ArrayList();
|
m@0
|
129 String[] id = {"ID", Integer.toString(results.getSubjectID())};
|
m@0
|
130 subjectData.add(id);
|
m@0
|
131 String[] age = {"Age",ageField.getText()};
|
m@0
|
132 subjectData.add(age);
|
m@0
|
133 String[] sex = {"Gender",(String)sexBox.getSelectedItem()};
|
m@0
|
134 subjectData.add(sex);
|
m@0
|
135 String[] hand = {"Hand",(String)handBox.getSelectedItem()};
|
m@0
|
136 subjectData.add(hand);
|
m@0
|
137 String[] ethnicity = {"Ethnic",(String)ethnicityBox.getSelectedItem()};
|
m@0
|
138 subjectData.add(ethnicity);
|
m@0
|
139 String[] nationality = {"Nationality",nationalityField.getText()};
|
m@0
|
140 subjectData.add(nationality);
|
m@0
|
141 String[] hear = {"HearingDiff", (String)hearingBox.getSelectedItem()};
|
m@0
|
142 subjectData.add(hear);
|
m@0
|
143 String[] instrument1 =
|
m@0
|
144 {"Instrument", (String)instrumentBox.getSelectedItem()};
|
m@0
|
145 subjectData.add(instrument1);
|
m@0
|
146 String[] instrument2 = {"InstrumentYears",instrumentField.getText()};
|
m@0
|
147 subjectData.add(instrument2);
|
m@0
|
148 String[] training1 = {"Training", (String)trainingBox.getSelectedItem()};
|
m@0
|
149 subjectData.add(training1);
|
m@0
|
150 String[] training2 = {"TrainingYears",trainingField.getText()};
|
m@0
|
151 subjectData.add(training2);
|
m@0
|
152 String[] participation = {"Participation",participationField.getText()};
|
m@0
|
153 subjectData.add(participation);
|
m@0
|
154 String[] listening = {"Listening",listeningField.getText()};
|
m@0
|
155 subjectData.add(listening);
|
m@0
|
156
|
m@0
|
157 results.setSubjectData(subjectData);
|
m@0
|
158 }
|
m@0
|
159
|
m@0
|
160 public boolean allDataEntered () {
|
m@0
|
161 if (ageField.getText().equals("") ||
|
m@0
|
162 sexBox.getSelectedItem().equals("") ||
|
m@0
|
163 handBox.getSelectedItem().equals("") ||
|
m@0
|
164 ethnicityBox.getSelectedItem().equals("") ||
|
m@0
|
165 nationalityField.getText().equals("") ||
|
m@0
|
166 hearingBox.getSelectedItem().equals("") ||
|
m@0
|
167 instrumentBox.getSelectedItem().equals("") ||
|
m@0
|
168 instrumentField.getText().equals("") ||
|
m@0
|
169 trainingBox.getSelectedItem().equals("") ||
|
m@0
|
170 trainingField.getText().equals("") ||
|
m@0
|
171 participationField.getText().equals("") ||
|
m@0
|
172 listeningField.getText().equals(""))
|
m@0
|
173 return false;
|
m@0
|
174 else return true;
|
m@0
|
175 }
|
m@0
|
176
|
m@0
|
177 public void addFinishButtonListener(ActionListener al) {
|
m@0
|
178 finishButton.addActionListener(al);
|
m@0
|
179 }
|
m@0
|
180 }
|