Mercurial > hg > mep
comparison ExperimentController.java @ 26:c5db34797ff3
Visual feedback for responses: consistent for mouse and keyboard input; disable buttons when not inactive. Improved debugging messages.
author | Jeremy Gow <jeremy.gow@gmail.com> |
---|---|
date | Mon, 12 Nov 2012 22:48:39 +0000 |
parents | 9fc8683b8fed |
children | 84d943797cf2 |
comparison
equal
deleted
inserted
replaced
25:cd11981476ec | 26:c5db34797ff3 |
---|---|
152 exp.runExperiment(); | 152 exp.runExperiment(); |
153 | 153 |
154 } | 154 } |
155 } | 155 } |
156 } else { | 156 } else { |
157 if (exp.getDebug()) | |
158 System.out.println("Button response, getAcceptingResponses: " + gui.getAcceptingResponses() + " " + e.getActionCommand()); | |
159 | |
157 JButton[] rButtons = sp.getResponseButtons(); | 160 JButton[] rButtons = sp.getResponseButtons(); |
158 for (int i = 0; i < rButtons.length; i++) { | 161 for (int i = 0; i < rButtons.length; i++) { |
159 System.out.println("getAcceptingResponses: " + gui.getAcceptingResponses()); | |
160 if (source == rButtons[i] && (exp.isRunning() || exp.hasRun()) && gui.getAcceptingResponses()) { | 162 if (source == rButtons[i] && (exp.isRunning() || exp.hasRun()) && gui.getAcceptingResponses()) { |
163 ratingResponse(i, time); | |
164 /* | |
161 block.addResponse(i+1, time); | 165 block.addResponse(i+1, time); |
162 gui.setAcceptingResponses(false); | 166 gui.setAcceptingResponses(false); |
163 rButtons[i].setBackground(Color.red); | 167 rButtons[i].setBackground(Color.red); |
164 } | 168 rButtons[i].setOpaque(true); |
165 } | 169 */ |
166 } | 170 } |
167 } | 171 } |
172 } | |
173 } | |
174 | |
168 | 175 |
169 public void keyPressed(KeyEvent e) { | 176 public void keyPressed(KeyEvent e) { |
170 //System.out.println("Key pressed: " + e.getKeyChar()); | 177 if (exp.getDebug()) |
178 System.out.println("Key pressed: " + e.getKeyChar()); | |
171 long time = System.nanoTime(); | 179 long time = System.nanoTime(); |
172 | 180 |
173 Block block = exp.getCurrentBlock(); | 181 Block block = exp.getCurrentBlock(); |
174 sp = gui.getStimulusPanel(); | 182 sp = gui.getStimulusPanel(); |
175 JButton[] rButtons = sp.getResponseButtons(); | 183 JButton[] rButtons = sp.getResponseButtons(); |
184 } | 192 } |
185 } else { | 193 } else { |
186 for (int i = 0; i < rButtons.length; i++) { | 194 for (int i = 0; i < rButtons.length; i++) { |
187 //System.out.println("Char = " + Character.forDigit(i+1, 10)); | 195 //System.out.println("Char = " + Character.forDigit(i+1, 10)); |
188 if (e.getKeyChar() == Character.forDigit(i+1, 10)) { | 196 if (e.getKeyChar() == Character.forDigit(i+1, 10)) { |
197 ratingResponse(i, time); | |
198 /* | |
189 if (exp.getDebug()) | 199 if (exp.getDebug()) |
190 System.out.println("Got rating: " + (i + 1)); | 200 System.out.println("Got rating: " + (i + 1)); |
191 block.addResponse(i+1, time); | 201 block.addResponse(i+1, time); |
192 gui.setAcceptingResponses(false); | 202 gui.setAcceptingResponses(false); |
203 */ | |
193 } | 204 } |
194 //else | 205 //else |
195 // block.addResponse(0, time); | 206 // block.addResponse(0, time); |
196 } | 207 } |
197 } | 208 } |
202 // System.out.println("Key released: " + e.getKeyChar()); | 213 // System.out.println("Key released: " + e.getKeyChar()); |
203 } | 214 } |
204 public void keyTyped(KeyEvent e) { | 215 public void keyTyped(KeyEvent e) { |
205 //System.out.println("Key typed: " + e.getKeyChar()); | 216 //System.out.println("Key typed: " + e.getKeyChar()); |
206 } | 217 } |
218 | |
219 protected void ratingResponse(int buttonIndex, long time) { | |
220 | |
221 int rating = buttonIndex + 1; | |
222 | |
223 if (exp.getDebug()) | |
224 System.out.println("Rating: " + rating); | |
225 exp.getCurrentBlock().addResponse(rating, time); | |
226 sp.highlightResponse(buttonIndex); | |
227 gui.setAcceptingResponses(false); | |
228 } | |
207 } | 229 } |