Revision: 1156
Author: atdixon
Date: Sun Nov 13 11:11:49 2011
Log: Issue 227; (trunk) fixed bounds issue when replacing PCamera on a
PCanvas; added relevant tests
http://code.google.com/p/piccolo2d/source/detail?r=1156
Modified:
/piccolo2d.java/trunk/core/src/main/java/org/piccolo2d/PCanvas.java
/piccolo2d.java/trunk/core/src/test/java/org/piccolo2d/PCanvasTest.java
=======================================
--- /piccolo2d.java/trunk/core/src/main/java/org/piccolo2d/PCanvas.java Tue
Mar 15 15:23:53 2011
+++ /piccolo2d.java/trunk/core/src/main/java/org/piccolo2d/PCanvas.java Sun
Nov 13 11:11:49 2011
@@ -264,7 +264,7 @@
if (camera != null) {
camera.setComponent(this);
- camera.setBounds(getBounds());
+ camera.setBounds(0, 0, getWidth(), getHeight());
}
}
=======================================
--- /piccolo2d.java/trunk/core/src/test/java/org/piccolo2d/PCanvasTest.java
Tue Mar 15 15:23:53 2011
+++ /piccolo2d.java/trunk/core/src/test/java/org/piccolo2d/PCanvasTest.java
Sun Nov 13 11:11:49 2011
@@ -30,10 +30,10 @@
import java.awt.Cursor;
-import org.piccolo2d.PCanvas;
import org.piccolo2d.event.PInputEventListener;
import org.piccolo2d.util.PBounds;
import org.piccolo2d.util.PPaintContext;
+import org.piccolo2d.util.PUtil;
import junit.framework.TestCase;
@@ -118,6 +118,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