Revision: 811
Author: allain.lalonde
Date: Fri Oct 23 13:56:47 2009
Log: Adding Tests to PSwing Event Handlers
http://code.google.com/p/piccolo2d/source/detail?r=811

Added:
   
/piccolo2d.java/trunk/extras/src/test/java/edu/umd/cs/piccolox/pswing/PSwingEventHandlerTest.java
   
/piccolo2d.java/trunk/extras/src/test/java/edu/umd/cs/piccolox/pswing/PSwingMouseEventTest.java
Modified:
   
/piccolo2d.java/trunk/extras/src/main/java/edu/umd/cs/piccolox/pswing/PSwingEventHandler.java
   
/piccolo2d.java/trunk/extras/src/main/java/edu/umd/cs/piccolox/pswing/PSwingMouseEvent.java

=======================================
--- /dev/null
+++  
/piccolo2d.java/trunk/extras/src/test/java/edu/umd/cs/piccolox/pswing/PSwingEventHandlerTest.java
        
Fri Oct 23 13:56:47 2009
@@ -0,0 +1,11 @@
+package edu.umd.cs.piccolox.pswing;
+
+import junit.framework.TestCase;
+
+public class PSwingEventHandlerTest extends TestCase {
+
+    public void testConstructorAcceptsNullTargetNode() {
+        PSwingCanvas canvas = new PSwingCanvas();
+        PSwingEventHandler handler = new PSwingEventHandler(canvas, null);
+    }
+}
=======================================
--- /dev/null
+++  
/piccolo2d.java/trunk/extras/src/test/java/edu/umd/cs/piccolox/pswing/PSwingMouseEventTest.java
  
Fri Oct 23 13:56:47 2009
@@ -0,0 +1,74 @@
+package edu.umd.cs.piccolox.pswing;
+
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseWheelEvent;
+
+import javax.swing.JComponent;
+import javax.swing.JPanel;
+
+import junit.framework.TestCase;
+import edu.umd.cs.piccolo.event.PInputEvent;
+
+public class PSwingMouseEventTest extends TestCase {
+
+    public void testCreateMouseEventDoesNotAcceptNullPInputEvent() {
+        try {
+            MouseEvent mouseEvent = new MouseEvent(null,  
MouseEvent.MOUSE_MOVED, System.currentTimeMillis(), 0, 0, 0,
+                    0, false);
+            PSwingMouseEvent.createMouseEvent(0, mouseEvent, null);
+            fail("Null PInputEvent should throw an exception");
+        }
+        catch (IllegalArgumentException iae) {
+            // expected exception
+        }
+    }
+
+    public void testCreateMouseEventDoesNotAcceptNullMouseEvent() {
+        try {
+            PInputEvent event = new PInputEvent(null, null);
+            PSwingMouseEvent.createMouseEvent(0, null, event);
+            fail("Null MouseEvent should throw an exception");
+        }
+        catch (NullPointerException iae) {
+            // expected exception
+        }
+    }
+
+    public void  
testCreateMouseEventReturnsValidMouseEventWhenParamsAreGood() {
+        JComponent src = new JPanel();
+        PInputEvent piccoloEvent = new PInputEvent(null, null);
+        MouseEvent mouseEvent = new MouseEvent(src,  
MouseEvent.MOUSE_MOVED, System.currentTimeMillis(), 0, 0, 0, 0,
+                false);
+        PSwingEvent swingEvent = PSwingMouseEvent.createMouseEvent(0,  
mouseEvent, piccoloEvent);
+        assertNotNull(swingEvent);
+    }
+
+    public void  
testCreateMouseEventReturnsPSwingMouseEventWhenGivenGenericID() {
+        JComponent src = new JPanel();
+        PInputEvent piccoloEvent = new PInputEvent(null, null);
+        MouseEvent mouseEvent = new MouseEvent(src, 0,  
System.currentTimeMillis(), 0, 0, 0, 0,
+                false);
+        PSwingEvent swingEvent = PSwingMouseEvent.createMouseEvent(0,  
mouseEvent, piccoloEvent);
+        assertTrue(swingEvent instanceof PSwingMouseEvent);
+    }
+
+    public void  
testCreateMouseEventReturnsPSwingMouseMotionEventWhenGivenMotionID() {
+        JComponent src = new JPanel();
+        PInputEvent piccoloEvent = new PInputEvent(null, null);
+        MouseEvent mouseEvent = new MouseEvent(src,  
MouseEvent.MOUSE_MOVED, System.currentTimeMillis(), 0, 0, 0, 0,
+                false);
+        PSwingEvent swingEvent =  
PSwingMouseEvent.createMouseEvent(MouseEvent.MOUSE_MOVED, mouseEvent,  
piccoloEvent);
+        assertTrue(swingEvent instanceof PSwingMouseMotionEvent);
+    }
+
+    public void  
testCreateMouseEventReturnsPSwingMouseWheelEventWhenGivenWheelID() {
+        JComponent src = new JPanel();
+        PInputEvent piccoloEvent = new PInputEvent(null, null);
+        MouseWheelEvent mouseEvent = new MouseWheelEvent(src,  
MouseEvent.MOUSE_WHEEL, System.currentTimeMillis(), 0, 0,
+                0, 0,
+                false, MouseWheelEvent.WHEEL_UNIT_SCROLL, 10, 1);
+        PSwingEvent swingEvent =  
PSwingMouseEvent.createMouseEvent(MouseEvent.MOUSE_WHEEL, mouseEvent,  
piccoloEvent);
+        assertTrue(swingEvent instanceof PSwingMouseWheelEvent);
+    }
+
+}
=======================================
---  
/piccolo2d.java/trunk/extras/src/main/java/edu/umd/cs/piccolox/pswing/PSwingEventHandler.java
    
