m@0: /*============================================================================= m@0: * File: SubjectDataPanel.java m@0: * Author: Marcus Pearce m@0: * Created: <2007-02-14 11:28:27 marcusp> m@0: * Time-stamp: <2008-03-11 18:09:47 marcusp> m@0: *============================================================================= m@0: */ m@0: m@0: import java.awt.*; m@0: import java.awt.event.*; m@0: import javax.swing.*; m@0: import java.util.ArrayList; m@0: m@0: public class SubjectDataPanel extends JPanel { m@0: m@0: /* variables */ m@0: private JTextField ageField, trainingField, topfield, instrumentField, m@0: participationField, listeningField, nationalityField; m@0: private JComboBox sexBox, handBox, hearingBox, instrumentBox, trainingBox, m@0: ethnicityBox; m@0: private JButton finishButton; m@0: m@0: private SubjectResults results; m@0: m@0: /* accessors */ m@0: public JButton getFinishButton() { return finishButton; } m@0: m@0: /* constructor */ m@0: public SubjectDataPanel(ExperimentGui gui, SubjectResults sr) { m@0: m@0: results = sr; m@0: m@0: JPanel questionsPanel = new JPanel(); m@0: questionsPanel.setLayout(new GridLayout(12,1)); m@0: questionsPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder(""),BorderFactory.createEmptyBorder(5,5,5,5)), questionsPanel.getBorder())); m@0: m@0: String[] yesNoOptions = { "", "Yes", "No" }; m@0: m@0: // Age m@0: ageField = new JTextField(10); m@0: questionsPanel.add(new JLabel("Age: ")); m@0: questionsPanel.add(ageField); m@0: m@0: // Gender m@0: String[] sexBoxOptions = { "", "Male", "Female" }; m@0: sexBox = new JComboBox(sexBoxOptions); m@0: sexBox.setSelectedIndex(0); m@0: questionsPanel.add(new JLabel("Gender: ")); m@0: questionsPanel.add(sexBox); m@0: m@0: // Ethnicity m@0: String[] ethnicityBoxOptions = m@0: { "", "Asian", "Black", "Chinese", "Mixed", "Other", "White", m@0: "Undisclosed" }; m@0: ethnicityBox = new JComboBox(ethnicityBoxOptions); m@0: questionsPanel.add(new JLabel("Ethnicity: ")); m@0: questionsPanel.add(ethnicityBox); m@0: m@0: // Nationality m@0: nationalityField = new JTextField(10); m@0: questionsPanel.add(new JLabel("Nationality: ")); m@0: questionsPanel.add(nationalityField); m@0: m@0: // Handedness m@0: String[] handBoxOptions = { "", "Right-handed", "Left-handed" }; m@0: handBox = new JComboBox(handBoxOptions); m@0: handBox.setSelectedIndex(0); m@0: questionsPanel.add(new JLabel("Handedness: ")); m@0: questionsPanel.add(handBox); m@0: m@0: // Hearing m@0: hearingBox = new JComboBox(yesNoOptions); m@0: questionsPanel.add(new JLabel("Do you have any hearing difficulties?")); m@0: questionsPanel.add(hearingBox); m@0: m@0: // Instrument / Sing m@0: instrumentBox = new JComboBox(yesNoOptions); m@0: instrumentField = new JTextField(10); m@0: m@0: questionsPanel.add(new JLabel("Do you play an instrument/sing?")); m@0: questionsPanel.add(instrumentBox); m@0: m@0: questionsPanel.add(new JLabel("If so, for how many years have you played/sung? ")); m@0: questionsPanel.add(instrumentField); m@0: m@0: // Musical Training m@0: trainingBox = new JComboBox(yesNoOptions); m@0: trainingField = new JTextField(10); m@0: m@0: questionsPanel.add(new JLabel("Have you had formal musical training?")); m@0: questionsPanel.add(trainingBox); m@0: m@0: questionsPanel.add(new JLabel("If so, for how many years?")); m@0: questionsPanel.add(trainingField); m@0: m@0: // Musical Participation m@0: participationField = new JTextField(10); m@0: m@0: questionsPanel.add(new JLabel("How many hours a week do you spend practising/participating in music?")); m@0: questionsPanel.add(participationField); m@0: m@0: // Musical Listening m@0: listeningField = new JTextField(10); m@0: questionsPanel.add(new JLabel("How many hours per day do you spend listening to music?")); m@0: questionsPanel.add(listeningField); m@0: m@0: // Put it all together m@0: JPanel finishPanel = new JPanel(); m@0: finishButton = new JButton("Finish."); m@0: finishPanel.add(finishButton); m@0: m@0: JPanel topPanel = new JPanel(); m@0: topPanel.add(new JLabel("Please answer the following questions:"), m@0: BorderLayout.NORTH); m@0: m@0: JPanel questionsPanel2 = new JPanel(); m@0: questionsPanel2.setLayout(new BorderLayout()); m@0: questionsPanel2.add(questionsPanel, BorderLayout.NORTH); m@0: m@0: //getRootPane().setDefaultButton(finishButton); m@0: this.setLayout (new BorderLayout()); m@0: add(topPanel, BorderLayout.NORTH); m@0: add(questionsPanel2,BorderLayout.CENTER); m@0: add(finishPanel,BorderLayout.SOUTH); m@0: } m@0: m@0: public void storeData() { m@0: ArrayList subjectData = new ArrayList(); m@0: String[] id = {"ID", Integer.toString(results.getSubjectID())}; m@0: subjectData.add(id); m@0: String[] age = {"Age",ageField.getText()}; m@0: subjectData.add(age); m@0: String[] sex = {"Gender",(String)sexBox.getSelectedItem()}; m@0: subjectData.add(sex); m@0: String[] hand = {"Hand",(String)handBox.getSelectedItem()}; m@0: subjectData.add(hand); m@0: String[] ethnicity = {"Ethnic",(String)ethnicityBox.getSelectedItem()}; m@0: subjectData.add(ethnicity); m@0: String[] nationality = {"Nationality",nationalityField.getText()}; m@0: subjectData.add(nationality); m@0: String[] hear = {"HearingDiff", (String)hearingBox.getSelectedItem()}; m@0: subjectData.add(hear); m@0: String[] instrument1 = m@0: {"Instrument", (String)instrumentBox.getSelectedItem()}; m@0: subjectData.add(instrument1); m@0: String[] instrument2 = {"InstrumentYears",instrumentField.getText()}; m@0: subjectData.add(instrument2); m@0: String[] training1 = {"Training", (String)trainingBox.getSelectedItem()}; m@0: subjectData.add(training1); m@0: String[] training2 = {"TrainingYears",trainingField.getText()}; m@0: subjectData.add(training2); m@0: String[] participation = {"Participation",participationField.getText()}; m@0: subjectData.add(participation); m@0: String[] listening = {"Listening",listeningField.getText()}; m@0: subjectData.add(listening); m@0: m@0: results.setSubjectData(subjectData); m@0: } m@0: m@0: public boolean allDataEntered () { m@0: if (ageField.getText().equals("") || m@0: sexBox.getSelectedItem().equals("") || m@0: handBox.getSelectedItem().equals("") || m@0: ethnicityBox.getSelectedItem().equals("") || m@0: nationalityField.getText().equals("") || m@0: hearingBox.getSelectedItem().equals("") || m@0: instrumentBox.getSelectedItem().equals("") || m@0: instrumentField.getText().equals("") || m@0: trainingBox.getSelectedItem().equals("") || m@0: trainingField.getText().equals("") || m@0: participationField.getText().equals("") || m@0: listeningField.getText().equals("")) m@0: return false; m@0: else return true; m@0: } m@0: m@0: public void addFinishButtonListener(ActionListener al) { m@0: finishButton.addActionListener(al); m@0: } m@0: }