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); 
+    }
 }