Revision: 586
Author: allain.lalonde
Date: Mon Jul 27 13:14:54 2009
Log: Killing some FindBugs involving serialization.
http://code.google.com/p/piccolo2d/source/detail?r=586
Modified:
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PCamera.java
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PCanvas.java
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PLayer.java
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PNode.java
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PRoot.java
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/nodes/PImage.java
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/nodes/PPath.java
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/nodes/PText.java
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/util/PAffineTransform.java
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/util/PAffineTransformException.java
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/util/PBounds.java
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/util/PDimension.java
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/util/PStack.java
/piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/MockPInputEventListener.java
/piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/PCameraTest.java
/piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/PLayerTest.java
/piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/PNodeTest.java
/piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/PRootTest.java
=======================================
---
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PCamera.java
Mon Jul 27 11:23:33 2009
+++
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PCamera.java
Mon Jul 27 13:14:54 2009
@@ -68,6 +68,12 @@
*/
public class PCamera extends PNode {
+ /**
+ * Allows for future serialization code to understand versioned binary
+ * formats.
+ */
+ private static final long serialVersionUID = 1L;
+
/**
* The property name that identifies a change in the set of this
camera's
* layers (see {...@link #getLayer getLayer}, {...@link #getLayerCount
@@ -158,16 +164,17 @@
repaintFrom(TEMP_REPAINT_RECT, repaintedLayer);
}
}
-
+
/**
* @deprecated since a more specific repaintFromLayer method is
available
*
- * Repaint from one of the cameras layers. The repaint region needs to
be
- * transformed from view to local in this case. Unlike most repaint
methods
- * in piccolo this one must not modify the viewBounds parameter.
+ * Repaint from one of the cameras layers. The repaint
region
+ * needs to be transformed from view to local in this case.
+ * Unlike most repaint methods in piccolo this one must not
+ * modify the viewBounds parameter.
*/
- public void repaintFromLayer(PBounds viewBounds, PNode repaintedLayer)
{
- this.repaintFromLayer(viewBounds, (PLayer)repaintedLayer);
+ public void repaintFromLayer(PBounds viewBounds, PNode repaintedLayer)
{
+ this.repaintFromLayer(viewBounds, (PLayer) repaintedLayer);
}
// ****************************************************************
@@ -640,6 +647,9 @@
layerBounds.setRect(layerBounds.getCenterX(),
layerBounds.getCenterY(), 0, 0);
constraintDelta =
viewBounds.deltaRequiredToContain(layerBounds);
break;
+ default:
+
+ throw new RuntimeException("Invalid View Constraint");
}
viewTransform.translate(-constraintDelta.width,
-constraintDelta.height);
@@ -685,8 +695,8 @@
* camera's view coordinate system. The given point is modified by this
* method.
*/
- public Point2D localToView(Point2D localPoint) {
- return viewTransform.inverseTransform(localPoint, localPoint);
+ public Point2D localToView(Point2D localPoint) {
+ return viewTransform.inverseTransform(localPoint, localPoint);
}
/**
@@ -694,8 +704,8 @@
* camera's view coordinate system. The given dimension is modified by
this
* method.
*/
- public Dimension2D localToView(Dimension2D localDimension) {
- return viewTransform.inverseTransform(localDimension,
localDimension);
+ public Dimension2D localToView(Dimension2D localDimension) {
+ return viewTransform.inverseTransform(localDimension,
localDimension);
}
/**
=======================================
---
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PCanvas.java
Fri Jul 24 07:37:07 2009
+++
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PCanvas.java
Mon Jul 27 13:14:54 2009
@@ -70,7 +70,12 @@
* @author Jesse Grosjean
*/
public class PCanvas extends JComponent implements PComponent {
-
+ /**
+ * Allows for future serialization code to understand versioned binary
+ * formats.
+ */
+ private static final long serialVersionUID = 1L;
+
/**
* @deprecated this is a typo and clients should change their code to
* reflect the correct spelling
@@ -90,10 +95,10 @@
private PZoomEventHandler zoomEventHandler;
private boolean paintingImmediately;
private boolean animatingOnLastPaint;
- private MouseListener mouseListener;
- private KeyEventPostProcessor keyEventPostProcessor;
- private MouseWheelListener mouseWheelListener;
- private MouseMotionListener mouseMotionListener;
+ private transient MouseListener mouseListener;
+ private transient KeyEventPostProcessor keyEventPostProcessor;
+ private transient MouseWheelListener mouseWheelListener;
+ private transient MouseMotionListener mouseMotionListener;
/**
* Construct a canvas with the basic scene graph consisting of a root,
=======================================
--- /piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PLayer.java
Fri Jul 17 07:05:15 2009
+++ /piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PLayer.java
Mon Jul 27 13:14:54 2009
@@ -54,7 +54,12 @@
* @author Jesse Grosjean
*/
public class PLayer extends PNode {
-
+ /**
+ * Allows for future serialization code to understand versioned binary
+ * formats.
+ */
+ private static final long serialVersionUID = 1L;
+
/**
* The property name that identifies a change in the set of this
layer's
* cameras (see {...@link #getCamera getCamera}, {...@link #getCameraCount
=======================================
--- /piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PNode.java
Sat Jul 25 06:39:02 2009
+++ /piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PNode.java
Mon Jul 27 13:14:54 2009
@@ -98,6 +98,11 @@
* @author Jesse Grosjean
*/
public class PNode implements Cloneable, Serializable, Printable {
+ /**
+ * Allows for future serialization code to understand versioned binary
+ * formats.
+ */
+ private static final long serialVersionUID = 1L;
/**
* The property name that identifies a change in this node's client
@@ -536,7 +541,7 @@
};
PColorActivity ca = new PColorActivity(duration,
PUtil.DEFAULT_ACTIVITY_STEP_RATE, t, destColor);
- addActivity(ca);
+ addActivity(ca);
return ca;
}
}
@@ -761,7 +766,7 @@
}
catch (ClassNotFoundException e) {
return null;
- }
+ }
}
// ****************************************************************
@@ -856,8 +861,8 @@
public Point2D parentToLocal(Point2D parentPoint) {
if (transform == null)
return parentPoint;
-
- return transform.inverseTransform(parentPoint, parentPoint);
+
+ return transform.inverseTransform(parentPoint, parentPoint);
}
/**
@@ -1022,14 +1027,15 @@
* @return The inverse of the concatenation of transforms from the
root down
* to this node.
*/
- public PAffineTransform getGlobalToLocalTransform(PAffineTransform
dest) {
+ public PAffineTransform getGlobalToLocalTransform(PAffineTransform
dest) {
dest = getLocalToGlobalTransform(dest);
try {
dest.setTransform(dest.createInverse());
- } catch (NoninvertibleTransformException e) {
+ }
+ catch (NoninvertibleTransformException e) {
throw new PAffineTransformException(e, dest);
}
- return dest;
+ return dest;
}
// ****************************************************************
@@ -1245,8 +1251,9 @@
/**
* Notify this node that you will begin to repeatedly call
<code>setBounds
- * </code>. When you are done call <code>endResizeBounds</code> to let
the
- * node know that you are done.
+ * </code>. When you
+ * are done call <code>endResizeBounds</code> to let the node know
that you
+ * are done.
*/
public void startResizeBounds() {
}
@@ -2130,8 +2137,9 @@
Point2D pt1, pt2;
if (parent == null) {
- return null;
- } else {
+ return null;
+ }
+ else {
// First compute translation amount in global coordinates
Rectangle2D srcBounds = getGlobalFullBounds();
srcx = lerp(srcPt.getX(), srcBounds.getX(), srcBounds.getX() +
srcBounds.getWidth());
@@ -2153,32 +2161,34 @@
return animateToTransform(at, millis);
}
}
-
+
/**
* @deprecated in favor of animateToRelativePosition
*
- * It will calculate the necessary transform in order to make this node
- * appear at a particular position relative to the specified bounding
box.
- * The source point specifies a point in the unit square (0, 0) - (1,
1)
- * that represents an anchor point on the corresponding node to this
- * transform. The destination point specifies an anchor point on the
- * reference node. The position method then computes the transform that
- * results in transforming this node so that the source anchor point
- * coincides with the reference anchor point. This can be useful for
layout
- * algorithms as it is straightforward to position one object relative
to
- * another.
- * <p>
- * For example, If you have two nodes, A and B, and you call
+ * It will calculate the necessary transform in order to
make
+ * this node appear at a particular position relative to
the
+ * specified bounding box. The source point specifies a
point in
+ * the unit square (0, 0) - (1, 1) that represents an
anchor
+ * point on the corresponding node to this transform. The
+ * destination point specifies an anchor point on the
reference
+ * node. The position method then computes the transform
that
+ * results in transforming this node so that the source
anchor
+ * point coincides with the reference anchor point. This
can be
+ * useful for layout algorithms as it is straightforward to
+ * position one object relative to another.
+ * <p>
+ * For example, If you have two nodes, A and B, and you
call
*
- * <PRE>
+ * <PRE>
* Point2D srcPt = new Point2D.Double(1.0, 0.0);
* Point2D destPt = new Point2D.Double(0.0, 0.0);
* A.position(srcPt, destPt, B.getGlobalBounds(), 750, null);
* </PRE>
*
- * The result is that A will move so that its upper-right corner is at
the
- * same place as the upper-left corner of B, and the transition will be
- * smoothly animated over a period of 750 milliseconds.
+ * The result is that A will move so that its upper-right
corner
+ * is at the same place as the upper-left corner of B, and
the
+ * transition will be smoothly animated over a period of
750
+ * milliseconds.
*
* @param srcPt The anchor point on this transform's node (normalized
to a
* unit square)
@@ -2233,10 +2243,11 @@
if (transform == null) {
return new PAffineTransform();
}
-
+
try {
return new PAffineTransform(transform.createInverse());
- } catch (NoninvertibleTransformException e) {
+ }
+ catch (NoninvertibleTransformException e) {
throw new PAffineTransformException(e, transform);
}
}
@@ -2568,16 +2579,16 @@
* @param height pixel height of the resulting image
* @return a new image representing this node and its descendents
*/
- public Image toImage(int width, int height, Paint backGroundPaint) {
+ public Image toImage(int width, int height, Paint backGroundPaint) {
BufferedImage result;
-
+
if (GraphicsEnvironment.isHeadless()) {
result = new BufferedImage(width, height,
BufferedImage.TYPE_INT_ARGB);
- }
+ }
else {
GraphicsConfiguration graphicsConfiguration =
GraphicsEnvironment.getLocalGraphicsEnvironment()
- .getDefaultScreenDevice().getDefaultConfiguration();
- result = graphicsConfiguration.createCompatibleImage(width,
height, Transparency.TRANSLUCENT);
+ .getDefaultScreenDevice().getDefaultConfiguration();
+ result = graphicsConfiguration.createCompatibleImage(width,
height, Transparency.TRANSLUCENT);
}
return toImage(result, backGroundPaint);
@@ -2777,7 +2788,7 @@
boolean thisPickable = getPickable() &&
pickPath.acceptsNode(this);
if (thisPickable && pick(pickPath)) {
- return true;
+ return true;
}
if (getChildrenPickable()) {
@@ -2790,7 +2801,7 @@
}
if (thisPickable && pickAfterChildren(pickPath)) {
- return true;
+ return true;
}
pickPath.popTransform(transform);
@@ -3267,15 +3278,15 @@
protected final String paramString() {
return "this Method (paramString) is deprecated and will go away
in the next release.";
}
-
+
public PInputEventListener[] getInputEventListeners() {
if (listenerList == null || listenerList.getListenerCount() == 0)
return new PInputEventListener[] {};
-
+
EventListener[] listeners =
listenerList.getListeners(PInputEventListener.class);
-
+
PInputEventListener[] result = new
PInputEventListener[listeners.length];
- for (int i=0; i<listeners.length; i++) {
+ for (int i = 0; i < listeners.length; i++) {
result[i] = (PInputEventListener) listeners[i];
}
return result;
=======================================
--- /piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PRoot.java
Thu Jul 23 18:04:01 2009
+++ /piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PRoot.java
Mon Jul 27 13:14:54 2009
@@ -52,6 +52,12 @@
*/
public class PRoot extends PNode {
+ /**
+ * Allows for future serialization code to understand versioned binary
+ * formats.
+ */
+ private static final long serialVersionUID = 1L;
+
/**
* The property name that identifies a change in the set of this root's
* input sources (see {...@link InputSource InputSource}). In any property
=======================================
---
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/nodes/PImage.java
Sat Jul 25 06:39:02 2009
+++
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/nodes/PImage.java
Mon Jul 27 13:14:54 2009
@@ -57,6 +57,12 @@
*/
public class PImage extends PNode {
+ /**
+ * Allows for future serialization code to understand versioned binary
+ * formats.
+ */
+ private static final long serialVersionUID = 1L;
+
/**
* The property name that identifies a change of this node's image (see
* {...@link #getImage getImage}). Both old and new value will be set
correctly
=======================================
---
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/nodes/PPath.java
Sat Jul 25 06:39:02 2009
+++
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/nodes/PPath.java
Mon Jul 27 13:14:54 2009
@@ -70,6 +70,12 @@
*/
public class PPath extends PNode {
+ /**
+ * Allows for future serialization code to understand versioned binary
+ * formats.
+ */
+ private static final long serialVersionUID = 1L;
+
/**
* The property name that identifies a change of this node's stroke
paint
* (see {...@link #getStrokePaint getStrokePaint}). Both old and new
value will
=======================================
---
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/nodes/PText.java
Sat Jul 25 06:39:02 2009
+++
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/nodes/PText.java
Mon Jul 27 13:14:54 2009
@@ -52,6 +52,12 @@
*/
public class PText extends PNode {
+ /**
+ * Allows for future serialization code to understand versioned binary
+ * formats.
+ */
+ private static final long serialVersionUID = 1L;
+
/**
* The property name that identifies a change of this node's text (see
* {...@link #getText getText}). Both old and new value will be set in
any
=======================================
---
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/util/PAffineTransform.java
Sat Jul 18 17:58:21 2009
+++
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/util/PAffineTransform.java
Mon Jul 27 13:14:54 2009
@@ -43,7 +43,12 @@
* @author Jesse Grosjean
*/
public class PAffineTransform extends AffineTransform {
-
+ /**
+ * Allows for future serialization code to understand versioned binary
+ * formats.
+ */
+ private static final long serialVersionUID = 1L;
+
private static double[] PTS1 = new double[8];
private static double[] PTS2 = new double[8];
=======================================
---
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/util/PAffineTransformException.java
Fri Jul 17 08:58:34 2009
+++
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/util/PAffineTransformException.java
Mon Jul 27 13:14:54 2009
@@ -1,7 +1,12 @@
package edu.umd.cs.piccolo.util;
public class PAffineTransformException extends RuntimeException {
-
+ /**
+ * Allows for future serialization code to understand versioned binary
+ * formats.
+ */
+ private static final long serialVersionUID = 1L;
+
private final PAffineTransform errantTransform;
public PAffineTransformException(PAffineTransform errantTransform) {
=======================================
---
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/util/PBounds.java
Fri Jul 17 07:05:15 2009
+++
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/util/PBounds.java
Mon Jul 27 13:14:54 2009
@@ -51,7 +51,12 @@
* @author Jesse Grosjean
*/
public class PBounds extends Rectangle2D.Double implements Serializable {
-
+ /**
+ * Allows for future serialization code to understand versioned binary
+ * formats.
+ */
+ private static final long serialVersionUID = 1L;
+
private boolean isEmpty = true;
public PBounds() {
=======================================
---
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/util/PDimension.java
Fri Jul 17 07:05:15 2009
+++
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/util/PDimension.java
Mon Jul 27 13:14:54 2009
@@ -41,7 +41,12 @@
* @author Jesse Grosjean
*/
public class PDimension extends Dimension2D implements Serializable {
-
+ /**
+ * Allows for future serialization code to understand versioned binary
+ * formats.
+ */
+ private static final long serialVersionUID = 1L;
+
public double width;
public double height;
=======================================
---
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/util/PStack.java
Fri Jan 23 12:25:52 2009
+++
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/util/PStack.java
Mon Jul 27 13:14:54 2009
@@ -39,7 +39,12 @@
* @author Jesse Grosjean
*/
public class PStack extends ArrayList {
-
+ /**
+ * Allows for future serialization code to understand versioned binary
+ * formats.
+ */
+ private static final long serialVersionUID = 1L;
+
public PStack() {
}
=======================================
---
/piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/MockPInputEventListener.java
Mon Jul 13 09:01:00 2009
+++
/piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/MockPInputEventListener.java
Mon Jul 27 13:14:54 2009
@@ -7,7 +7,7 @@
import edu.umd.cs.piccolo.event.PInputEventListener;
public class MockPInputEventListener implements PInputEventListener {
- class Notification {
+ static class Notification {
public PInputEvent event;
public int type;
=======================================
---
/piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/PCameraTest.java
Tue Jul 21 07:46:08 2009
+++
/piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/PCameraTest.java
Mon Jul 27 13:14:54 2009
@@ -348,7 +348,7 @@
assertEquals(PCamera.VIEW_CONSTRAINT_ALL,
camera.getViewConstraint());
}
- class MockPComponent implements PComponent {
+ static class MockPComponent implements PComponent {
public void paintImmediately() {
}
=======================================
---
/piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/PLayerTest.java
Tue Jul 21 07:46:08 2009
+++
/piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/PLayerTest.java
Mon Jul 27 13:14:54 2009
@@ -8,118 +8,121 @@
import edu.umd.cs.piccolo.util.PBounds;
public class PLayerTest extends TestCase {
- private PLayer layer;
-
- public void setUp() {
- layer = new PLayer();
- }
-
- public void testLayerHasEmptyCamerasCollectionByDefault() {
- Collection cameras = layer.getCamerasReference();
- assertNotNull(cameras);
- assertTrue(cameras.isEmpty());
- assertEquals(0, layer.getCameraCount());
- }
-
- public void
testGetCameraByIndexThrowsIndexOutOfBoundsExceptionWhenOutOfBounds() {
- PCamera camera = new PCamera();
- layer.addCamera(camera);
- try {
- layer.getCamera(-1);
- fail("Exception should have been thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected;
- }
-
- try {
- layer.getCamera(1);
- fail("Exception should have been thrown");
- } catch (IndexOutOfBoundsException e) {
- // expected;
- }
- }
-
- public void testGetCameraReturnsCameraAtCorrectIndex() {
- PCamera camera1 = new PCamera();
- PCamera camera2 = new PCamera();
- PCamera camera3 = new PCamera();
-
- layer.addCamera(camera1);
- layer.addCamera(camera2);
- layer.addCamera(camera3);
-
- assertEquals(camera1, layer.getCamera(0));
- assertEquals(camera2, layer.getCamera(1));
- assertEquals(camera3, layer.getCamera(2));
- }
-
- public void testAddCameraCorrectlyHandlesIndex() {
- PCamera camera1 = new PCamera();
- PCamera camera2 = new PCamera();
- PCamera camera3 = new PCamera();
-
- layer.addCamera(0, camera1);
- layer.addCamera(0, camera2);
- layer.addCamera(1, camera3);
-
- assertEquals(camera2, layer.getCamera(0));
- assertEquals(camera3, layer.getCamera(1));
- assertEquals(camera1, layer.getCamera(2));
- }
-
- public void testRemovingCameraByReferenceWorksWhenCameraIsFound() {
- PCamera camera = new PCamera();
- layer.addCamera(camera);
- layer.removeCamera(camera);
- assertEquals(0, layer.getCameraCount());
- }
-
- public void testRemovingCameraByIndexWorksWhenIndexIsValid() {
- PCamera camera = new PCamera();
- layer.addCamera(camera);
- layer.removeCamera(0);
- assertEquals(0, layer.getCameraCount());
- }
-
- public void testRemovingCameraNotAttachedToCameraShouldDoNothing() {
- PCamera strangerCamera = new PCamera();
- layer.removeCamera(strangerCamera);
- assertEquals(0, layer.getCameraCount());
- }
-
- public void testRepaintFromNotifiesCameras() {
- MockPCamera camera = new MockPCamera();
- layer.addCamera(camera);
-
- PBounds bounds = new PBounds(0, 0, 100, 100);
- layer.repaintFrom(bounds, layer);
-
- assertEquals(1, camera.notifications.size());
-
- MockPCamera.Notification notification =
(MockPCamera.Notification)camera.notifications.get(0);
- assertEquals(layer, notification.layer);
- assertEquals(bounds, notification.bounds);
- }
-
- class MockPCamera extends PCamera {
- class Notification {
- String type;
- PBounds bounds;
- //this should really be PLayer
- PNode layer;
-
- Notification(String type, PBounds bounds, PNode layer) {
- this.bounds = bounds;
- this.layer = layer;
- this.type = type;
- }
- }
-
- List notifications = new ArrayList();
-
- public void repaintFromLayer(PBounds bounds, PLayer layer) {
- notifications.add(new Notification("repaintFromLayer",
bounds, layer));
- super.repaintFromLayer(bounds, layer);
- }
- }
-}
+ private PLayer layer;
+
+ public void setUp() {
+ layer = new PLayer();
+ }
+
+ public void testLayerHasEmptyCamerasCollectionByDefault() {
+ Collection cameras = layer.getCamerasReference();
+ assertNotNull(cameras);
+ assertTrue(cameras.isEmpty());
+ assertEquals(0, layer.getCameraCount());
+ }
+
+ public void
testGetCameraByIndexThrowsIndexOutOfBoundsExceptionWhenOutOfBounds() {
+ PCamera camera = new PCamera();
+ layer.addCamera(camera);
+ try {
+ layer.getCamera(-1);
+ fail("Exception should have been thrown");
+ }
+ catch (IndexOutOfBoundsException e) {
+ // expected;
+ }
+
+ try {
+ layer.getCamera(1);
+ fail("Exception should have been thrown");
+ }
+ catch (IndexOutOfBoundsException e) {
+ // expected;
+ }
+ }
+
+ public void testGetCameraReturnsCameraAtCorrectIndex() {
+ PCamera camera1 = new PCamera();
+ PCamera camera2 = new PCamera();
+ PCamera camera3 = new PCamera();
+
+ layer.addCamera(camera1);
+ layer.addCamera(camera2);
+ layer.addCamera(camera3);
+
+ assertEquals(camera1, layer.getCamera(0));
+ assertEquals(camera2, layer.getCamera(1));
+ assertEquals(camera3, layer.getCamera(2));
+ }
+
+ public void testAddCameraCorrectlyHandlesIndex() {
+ PCamera camera1 = new PCamera();
+ PCamera camera2 = new PCamera();
+ PCamera camera3 = new PCamera();
+
+ layer.addCamera(0, camera1);
+ layer.addCamera(0, camera2);
+ layer.addCamera(1, camera3);
+
+ assertEquals(camera2, layer.getCamera(0));
+ assertEquals(camera3, layer.getCamera(1));
+ assertEquals(camera1, layer.getCamera(2));
+ }
+
+ public void testRemovingCameraByReferenceWorksWhenCameraIsFound() {
+ PCamera camera = new PCamera();
+ layer.addCamera(camera);
+ layer.removeCamera(camera);
+ assertEquals(0, layer.getCameraCount());
+ }
+
+ public void testRemovingCameraByIndexWorksWhenIndexIsValid() {
+ PCamera camera = new PCamera();
+ layer.addCamera(camera);
+ layer.removeCamera(0);
+ assertEquals(0, layer.getCameraCount());
+ }
+
+ public void testRemovingCameraNotAttachedToCameraShouldDoNothing() {
+ PCamera strangerCamera = new PCamera();
+ layer.removeCamera(strangerCamera);
+ assertEquals(0, layer.getCameraCount());
+ }
+
+ public void testRepaintFromNotifiesCameras() {
+ MockPCamera camera = new MockPCamera();
+ layer.addCamera(camera);
+
+ PBounds bounds = new PBounds(0, 0, 100, 100);
+ layer.repaintFrom(bounds, layer);
+
+ assertEquals(1, camera.notifications.size());
+
+ MockPCamera.Notification notification = (MockPCamera.Notification)
camera.notifications.get(0);
+ assertEquals(layer, notification.layer);
+ assertEquals(bounds, notification.bounds);
+ }
+
+ static class MockPCamera extends PCamera {
+ List notifications = new ArrayList();
+
+ public void repaintFromLayer(PBounds bounds, PLayer layer) {
+ notifications.add(new Notification("repaintFromLayer", bounds,
layer));
+ super.repaintFromLayer(bounds, layer);
+ }
+
+ class Notification {
+ String type;
+ PBounds bounds;
+ // this should really be PLayer
+ PNode layer;
+
+ Notification(String type, PBounds bounds, PNode layer) {
+ this.bounds = bounds;
+ this.layer = layer;
+ this.type = type;
+ }
+ }
+
+ }
+}
=======================================
---
/piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/PNodeTest.java
Sat Jul 25 17:43:19 2009
+++
/piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/PNodeTest.java
Mon Jul 27 13:14:54 2009
@@ -42,7 +42,6 @@
import java.util.Enumeration;
import java.util.Iterator;
import java.util.ListIterator;
-import java.util.regex.Pattern;
import javax.swing.text.MutableAttributeSet;
=======================================
---
/piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/PRootTest.java
Tue Jul 14 11:58:27 2009
+++
/piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/PRootTest.java
Mon Jul 27 13:14:54 2009
@@ -114,7 +114,7 @@
assertTrue(activity.isActivityFished());
}
- private final class MockInputSource implements PRoot.InputSource {
+ private static final class MockInputSource implements
PRoot.InputSource {
private int processInputCalls;
public int getProcessInputCalls() {
@@ -126,7 +126,7 @@
}
}
- private final class MockPActivity extends PActivity {
+ private static final class MockPActivity extends PActivity {
private boolean activityStarted;
private boolean activityFinished;
--~--~---------~--~----~------------~-------~--~----~
Piccolo2D Developers Group: http://groups.google.com/group/piccolo2d-dev?hl=en
-~----------~----~----~----~------~----~------~--~---