Revision: 1155
Author: atdixon
Date: Sun Nov 13 11:00:58 2011
Log: Issue 227; fixed bounds issue when replacing PCamera on a
PCanvas; added relevant tests
http://code.google.com/p/piccolo2d/source/detail?r=1155
Modified:
/piccolo2d.java/branches/release-1.3.1/core/src/main/java/edu/umd/cs/piccolo/PCanvas.java
/piccolo2d.java/branches/release-1.3.1/core/src/test/java/edu/umd/cs/piccolo/PCanvasTest.java
=======================================
---
/piccolo2d.java/branches/release-1.3.1/core/src/main/java/edu/umd/cs/piccolo/PCanvas.java
Tue Mar 15 15:28:41 2011
+++
/piccolo2d.java/branches/release-1.3.1/core/src/main/java/edu/umd/cs/piccolo/PCanvas.java
Sun Nov 13 11:00:58 2011
@@ -28,6 +28,19 @@
*/
package edu.umd.cs.piccolo;
+import edu.umd.cs.piccolo.event.PInputEventListener;
+import edu.umd.cs.piccolo.event.PPanEventHandler;
+import edu.umd.cs.piccolo.event.PZoomEventHandler;
+import edu.umd.cs.piccolo.util.PBounds;
+import edu.umd.cs.piccolo.util.PDebug;
+import edu.umd.cs.piccolo.util.PPaintContext;
+import edu.umd.cs.piccolo.util.PStack;
+import edu.umd.cs.piccolo.util.PUtil;
+
+import javax.swing.FocusManager;
+import javax.swing.JComponent;
+import javax.swing.RepaintManager;
+import javax.swing.Timer;
import java.awt.Color;
import java.awt.Component;
import java.awt.Cursor;
@@ -46,20 +59,6 @@
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;
-import javax.swing.FocusManager;
-import javax.swing.JComponent;
-import javax.swing.RepaintManager;
-import javax.swing.Timer;
-
-import edu.umd.cs.piccolo.event.PInputEventListener;
-import edu.umd.cs.piccolo.event.PPanEventHandler;
-import edu.umd.cs.piccolo.event.PZoomEventHandler;
-import edu.umd.cs.piccolo.util.PBounds;
-import edu.umd.cs.piccolo.util.PDebug;
-import edu.umd.cs.piccolo.util.PPaintContext;
-import edu.umd.cs.piccolo.util.PStack;
-import edu.umd.cs.piccolo.util.PUtil;
-
/**
* <b>PCanvas</b> is a simple Swing component that can be used to embed
Piccolo
* into a Java Swing application. Canvases view the Piccolo scene graph
through
@@ -286,7 +285,7 @@
if (camera != null) {
camera.setComponent(this);
- camera.setBounds(getBounds());
+ camera.setBounds(0, 0, getWidth(), getHeight());
}
}
=======================================
---
/piccolo2d.java/branches/release-1.3.1/core/src/test/java/edu/umd/cs/piccolo/PCanvasTest.java
Tue Mar 15 15:28:41 2011
+++
/piccolo2d.java/branches/release-1.3.1/core/src/test/java/edu/umd/cs/piccolo/PCanvasTest.java
Sun Nov 13 11:00:58 2011
@@ -28,12 +28,13 @@
*/
package edu.umd.cs.piccolo;
-import java.awt.Cursor;
-
-import junit.framework.TestCase;
import edu.umd.cs.piccolo.event.PInputEventListener;
import edu.umd.cs.piccolo.util.PBounds;
import edu.umd.cs.piccolo.util.PPaintContext;
+import edu.umd.cs.piccolo.util.PUtil;
+import junit.framework.TestCase;
+
+import java.awt.Cursor;
/**
* Unit test for PCanvas.
@@ -127,6 +128,25 @@
canvas.setBounds(0, 0, 100, 100);
assertEquals(new PBounds(0, 0, 100, 100),
canvas.getCamera().getBounds());
}
+
+ public void testSettingCanvasBoundsNotAtOrigin() {
+ canvas.setBounds(50, 50, 100, 100);
+ assertEquals(new PBounds(0, 0, 100, 100),
canvas.getCamera().getBounds()); // camera should remain at (0,0)
+ }
+
+ public void testSettingCameraAffectsCameraBounds() {
+ canvas.setBounds(0, 0, 100, 100);
+ PCamera camera = PUtil.createBasicScenegraph();
+ canvas.setCamera(camera);
+ assertEquals(new PBounds(0, 0, 100, 100),
canvas.getCamera().getBounds());
+ }
+
+ public void testSettingCameraOnCanvasNotAtOrigin() {
+ canvas.setBounds(50, 50, 100, 100);
+ PCamera camera = PUtil.createBasicScenegraph();
+ canvas.setCamera(camera);
+ assertEquals(new PBounds(0, 0, 100, 100),
canvas.getCamera().getBounds()); // camera should remain at (0,0)
+ }
public void testAddInputEventListenersIsHonoured() {
canvas.addInputEventListener(mockListener);
--
Piccolo2D Developers Group: http://groups.google.com/group/piccolo2d-dev?hl=en