From 02c3323dcfae04b49d27693dc21876f4b694179c Mon Sep 17 00:00:00 2001 From: rmh3093 Date: Mon, 15 Sep 2008 13:39:28 -0400 Subject: [PATCH] change radio options to comboboxes --- motsim/ControlPanel.java | 82 ++++++++++++++---------------------------------- motsim/Controller.java | 12 +++++-- motsim/EventHandler.java | 3 +- motsim/Model.java | 31 +++++++++--------- motsim/Participant.java | 9 ++++-- 5 files changed, 58 insertions(+), 79 deletions(-) diff --git a/motsim/ControlPanel.java b/motsim/ControlPanel.java index 32d6f5f..855ef2a 100644 --- a/motsim/ControlPanel.java +++ b/motsim/ControlPanel.java @@ -4,14 +4,12 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BorderFactory; -import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; -import javax.swing.JRadioButtonMenuItem; import javax.swing.JSpinner; import javax.swing.JTextField; import javax.swing.SpinnerNumberModel; @@ -31,19 +29,17 @@ class ControlPanel extends JFrame implements ActionListener { sx_name, sx_sex, sx_age, sx_handedness, sx_vision, sx_email; JSpinner targets_spinner, duration_spinner, speed_spinner, trials_spinner, fontsize_spinner; - JComboBox simmode_combobox, entropy_combobox; + JComboBox simmode_combobox, entropy_combobox, gender_combobox, + vision_combobox, handedness_combobox; JCheckBox collectdata_checkbox, confirm_cb; JButton config_start_button, sx_start_button; JTextField sx_name_textfield, sx_age_textfield, sx_email_textfield; - JRadioButtonMenuItem sx_sex_radio_m, sx_sex_radio_f, sx_right_handed, - sx_left_handed, sx_vision_good, sx_vision_bad; - ButtonGroup sex_group, handedness_group, vision_group; - String[] borderStyles = {"Reflect", "Spawn"}; String[] entropyStyles = {"None", "Low", "Medium", "High"}; - String[] defaultvelocities = {"Identical", "Gaussian"}; - String[] saQueryStyles = {"A","B"}; String[] simModes = {"Single Trial","Multiple Trials","Continuous"}; + String[] genders = {"", "Male", "Female"}; + String[] vision = {"", "Yes", "No"}; + String[] handedness = {"", "Right", "Left"}; public ControlPanel(EventHandler evh) { @@ -74,44 +70,19 @@ class ControlPanel extends JFrame implements ActionListener { sx_subpanel.add(sx_age); sx_subpanel.add(sx_age_textfield); sx_sex = new JLabel("Sex: "); - sx_sex_panel = new JPanel(new GridLayout(0,2)); - sx_sex_radio_m = new JRadioButtonMenuItem("Male"); - sx_sex_radio_m.setFocusable(false); - sx_sex_radio_f = new JRadioButtonMenuItem("Female"); - sx_sex_radio_f.setFocusable(false); - sex_group = new ButtonGroup(); - sex_group.add(sx_sex_radio_m); - sex_group.add(sx_sex_radio_f); - sx_sex_panel.add(sx_sex_radio_m); - sx_sex_panel.add(sx_sex_radio_f); + gender_combobox = new JComboBox(genders); sx_subpanel.add(sx_sex); - sx_subpanel.add(sx_sex_panel); + sx_subpanel.add(gender_combobox); sx_handedness = new JLabel("Primary hand: "); sx_handedness_panel = new JPanel(new GridLayout(0,2)); - sx_right_handed = new JRadioButtonMenuItem("Right"); - sx_right_handed.setFocusable(false); - sx_left_handed = new JRadioButtonMenuItem("Left"); - sx_left_handed.setFocusable(false); - sx_handedness_panel.add(sx_right_handed); - sx_handedness_panel.add(sx_left_handed); - handedness_group = new ButtonGroup(); - handedness_group.add(sx_right_handed); - handedness_group.add(sx_left_handed); + handedness_combobox = new JComboBox(handedness); sx_subpanel.add(sx_handedness); - sx_subpanel.add(sx_handedness_panel); + sx_subpanel.add(handedness_combobox); sx_vision = new JLabel("20/20 or better vision? "); sx_vision_panel = new JPanel(new GridLayout(0,2)); - sx_vision_good = new JRadioButtonMenuItem("Yes"); - sx_vision_good.setFocusable(false); - sx_vision_bad = new JRadioButtonMenuItem("No"); - sx_vision_bad.setFocusable(false); - vision_group = new ButtonGroup(); - vision_group.add(sx_vision_good); - vision_group.add(sx_vision_bad); - sx_vision_panel.add(sx_vision_good); - sx_vision_panel.add(sx_vision_bad); + vision_combobox = new JComboBox(vision); sx_subpanel.add(sx_vision); - sx_subpanel.add(sx_vision_panel); + sx_subpanel.add(vision_combobox); sx_panel.add(sx_subpanel); sx_start_panel = new JPanel(new GridLayout(0,1)); confirm_cb = new JCheckBox("Lock-in Information: "); @@ -119,8 +90,9 @@ class ControlPanel extends JFrame implements ActionListener { confirm_cb.setActionCommand("check-info"); sx_start_panel.add(confirm_cb); sx_start_button = new JButton("Start"); - sx_start_button.setActionCommand("START"); + sx_start_button.setActionCommand("sx-start"); sx_start_button.setEnabled(false); + sx_start_button.addActionListener(evh); sx_start_panel.add(sx_start_button); sx_panel.add(sx_start_panel); @@ -196,21 +168,18 @@ class ControlPanel extends JFrame implements ActionListener { if ((sx_name_textfield.getText().length() > 0) && (sx_age_textfield.getText().length() > 0) && (Integer.valueOf(sx_age_textfield.getText()) >= 18) && - (sex_group.getSelection() != null) && - (handedness_group.getSelection() != null) && - (vision_group.getSelection() != null) && + (gender_combobox.getSelectedIndex() > 0) && + (handedness_combobox.getSelectedIndex() > 0) && + (vision_combobox.getSelectedIndex() > 0) && (sx_email_textfield.getText().length() > 0)) { sx_start_button.setEnabled(true); confirm_cb.setSelected(true); sx_name_textfield.setEnabled(false); sx_age_textfield.setEnabled(false); - sx_sex_radio_f.setEnabled(false); - sx_sex_radio_m.setEnabled(false); - sx_right_handed.setEnabled(false); - sx_left_handed.setEnabled(false); - sx_vision_good.setEnabled(false); - sx_vision_bad.setEnabled(false); - sx_email_textfield.setEditable(false); + gender_combobox.setEnabled(false); + handedness_combobox.setEnabled(false); + vision_combobox.setEnabled(false); + sx_email_textfield.setEnabled(false); } else { sx_start_button.setEnabled(false); confirm_cb.setSelected(false); @@ -224,13 +193,10 @@ class ControlPanel extends JFrame implements ActionListener { sx_start_button.setEnabled(false); sx_name_textfield.setEnabled(true); sx_age_textfield.setEnabled(true); - sx_sex_radio_f.setEnabled(true); - sx_sex_radio_m.setEnabled(true); - sx_right_handed.setEnabled(true); - sx_left_handed.setEnabled(true); - sx_vision_good.setEnabled(true); - sx_vision_bad.setEnabled(true); - sx_email_textfield.setEditable(true); + gender_combobox.setEnabled(true); + handedness_combobox.setEnabled(true); + vision_combobox.setEnabled(true); + sx_email_textfield.setEnabled(true); } else { checkDemographics(); } diff --git a/motsim/Controller.java b/motsim/Controller.java index f7be018..fc9db80 100755 --- a/motsim/Controller.java +++ b/motsim/Controller.java @@ -33,11 +33,8 @@ import java.awt.Font; import java.awt.font.TextLayout; -import java.security.Timestamp; import java.util.ArrayList; import java.util.Random; -import java.util.Timer; -import java.util.TimerTask; public class Controller { @@ -182,6 +179,15 @@ public class Controller { } void startTrials() { + /* Store participant information */ + model.participant = new Participant( + view.cp.sx_name_textfield.getText(), + view.cp.sx_email_textfield.getText(), + view.cp.genders[view.cp.gender_combobox.getSelectedIndex()], + view.cp.handedness[view.cp.handedness_combobox.getSelectedIndex()], + view.cp.vision[view.cp.vision_combobox.getSelectedIndex()], + Integer.valueOf(view.cp.sx_age_textfield.getText()) + ); /* Initialize trial values */ model.maxduration = 1000 * (Integer)view.cp.duration_spinner.getValue(); model.entropy = view.cp.entropy_combobox.getSelectedItem().toString(); diff --git a/motsim/EventHandler.java b/motsim/EventHandler.java index d1cc2bb..7580c0c 100644 --- a/motsim/EventHandler.java +++ b/motsim/EventHandler.java @@ -29,7 +29,8 @@ ActionListener { } public void actionPerformed(ActionEvent e) { - if (e.getActionCommand()=="cp-start") { + if (e.getActionCommand()=="cp-start" || + e.getActionCommand()=="sx-start") { if ((view.cp.collectdata_checkbox.getSelectedObjects()!=null) && !(view.cp.sx_panel.isVisible())) { view.collectDemographics(); diff --git a/motsim/Model.java b/motsim/Model.java index db58a55..01eeee2 100755 --- a/motsim/Model.java +++ b/motsim/Model.java @@ -37,33 +37,36 @@ import java.awt.Font; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; import java.util.ArrayList; -import java.util.TreeMap; public class Model { - public enum TrialStage { - INIT, CHOOSE, MOVE, FIND, END - } - + /* Graphic Environment Information */ GraphicsEnvironment ge; GraphicsDevice gd; DisplayMode display_mode_default; DisplayMode display_mode_preferred; - DisplayMode[] display_mode_available; + DisplayMode[] display_mode_available; ArrayList targets; - - TrialStage stage = TrialStage.INIT; - Thread trialThread = null; - int trialCount = 1; + /* + * Use this enum to indicate which stage of the experiment we are in + */ + public enum TrialStage { + INIT, INFO, BIAS, CHOOSE, MOVE, FIND, TLX, END + } + TrialStage stage = TrialStage.INIT; - boolean complete_demographics = false; + /* Represents basic experiment information */ Participant participant = null; - TreeMap trialResults = null; + int trialCount = 0; double startTime = 0; - double stopTime = 0; - + double stopTime = 0; + + /* Trial worker thread */ + Thread trialThread = null; + + /* GUI Information */ String borderstyle; Font target_font; Font query_font; diff --git a/motsim/Participant.java b/motsim/Participant.java index e55b79e..0a7b83e 100644 --- a/motsim/Participant.java +++ b/motsim/Participant.java @@ -1,3 +1,5 @@ +import java.util.TreeMap; + /** * Participant.java * motsim @@ -33,18 +35,19 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. public class Participant { - String fullname, email, gender, primary_hand; - boolean good_vision; + String fullname, email, gender, primary_hand, good_vision; int age; + TreeMap trialResults; public Participant(String fullname, String email, String gender, - String primary_hand, int age, boolean good_vision) { + String primary_hand, String good_vision, int age) { this.fullname = fullname; this.email = email; this.gender = gender; this.primary_hand = primary_hand; this.age = age; this.good_vision = good_vision; + trialResults = new TreeMap(); } } -- 2.11.4.GIT