[piccolo2d-dev] [piccolo2d] r956 committed - Adding stragler Measurements class

2010-01-26 Thread piccolo2d

Revision: 956
Author: allain.lalonde
Date: Tue Jan 26 07:04:07 2010
Log: Adding stragler Measurements class
http://code.google.com/p/piccolo2d/source/detail?r=956

Added:
  
/piccolo2d.java/branches/2.0-spike/core/src/test/java/org/piccolo2d/Measurements.java

Modified:
  
/piccolo2d.java/branches/2.0-spike/parent/.settings/org.eclipse.jdt.core.prefs
  
/piccolo2d.java/branches/2.0-spike/swt/src/main/java/org/piccolo2d/swt/PSWTBoundsHandle.java
  
/piccolo2d.java/branches/2.0-spike/swt/src/main/java/org/piccolo2d/swt/PSWTText.java
  
/piccolo2d.java/branches/2.0-spike/swt/src/main/java/org/piccolo2d/swt/SWTShapeManager.java


===
--- /dev/null
+++  
/piccolo2d.java/branches/2.0-spike/core/src/test/java/org/piccolo2d/Measurements.java	 
Tue Jan 26 07:04:07 2010

@@ -0,0 +1,103 @@
+package org.piccolo2d;
+
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+public class Measurements {
+private MapString, ListLong measurements = new HashMapString,  
ListLong();

+
+public void time(String name, Runnable runnable) {
+if (!measurements.containsKey(name)) {
+measurements.put(name, new LinkedListLong());
+}
+
+long startTime = System.currentTimeMillis();
+runnable.run();
+long endTime = System.currentTimeMillis();
+
+measurements.get(name).add(endTime - startTime);
+}
+
+public void memory(String name, Runnable runnable) {
+if (!measurements.containsKey(name)) {
+measurements.put(name, new LinkedListLong());
+}
+
+Runtime.getRuntime().gc();
+final long startTotalMemory = Runtime.getRuntime().totalMemory();
+final long startFree = Runtime.getRuntime().freeMemory();
+
+runnable.run();
+
+Runtime.getRuntime().gc();
+final long endFree = Runtime.getRuntime().freeMemory();
+final long endTotal = Runtime.getRuntime().totalMemory();
+
+final long memoryUsed = ((endTotal - startTotalMemory + startFree  
- endFree) / 1024);

+measurements.get(name).add(memoryUsed);
+}
+
+public void writeLog() {
+System.out.println(name,average,min,max);
+for (EntryString, ListLong entry : measurements.entrySet()) {
+System.out.print('');
+System.out.print(entry.getKey());
+System.out.print('');
+System.out.print(, );
+System.out.print(calculateAverage(entry.getValue()));
+System.out.print(, );
+System.out.print(calculateMinimum(entry.getValue()));
+System.out.print(, );
+System.out.print(calculateMaximum(entry.getValue()));
+System.out.println();
+}
+
+System.out.println();
+System.out.println(Raw Data);
+System.out.println(name, run, value);
+for (EntryString, ListLong entry : measurements.entrySet()) {
+int runCount = 0;
+for (long value : entry.getValue()) {
+System.out.print('');
+System.out.print(entry.getKey());
+System.out.print('');
+System.out.print(, );
+System.out.print(++runCount);
+System.out.print(, );
+System.out.println(value);
+}
+}
+}
+
+private long calculateAverage(ListLong measurements) {
+long total = 0;
+
+for (Long measurement : measurements)
+total += measurement;
+
+return total / measurements.size();
+}
+
+private long calculateMinimum(ListLong measurements) {
+long min = measurements.get(0);
+
+for (Long measurement : measurements)
+if (min  measurement)
+min = measurement;
+
+return min;
+}
+
+private long calculateMaximum(ListLong measurements) {
+long max = measurements.get(0);
+
+for (Long measurement : measurements)
+if (max  measurement)
+max = measurement;
+
+return max;
+}
+}
===
---  
/piccolo2d.java/branches/2.0-spike/parent/.settings/org.eclipse.jdt.core.prefs	 
Wed Oct 28 07:58:59 2009
+++  
/piccolo2d.java/branches/2.0-spike/parent/.settings/org.eclipse.jdt.core.prefs	 
Tue Jan 26 07:04:07 2010

