Mercurial > hg > mep
diff 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 |
line wrap: on
line diff
--- a/ExperimentController.java Mon Nov 12 22:34:52 2012 +0000 +++ b/ExperimentController.java Mon Nov 12 22:48:39 2012 +0000 @@ -154,20 +154,28 @@ } } } else { + if (exp.getDebug()) + System.out.println("Button response, getAcceptingResponses: " + gui.getAcceptingResponses() + " " + e.getActionCommand()); + JButton[] rButtons = sp.getResponseButtons(); for (int i = 0; i < rButtons.length; i++) { - System.out.println("getAcceptingResponses: " + gui.getAcceptingResponses()); if (source == rButtons[i] && (exp.isRunning() || exp.hasRun()) && gui.getAcceptingResponses()) { + ratingResponse(i, time); + /* block.addResponse(i+1, time); gui.setAcceptingResponses(false); rButtons[i].setBackground(Color.red); + rButtons[i].setOpaque(true); + */ } } } } + public void keyPressed(KeyEvent e) { - //System.out.println("Key pressed: " + e.getKeyChar()); + if (exp.getDebug()) + System.out.println("Key pressed: " + e.getKeyChar()); long time = System.nanoTime(); Block block = exp.getCurrentBlock(); @@ -186,10 +194,13 @@ for (int i = 0; i < rButtons.length; i++) { //System.out.println("Char = " + Character.forDigit(i+1, 10)); if (e.getKeyChar() == Character.forDigit(i+1, 10)) { + ratingResponse(i, time); + /* if (exp.getDebug()) System.out.println("Got rating: " + (i + 1)); block.addResponse(i+1, time); gui.setAcceptingResponses(false); + */ } //else // block.addResponse(0, time); @@ -204,4 +215,15 @@ public void keyTyped(KeyEvent e) { //System.out.println("Key typed: " + e.getKeyChar()); } + + protected void ratingResponse(int buttonIndex, long time) { + + int rating = buttonIndex + 1; + + if (exp.getDebug()) + System.out.println("Rating: " + rating); + exp.getCurrentBlock().addResponse(rating, time); + sp.highlightResponse(buttonIndex); + gui.setAcceptingResponses(false); + } }