Wed Oct 14 08:47:49 2009
+++  
/piccolo2d.java/trunk/extras/src/main/java/edu/umd/cs/piccolox/pswing/PSwingEventHandler.java
    
Fri Oct 23 13:56:47 2009
@@ -114,7 +114,7 @@
      /**
       * Sets whether this event handler can fire events.
       *
-     * @param active true if thie event handler can fire events
+     * @param active true if this event handler can fire events
       */
      void setActive(final boolean active) {
          if (this.active && !active) {
@@ -266,11 +266,11 @@
          }
          else if (isWheelEvent(pSwingMouseEvent) && comp != null) {
              final MouseWheelEvent mWEvent = (MouseWheelEvent) mEvent;
-
+
              final MouseWheelEvent tempEvent = new MouseWheelEvent(comp,  
pSwingMouseEvent.getID(), mEvent.getWhen(),
                      mEvent.getModifiers(), point.x - offset.x, point.y -  
offset.y, mEvent.getClickCount(), mEvent
-                            .isPopupTrigger(), mWEvent.getScrollType(),  
mWEvent.getScrollAmount(), mWEvent
-                            .getWheelRotation());
+                    .isPopupTrigger(), mWEvent.getScrollType(),  
mWEvent.getScrollAmount(), mWEvent
+                    .getWheelRotation());

              final PSwingMouseWheelEvent e2 = new  
PSwingMouseWheelEvent(tempEvent.getID(), tempEvent, aEvent);
              dispatchEvent(comp, e2);
@@ -465,29 +465,34 @@
       * Process a Piccolo2D event and (if active) dispatch the corresponding
       * Swing event.
       *
-     * @param aEvent Piccolo2D event being testing for dispatch to swing
+     * @param aEvent Piccolo2D event being tested for dispatch to swing
       * @param type is not used in this method
       */
      public void processEvent(final PInputEvent aEvent, final int type) {
-        if (aEvent.isMouseEvent()) {
-            final InputEvent sourceSwingEvent =  
aEvent.getSourceSwingEvent();
-            if (sourceSwingEvent instanceof MouseEvent) {
-                final MouseEvent swingMouseEvent = (MouseEvent)  
sourceSwingEvent;
-                final PSwingEvent pSwingMouseEvent =  
PSwingMouseEvent.createMouseEvent(swingMouseEvent.getID(),
-                        swingMouseEvent, aEvent);
-                if (!recursing) {
-                    recursing = true;
-                    dispatchEvent(pSwingMouseEvent, aEvent);
-                    if (pSwingMouseEvent.asMouseEvent().isConsumed()) {
-                        aEvent.setHandled(true);
-                    }
-                    recursing = false;
-                }
-            }
-            else {
-                throw new  
RuntimeException("PInputEvent.getSourceSwingEvent was not a MouseEvent.   
Actual event: "
-                        + sourceSwingEvent + ", class=" +  
sourceSwingEvent.getClass().getName());
-            }
+        if (!aEvent.isMouseEvent()) {
+            return;
+        }
+
+        final InputEvent sourceSwingEvent = aEvent.getSourceSwingEvent();
+        if (!(sourceSwingEvent instanceof MouseEvent)) {
+            throw new RuntimeException("PInputEvent.getSourceSwingEvent  
was not a MouseEvent.  Actual event: "
+                    + sourceSwingEvent + ", class=" +  
sourceSwingEvent.getClass().getName());
+        }
+
+        processMouseEvent(aEvent, (MouseEvent) sourceSwingEvent);
+    }
+
+    private void processMouseEvent(final PInputEvent aEvent, final  
MouseEvent swingMouseEvent) {
+        if (!recursing) {
+            recursing = true;
+            final PSwingEvent pSwingMouseEvent =  
PSwingMouseEvent.createMouseEvent(swingMouseEvent.getID(),
+                    swingMouseEvent, aEvent);
+
+            dispatchEvent(pSwingMouseEvent, aEvent);
+            if (pSwingMouseEvent.asMouseEvent().isConsumed()) {
+                aEvent.setHandled(true);
+            }
+            recursing = false;
          }
      }

=======================================
---  
/piccolo2d.java/trunk/extras/src/main/java/edu/umd/cs/piccolox/pswing/PSwingMouseEvent.java
      
Tue Oct 13 20:14:37 2009
+++  
/piccolo2d.java/trunk/extras/src/main/java/edu/umd/cs/piccolox/pswing/PSwingMouseEvent.java
      
Fri Oct 23 13:56:47 2009
@@ -109,6 +109,10 @@
       * @return the constructed PSwingEvent
       */
      public static PSwingEvent createMouseEvent(final int id, final  
MouseEvent swingEvent, final PInputEvent pEvent) {
+        if (pEvent == null) {
+            throw new IllegalArgumentException("PInputEvent associated  
with PSwingEvent may not be null");
+        }
+
          if (id == MouseEvent.MOUSE_MOVED || id ==  
MouseEvent.MOUSE_DRAGGED) {
              return new PSwingMouseMotionEvent(id, swingEvent, pEvent);
          }

--~--~---------~--~----~------------~-------~--~----~
Piccolo2D Developers Group: http://groups.google.com/group/piccolo2d-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to