@@ -1,5 +1,12 @@
-#Wed Oct 28 10:17:01 EDT 2009
+#Tue Jan 26 09:12:03 EST 2010
 eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.source=1.4
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate

[piccolo2d-dev] [piccolo2d] r957 committed - Fixing some findbugs warnings

2010-01-26 Thread piccolo2d

Revision: 957
Author: allain.lalonde
Date: Tue Jan 26 07:51:15 2010
Log: Fixing some findbugs warnings
http://code.google.com/p/piccolo2d/source/detail?r=957

Modified:
  
/piccolo2d.java/branches/2.0-spike/core/src/test/java/org/piccolo2d/MockPCamera.java
  
/piccolo2d.java/branches/2.0-spike/core/src/test/java/org/piccolo2d/PCameraTest.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/examples/DynamicExample.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/examples/ExampleRunner.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/examples/GraphEditorExample.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/examples/GroupExample.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/examples/LayoutExample.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/examples/P3DRectExample.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/examples/PrintExample.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/examples/ScrollingExample.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/examples/ShadowExample.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/examples/StickyHandleLayerExample.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/examples/SwingLayoutExample.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/examples/fisheye/CalendarNode.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/examples/fisheye/DayNode.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/examples/fisheye/TabularFisheye.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/examples/fisheye/TabularFisheyeApplet.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/examples/fisheye/TabularFisheyeFrame.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/examples/pswing/MultiplePSwingCanvasesExample.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/examples/pswing/PSwingExample2.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/examples/pswing/PSwingExample3.java
  
/piccolo2d.java/branches/2.0-spike/examples/src/main/java/org/piccolo2d/tutorial/PiccoloPresentation.java
  
/piccolo2d.java/branches/2.0-spike/extras/src/main/java/org/piccolo2d/extras/event/PNotification.java
  
/piccolo2d.java/branches/2.0-spike/extras/src/main/java/org/piccolo2d/extras/event/PNotificationCenter.java
  
/piccolo2d.java/branches/2.0-spike/extras/src/test/java/org/piccolo2d/extras/PFrameTest.java
  
/piccolo2d.java/branches/2.0-spike/extras/src/test/java/org/piccolo2d/extras/handles/PHandleTest.java
  
/piccolo2d.java/branches/2.0-spike/extras/src/test/java/org/piccolo2d/extras/pswing/PSwingEventHandlerTest.java
  
/piccolo2d.java/branches/2.0-spike/extras/src/test/java/org/piccolo2d/extras/pswing/PSwingTest.java
  
/piccolo2d.java/branches/2.0-spike/swt/src/main/java/org/piccolo2d/swt/PSWTBoundsHandle.java
  
/piccolo2d.java/branches/2.0-spike/swt/src/main/java/org/piccolo2d/swt/PSWTCanvas.java
  
/piccolo2d.java/branches/2.0-spike/swt/src/main/java/org/piccolo2d/swt/PSWTKeyEvent.java
  
/piccolo2d.java/branches/2.0-spike/swt/src/main/java/org/piccolo2d/swt/PSWTMouseEvent.java
  
/piccolo2d.java/branches/2.0-spike/swt/src/main/java/org/piccolo2d/swt/PSWTSelectionEventHandler.java
  
/piccolo2d.java/branches/2.0-spike/swt/src/main/java/org/piccolo2d/swt/SWTGraphics2D.java
  
/piccolo2d.java/branches/2.0-spike/swt/src/test/java/org/piccolo2d/swt/PSWTImageTest.java
  
