diff --git a/examples/src/main/java/org/piccolo2d/examples/ActivityMemoryLeakBugExample.java b/examples/src/main/java/org/piccolo2d/examples/ActivityMemoryLeakBugExample.java
deleted file mode 100644
index 32957df..0000000
--- a/examples/src/main/java/org/piccolo2d/examples/ActivityMemoryLeakBugExample.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (c) 2008-2011, Piccolo2D project, http://piccolo2d.org
- * Copyright (c) 1998-2008, University of Maryland
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list of conditions
- * and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions
- * and the following disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * None of the name of the University of Maryland, the name of the Piccolo2D project, or the names of its
- * contributors may be used to endorse or promote products derived from this software without specific
- * prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package org.piccolo2d.examples;
-
-import org.piccolo2d.PLayer;
-import org.piccolo2d.PNode;
-import org.piccolo2d.activities.PActivity;
-import org.piccolo2d.extras.PFrame;
-import org.piccolo2d.nodes.PPath;
-
-import javax.swing.SwingUtilities;
-import javax.swing.Timer;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.lang.ref.WeakReference;
-
-/**
- * Example that demonstrates the memory leak in Issue 185.
- *
- * Memory leak - PActivityScheduler keeps processed activities in reference
- * http://code.google.com/p/piccolo2d/issues/detail?id=185
- *
- */
-public class ActivityMemoryLeakBugExample extends PFrame {
-
- public static void main(String[] args) {
- new ActivityMemoryLeakBugExample();
- }
-
- /** {@inheritDoc} */
- public void initialize() {
- final PLayer layer = getCanvas().getLayer();
- // Create the node that we expect to get garbage collected.
- PNode node = PPath.createEllipse(20, 20, 20, 20);
- layer.addChild(node);
- // Create a WeakReference to the node so we can detect if it is gc'd.
- final WeakReference ref = new WeakReference(layer.getChild(0));
- // Create and execute an activity.
- ((PNode) ref.get()).animateToPositionScaleRotation(0, 0, 5.0, 0, 1000);
- // Create a Timer that will start after the activity and repeat.
- new Timer(2000, new ActionListener() {
- public void actionPerformed(final ActionEvent e) {
- // Remove our reference to the node.
- layer.removeAllChildren();
- // Force garbage collection.
- System.gc();
- // This should print null if the node was successfully gc'd. (IT never does.)
- System.out.println(ref.get());
- // This prints 0 as expected.
- System.out.println(layer.getRoot().getActivityScheduler().getActivitiesReference().size());
- }
- }).start();
- // This will cause any previous activity references to clear.
- forceCleanupOfPriorActivities(layer);
- }
-
- private void forceCleanupOfPriorActivities(final PLayer layer) {
- new Thread() {
- /** {@inheritDoc} */
- public void run() {
- // Wait 6 seconds before doing the cleanup so the bug can be witnessed.
- try {
- Thread.sleep(6000);
- }
- catch (InterruptedException e) {
- // empty
- }
-
- SwingUtilities.invokeLater(new Runnable() {
- public void run() {
- PActivity a = new PActivity(-1) {
- protected void activityStep(final long elapsedTime) {
- System.out.println("cleanup activity");
- terminate();
- }
- };
- layer.getRoot().addActivity(a);
- }
- });
- }
- }.start();
- }
-}
diff --git a/examples/src/main/java/org/piccolo2d/examples/FrameCanvasSizeBugExample.java b/examples/src/main/java/org/piccolo2d/examples/FrameCanvasSizeBugExample.java
deleted file mode 100644
index 9426089..0000000
--- a/examples/src/main/java/org/piccolo2d/examples/FrameCanvasSizeBugExample.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 2008-2011, Piccolo2D project, http://piccolo2d.org
- * Copyright (c) 1998-2008, University of Maryland
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list of conditions
- * and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions
- * and the following disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * None of the name of the University of Maryland, the name of the Piccolo2D project, or the names of its
- * contributors may be used to endorse or promote products derived from this software without specific
- * prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package org.piccolo2d.examples;
-
-import java.awt.Color;
-
-import org.piccolo2d.PCanvas;
-import org.piccolo2d.extras.PFrame;
-import org.piccolo2d.nodes.PText;
-
-
-
-/**
- * This example demonstrates a bug with setting the size
- * of a PFrame. See http://code.google.com/p/piccolo2d/issues/detail?id=141.
- */
-public class FrameCanvasSizeBugExample
- extends PFrame {
-
- /** Default serial version UID. */
- private static final long serialVersionUID = 1L;
-
-
- /**
- * Create a new frame canvas size bug example.
- */
- public FrameCanvasSizeBugExample() {
- this(null);
- }
-
- /**
- * Create a new frame canvas size bug example for the specified canvas.
- *
- * @param canvas canvas for this frame canvas size bug example
- */
- public FrameCanvasSizeBugExample(final PCanvas canvas) {
- super("FrameCanvasSizeBugExample", false, canvas);
- //setSize(410, 410);
- //getCanvas().setSize(410, 410); does not help
- }
-
-
- /** {@inheritDoc} */
- public void initialize() {
- PText label = new PText("Note white at border S and E\nIt goes away when frame is resized");
- label.setOffset(200, 340);
- getCanvas().getLayer().addChild(label);
- getCanvas().setBackground(Color.PINK);
- getCanvas().setOpaque(true);
- setSize(410, 410);
- //getCanvas().setSize(410, 410); does not help
- }
-
-
- /**
- * Main.
- *
- * @param args command line arguments, ignored
- */
- public static void main(final String[] args) {
- new FrameCanvasSizeBugExample();
- }
-}
diff --git a/examples/src/main/java/org/piccolo2d/examples/issues/ActivityMemoryLeakBugExample.java b/examples/src/main/java/org/piccolo2d/examples/issues/ActivityMemoryLeakBugExample.java
new file mode 100644
index 0000000..32957df
--- /dev/null
+++ b/examples/src/main/java/org/piccolo2d/examples/issues/ActivityMemoryLeakBugExample.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 2008-2011, Piccolo2D project, http://piccolo2d.org
+ * Copyright (c) 1998-2008, University of Maryland
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are permitted provided
+ * that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this list of conditions
+ * and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions
+ * and the following disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * None of the name of the University of Maryland, the name of the Piccolo2D project, or the names of its
+ * contributors may be used to endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.piccolo2d.examples;
+
+import org.piccolo2d.PLayer;
+import org.piccolo2d.PNode;
+import org.piccolo2d.activities.PActivity;
+import org.piccolo2d.extras.PFrame;
+import org.piccolo2d.nodes.PPath;
+
+import javax.swing.SwingUtilities;
+import javax.swing.Timer;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.lang.ref.WeakReference;
+
+/**
+ * Example that demonstrates the memory leak in Issue 185.
+ *
+ * Memory leak - PActivityScheduler keeps processed activities in reference
+ * http://code.google.com/p/piccolo2d/issues/detail?id=185
+ *
+ */
+public class ActivityMemoryLeakBugExample extends PFrame {
+
+ public static void main(String[] args) {
+ new ActivityMemoryLeakBugExample();
+ }
+
+ /** {@inheritDoc} */
+ public void initialize() {
+ final PLayer layer = getCanvas().getLayer();
+ // Create the node that we expect to get garbage collected.
+ PNode node = PPath.createEllipse(20, 20, 20, 20);
+ layer.addChild(node);
+ // Create a WeakReference to the node so we can detect if it is gc'd.
+ final WeakReference ref = new WeakReference(layer.getChild(0));
+ // Create and execute an activity.
+ ((PNode) ref.get()).animateToPositionScaleRotation(0, 0, 5.0, 0, 1000);
+ // Create a Timer that will start after the activity and repeat.
+ new Timer(2000, new ActionListener() {
+ public void actionPerformed(final ActionEvent e) {
+ // Remove our reference to the node.
+ layer.removeAllChildren();
+ // Force garbage collection.
+ System.gc();
+ // This should print null if the node was successfully gc'd. (IT never does.)
+ System.out.println(ref.get());
+ // This prints 0 as expected.
+ System.out.println(layer.getRoot().getActivityScheduler().getActivitiesReference().size());
+ }
+ }).start();
+ // This will cause any previous activity references to clear.
+ forceCleanupOfPriorActivities(layer);
+ }
+
+ private void forceCleanupOfPriorActivities(final PLayer layer) {
+ new Thread() {
+ /** {@inheritDoc} */
+ public void run() {
+ // Wait 6 seconds before doing the cleanup so the bug can be witnessed.
+ try {
+ Thread.sleep(6000);
+ }
+ catch (InterruptedException e) {
+ // empty
+ }
+
+ SwingUtilities.invokeLater(new Runnable() {
+ public void run() {
+ PActivity a = new PActivity(-1) {
+ protected void activityStep(final long elapsedTime) {
+ System.out.println("cleanup activity");
+ terminate();
+ }
+ };
+ layer.getRoot().addActivity(a);
+ }
+ });
+ }
+ }.start();
+ }
+}
diff --git a/examples/src/main/java/org/piccolo2d/examples/issues/FrameCanvasSizeBugExample.java b/examples/src/main/java/org/piccolo2d/examples/issues/FrameCanvasSizeBugExample.java
new file mode 100644
index 0000000..9426089
--- /dev/null
+++ b/examples/src/main/java/org/piccolo2d/examples/issues/FrameCanvasSizeBugExample.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 2008-2011, Piccolo2D project, http://piccolo2d.org
+ * Copyright (c) 1998-2008, University of Maryland
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are permitted provided
+ * that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this list of conditions
+ * and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions
+ * and the following disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * None of the name of the University of Maryland, the name of the Piccolo2D project, or the names of its
+ * contributors may be used to endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.piccolo2d.examples;
+
+import java.awt.Color;
+
+import org.piccolo2d.PCanvas;
+import org.piccolo2d.extras.PFrame;
+import org.piccolo2d.nodes.PText;
+
+
+
+/**
+ * This example demonstrates a bug with setting the size
+ * of a PFrame. See http://code.google.com/p/piccolo2d/issues/detail?id=141.
+ */
+public class FrameCanvasSizeBugExample
+ extends PFrame {
+
+ /** Default serial version UID. */
+ private static final long serialVersionUID = 1L;
+
+
+ /**
+ * Create a new frame canvas size bug example.
+ */
+ public FrameCanvasSizeBugExample() {
+ this(null);
+ }
+
+ /**
+ * Create a new frame canvas size bug example for the specified canvas.
+ *
+ * @param canvas canvas for this frame canvas size bug example
+ */
+ public FrameCanvasSizeBugExample(final PCanvas canvas) {
+ super("FrameCanvasSizeBugExample", false, canvas);
+ //setSize(410, 410);
+ //getCanvas().setSize(410, 410); does not help
+ }
+
+
+ /** {@inheritDoc} */
+ public void initialize() {
+ PText label = new PText("Note white at border S and E\nIt goes away when frame is resized");
+ label.setOffset(200, 340);
+ getCanvas().getLayer().addChild(label);
+ getCanvas().setBackground(Color.PINK);
+ getCanvas().setOpaque(true);
+ setSize(410, 410);
+ //getCanvas().setSize(410, 410); does not help
+ }
+
+
+ /**
+ * Main.
+ *
+ * @param args command line arguments, ignored
+ */
+ public static void main(final String[] args) {
+ new FrameCanvasSizeBugExample();
+ }
+}