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
-~----------~----~----~----~------~----~------~--~---