Mercurial > hg > mep
changeset 37:0e030f32a6e2
Allow alphanumeric subject IDs
author | Jeremy Gow <jeremy.gow@gmail.com> |
---|---|
date | Fri, 16 Nov 2012 10:17:19 +0000 |
parents | 69dafbbfc422 |
children | a36ca20cffd4 |
files | Block.class Experiment.class Experiment.java ExperimentController.class ExperimentController.java InstructionsPanel.class InstructionsPanel.java MelodyResults.class MelodyResults.java SubjectDataPanel.class SubjectDataPanel.java SubjectResults.class SubjectResults.java |
diffstat | 13 files changed, 23 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/Experiment.java Wed Nov 14 21:53:01 2012 +0000 +++ b/Experiment.java Fri Nov 16 10:17:19 2012 +0000 @@ -59,7 +59,7 @@ int currentBlockID; /* Subject ID */ - private int subjectID; + private String subjectID; /* Results */ private SubjectResults results; @@ -94,8 +94,8 @@ public int getClockUnits() { return clockUnits; } public int getNumUnits() { return numUnits; } public String getInstructionsFile() { return INSTRUCTIONS_FILE; } - public int getSubjectID() { return subjectID; } - public void setSubjectID(int id) { + public String getSubjectID() { return subjectID; } + public void setSubjectID(String id) { subjectID = id; results.setSubjectID(id); results.setOutputFile(id);
--- a/ExperimentController.java Wed Nov 14 21:53:01 2012 +0000 +++ b/ExperimentController.java Fri Nov 16 10:17:19 2012 +0000 @@ -65,9 +65,9 @@ // InstructionsPanel if (source == ip.getNextButton()) { - int subjID = ip.getSubjectID(); - if (subjID == ip.INVALID_SUBJECT_ID || subjID < 1) - reportError("The Participant ID should be a positive integer."); + String subjID = ip.getSubjectID(); + if (subjID.equals(ip.INVALID_SUBJECT_ID)) + reportError("The participant ID should contain only letters and numbers."); // TODO: check that subjID doesn't already exist else { exp.setSubjectID(subjID);
--- a/InstructionsPanel.java Wed Nov 14 21:53:01 2012 +0000 +++ b/InstructionsPanel.java Fri Nov 16 10:17:19 2012 +0000 @@ -11,11 +11,12 @@ import javax.swing.*; import javax.swing.text.*; import java.io.*; +import java.util.regex.Pattern; public class InstructionsPanel extends JPanel { /* invalid subject id */ - public static final int INVALID_SUBJECT_ID = -1000; + public static final String INVALID_SUBJECT_ID = "----"; /* variables */ private ExperimentGui gui; @@ -51,13 +52,14 @@ /* methods */ - public int getSubjectID() { - int subjID; - try { - subjID = Integer.parseInt(subjectIDField.getText()); - } catch (NumberFormatException e) { + public String getSubjectID() { + String subjID = subjectIDField.getText(); + Pattern nonAlphaNum = Pattern.compile("[^a-zA-Z0-9]"); + + if (nonAlphaNum.matcher(subjID).find()) { subjID = INVALID_SUBJECT_ID; } + return subjID; }
--- a/MelodyResults.java Wed Nov 14 21:53:01 2012 +0000 +++ b/MelodyResults.java Fri Nov 16 10:17:19 2012 +0000 @@ -16,11 +16,11 @@ private ArrayList probes, responses, responseTimes, questions, answers, onsets, iois, durations, pitches; private String composition; - private int subjectID; + private String subjectID; /* accessors */ - public int getSubjectID() { return subjectID; } - public void setSubjectID(int id) { subjectID = id; } + public String getSubjectID() { return subjectID; } + public void setSubjectID(String id) { subjectID = id; } /* constructor */ public MelodyResults (String midifile, ArrayList pr, ArrayList o,
--- a/SubjectDataPanel.java Wed Nov 14 21:53:01 2012 +0000 +++ b/SubjectDataPanel.java Fri Nov 16 10:17:19 2012 +0000 @@ -203,7 +203,7 @@ public void storeData() { ArrayList subjectData = new ArrayList(); - String[] id = {"ID", Integer.toString(results.getSubjectID())}; + String[] id = {"ID", results.getSubjectID()}; subjectData.add(id); String[] age = {"Age",ageField.getText()}; subjectData.add(age);
--- a/SubjectResults.java Wed Nov 14 21:53:01 2012 +0000 +++ b/SubjectResults.java Fri Nov 16 10:17:19 2012 +0000 @@ -13,17 +13,17 @@ public class SubjectResults { /* variables */ - private int subjectID; + private String subjectID; private File outputFile, subjectDataFile; private ArrayList results, subjectData; private Experiment exp; /* accessors */ - public int getSubjectID() { return subjectID; } - public void setSubjectID(int id) { subjectID = id; } + public String getSubjectID() { return subjectID; } + public void setSubjectID(String id) { subjectID = id; } public void setSubjectData (ArrayList sd) { subjectData = sd; } - public void setOutputFile (int id) { - outputFile = new File(exp.RESULTS_DIRECTORY + Integer.toString(id) + + public void setOutputFile (String id) { + outputFile = new File(exp.RESULTS_DIRECTORY + id + exp.RESULTS_EXTENSION); }