/piccolo2d.java/branches/2.0-spike/swt-examples/src/main/java/org/piccolo2d/swt/examples/SWTBenchTest.java


===
---  
/piccolo2d.java/branches/2.0-spike/core/src/test/java/org/piccolo2d/MockPCamera.java	 
Wed Jan 20 10:01:15 2010
+++  
/piccolo2d.java/branches/2.0-spike/core/src/test/java/org/piccolo2d/MockPCamera.java	 
Tue Jan 26 07:51:15 2010

@@ -31,9 +31,6 @@
 import java.util.ArrayList;
 import java.util.List;

-import org.piccolo2d.PCamera;
-import org.piccolo2d.PLayer;
-import org.piccolo2d.PNode;
 import org.piccolo2d.util.PBounds;


@@ -52,22 +49,25 @@
 static class Notification {
 private final String type;
 private final PBounds bounds;
-// this should really be PLayer
-private final PNode layer;
-
-private Notification(final String type, final PBounds bounds,  
final PNode layer) {

+private final PLayer layer;
+
+private Notification(final String type, final PBounds bounds,  
final PLayer layer) {

 this.bounds = bounds;
 this.layer = layer;
 this.type = type;
 }

-public PNode getLayer() {
+  

[piccolo2d-dev] Re: Release Piccolo2D.Java 1.3

2010-01-26 Thread cmal...@pixelzoom.com
 ---
  [ ] +1  I support this release
  [ ] +0
  [ ] -0
 [X] -1  I oppose this release because...
 

PSwing appears to have some new problems, and PhET (my client) relies
heavily on PSwing.  Specifically:

(1) Visibility issues; there are nodes that should be visible and are
not, and vice-versa.
(2) Bounds issues; computing PSwing offsets for the purposes of layout
is resulting in additional whitespace.

I've observed problem (1) in 3 applications, problem (2) in 1
application, on both Windows and Mac platforms.  I've been trying to
isolate the problems in small test applications, but have been
unsuccessful so far.   I'm going to continue with that effort a little
longer, then have a look at PSwing changes.

-- 
Piccolo2D Developers Group: http://groups.google.com/group/piccolo2d-dev?hl=en


Re: [piccolo2d-dev] Re: Release Piccolo2D.Java 1.3

2010-01-26 Thread Samuel Robert Reid
So far, I have tested 3 of my Piccolo applications, and found only 1 
problem in one of the 3 applications.  My problem is exhibited with the 
release candidate 1.3 rc1, but not with our previously used snapshot 
r390 (circa 9/9/2008), and it also appears to be related to PSwing; a 
panel with 2 radio buttons is shown in the scene graph, but is 
noninteractive.  This problem by itself wouldn't suggest to me just 
cause for opposing rc1, unless there is no application-side fix (rather 
than piccolo or pswing fix) that can resolve or workaround the problem 
(I don't yet know whether there is an application-side fix).  However, 
based on cmalley's remarks below, I don't think this version should be 
promoted to a release, and perhaps we'll be able to isolate and resolve 
my issue as we are working on the related pswing issues.


Sam Reid

On 1/26/2010 2:35 PM, cmal...@pixelzoom.com wrote:

---
  [ ] +1  I support this release
  [ ] +0
  [ ] -0
[X] -1  I oppose this release because...

 

PSwing appears to have some new problems, and PhET (my client) relies
heavily on PSwing.  Specifically:

(1) Visibility issues; there are nodes that should be visible and are
not, and vice-versa.
(2) Bounds issues; computing PSwing offsets for the purposes of layout
is resulting in additional whitespace.

I've observed problem (1) in 3 applications, problem (2) in 1
application, on both Windows and Mac platforms.  I've been trying to
isolate the problems in small test applications, but have been
unsuccessful so far.   I'm going to continue with that effort a little
longer, then have a look at PSwing changes.

   


--
Piccolo2D Developers Group: http://groups.google.com/group/piccolo2d-dev?hl=en