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

Reply via email to