annotate SubjectDataPanel.java @ 6:ac0d14c9c9ab

Document previous change in README Ignore-this: ecd3fd874a2b69c4c271146e742f948d
author Marcus Pearce <m.pearce@gold.ac.uk>
date Thu, 25 Nov 2010 11:12:24 +0000
parents 4031cbb02f08
children 284c23df4652
rev   line source
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 }