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

2010-02-01 Thread cmal...@pixelzoom.com
An update on where we're at with the PSwing issues...

Issue 158 was resolved by Allain last week, and fixed a couple of our
problems.

Issue 159 was opened a few minutes ago, and is related to PSwing
transform/picking problems.

I am still investigating one additional issue, where a PSwing
Component is receiving an endless series of events that toggle its
visibility on and off.  As soon as I isolate, I'll create an issue.

That summarizes all of the problems we've encountered with 1.3-rc1.

Chris

On Jan 28, 12:29 pm, Michael Heuer heue...@gmail.com wrote:
 The following people voted on release 1.3rc1:

 Michael Heuer +1
 Allain Lalonde +1
 Chris Malley -1

 The vote failed since it did not receive at least three +1 binding
 votes and no -1 binding votes.

 New issues related to PSwing were discovered and are being addressed.
 Another release candidate (1.3rc2) will be created when these issues
 are closed and validated.

 On behalf of the Piccolo2D developers,

    michael

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


[piccolo2d-dev] Re: Issue 159 in piccolo2d: events not delivered to PSwing Components for some transforms

2010-02-01 Thread piccolo2d


Comment #2 on issue 159 by allain.lalonde: events not delivered to PSwing  
Components for some transforms

http://code.google.com/p/piccolo2d/issues/detail?id=159

I've narrowed it down to the code in PNode.globalToLocal. It seems to be  
lossy. I'll

try changing it to compute a globalTransform then inverting once.

--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings

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


[piccolo2d-dev] [piccolo2d] r963 committed - Fixing error with rounding error bug when calculating inverseTransform...

2010-02-01 Thread piccolo2d

Revision: 963
Author: allain.lalonde
Date: Mon Feb  1 11:30:02 2010
Log: Fixing error with rounding error bug when calculating inverseTransform  
repeatedly during globalToLocal.


Fixes Issue 159
http://code.google.com/p/piccolo2d/source/detail?r=963

Modified:
 /piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PNode.java

===
--- /piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PNode.java	 
Mon Jan 18 16:07:38 2010
+++ /piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PNode.java	 
Mon Feb  1 11:30:02 2010

@@ -95,3663 +95,3902 @@
  * @author Jesse Grosjean
  */
 public class PNode implements Cloneable, Serializable, Printable {
-/**
- * The minimum difference in transparency required before the  
transparency
- * is allowed to change. Done for efficiency reasons. I doubt very  
much that

- * the human eye could tell the difference between 0.01 and 0.02
- * transparency.
- */
-private static final float TRANSPARENCY_RESOLUTION = 0.01f;
-
-/**
- * Allows for future serialization code to understand versioned binary
- * formats.
- */
-private static final long serialVersionUID = 1L;
-
-/**
- * The property name that identifies a change in this node's client
- * propertie (see {...@link #getClientProperty getClientProperty}). In an
- * property change event the new value will be a reference to the map  
of

- * client properties but old value will always be null.
- */
-public static final String PROPERTY_CLIENT_PROPERTIES  
= clientProperties;

-
-/**
- * The property code that identifies a change in this node's client
- * propertie (see {...@link #getClientProperty getClientProperty}). In an
- * property change event the new value will be a reference to the map  
of

- * client properties but old value will always be null.
- */
-public static final int PROPERTY_CODE_CLIENT_PROPERTIES = 1  0;
-
-/**
- * The property name that identifies a change of this node's bounds  
(see

- * {...@link #getBounds getBounds}, {...@link #getBoundsReference
- * getBoundsReference}). In any property change event the new value  
will be
- * a reference to this node's bounds, but old value will always be  
null.

- */
-public static final String PROPERTY_BOUNDS = bounds;
-
-/**
- * The property code that identifies a change of this node's bounds  
(see

- * {...@link #getBounds getBounds}, {...@link #getBoundsReference
- * getBoundsReference}). In any property change event the new value  
will be
- * a reference to this node's bounds, but old value will always be  
null.

- */
-public static final int PROPERTY_CODE_BOUNDS = 1  1;
-
-/**
- * The property name that identifies a change of this node's full  
bounds

- * (see {...@link #getFullBounds getFullBounds},
- * {...@link #getFullBoundsReference getFullBoundsReference}). In any  
property
- * change event the new value will be a reference to this node's full  
bounds

- * cache, but old value will always be null.
- */
-public static final String PROPERTY_FULL_BOUNDS = fullBounds;
-
-/**
- * The property code that identifies a change of this node's full  
bounds

- * (see {...@link #getFullBounds getFullBounds},
- * {...@link #getFullBoundsReference getFullBoundsReference}). In any  
property
- * change event the new value will be a reference to this node's full  
bounds

- * cache, but old value will always be null.
- */
-public static final int PROPERTY_CODE_FULL_BOUNDS = 1  2;
-
-/**
- * The property name that identifies a change of this node's transform  
(see

- * {...@link #getTransform getTransform}, {...@link #getTransformReference
- * getTransformReference}). In any property change event the new value  
will
- * be a reference to this node's transform, but old value will always  
be

- * null.
- */
-public static final String PROPERTY_TRANSFORM = transform;
-
-/**
- * The property code that identifies a change of this node's transform  
(see

- * {...@link #getTransform getTransform}, {...@link #getTransformReference
- * getTransformReference}). In any property change event the new value  
will
- * be a reference to this node's transform, but old value will always  
be

- * null.
- */
-public static final int PROPERTY_CODE_TRANSFORM = 1  3;
-
-/**
- * The property name that identifies a change of this node's  
visibility (see
- * {...@link #getVisible getVisible}). Both old value and new value will  
be

- * null in any property change event.
- */
-public static final String PROPERTY_VISIBLE = visible;
-
-/**
- * The property code that identifies a change of this node's  
visibility (see
- * {...@link #getVisible getVisible}). Both old value and new value will  
be

- * null in 

[piccolo2d-dev] Re: Issue 159 in piccolo2d: events not delivered to PSwing Components for some transforms

2010-02-01 Thread piccolo2d

Updates:
Status: Fixed
Mergedinto: -

Comment #3 on issue 159 by allain.lalonde: events not delivered to PSwing  
Components for some transforms

http://code.google.com/p/piccolo2d/issues/detail?id=159

This issue was closed by revision r963.

--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings

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


[piccolo2d-dev] Re: Issue 159 in piccolo2d: events not delivered to PSwing Components for some transforms

2010-02-01 Thread piccolo2d


Comment #4 on issue 159 by cmal...@pixelzoom.com: events not delivered to  
PSwing Components for some transforms

http://code.google.com/p/piccolo2d/issues/detail?id=159

This issue appears to be fixed.

Caveat: r963 diff shows that most of PNode source file was modified.  In a  
separate
email, Allain noted that the fix was in globalToLocal(final Point2D  
globalPoint) and
computeGlobalTransform(final PNode node).  So I patched PNode 1.3-rc1 with  
just those
methods, and it tests OK.  I did NOT test the entire new version of PNode,  
trying to
keep my test environment as true to rc1 as possible so that I don't pull in  
new problems.


--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings

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


[piccolo2d-dev] Re: Issue 159 in piccolo2d: events not delivered to PSwing Components for some transforms

2010-02-01 Thread piccolo2d

Updates:
Status: Verified

Comment #5 on issue 159 by cmal...@pixelzoom.com: events not delivered to  
PSwing Components for some transforms

http://code.google.com/p/piccolo2d/issues/detail?id=159

(No comment was entered for this change.)

--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings

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


[piccolo2d-dev] Re: r962 committed - Made PSwing.setVisible lazily call its component's setVisible method d...

2010-02-01 Thread cmal...@pixelzoom.com
I can't seem to reproduce this in a simple example.  But in one of our
applications, I see an endless series of calls to the
ComponentListener that is added in PSwing's constructor.  The calls
alternate between componentShown and componentHidden.  And there is
nothing in the application code that appears to be triggering this, it
keeps feeding back through PSwing.setVisible.

So rather than continue to chase my tail on this, I'd like to discuss
the motivation for adding this ComponentListener.  What purpose is it
serving? It seems unnecessary.  And undesirable - should client code
be able to call setVisible on a Component?  And both this
ComponentListener and the override of PSwing.setVisibile seem a little
dangerous, given how the entire Swing approach works by parenting
JComponents to PSwingCanvas.ChildWrapper.

Also note that an additional ComponentListener is added in
PSwing.initializeComponent, could this be creating problems, depending
on the call order? It seems like there is component initialization
going on in the constructor that should really be in
initializeComponent.

Thoughts anyone?...

Chris

On Jan 28, 3:46 pm, cmal...@pixelzoom.com cmal...@pixelzoom.com
wrote:
 Thanks for being so responsive Allain!

 Unfortunately this change did not correct the problem.  And it's
 actually unnecessary, since JComponent.setVisible is already a no-op
 if the visibility isn't changing.

 To clarify... I'm not seeing a stack overflow, but a continuous
 toggling between visible and invisible.   And I'm still trying to
 reproduce the problem in a simple example.

 Chris

 On Jan 28, 8:05 am, piccol...@googlecode.com wrote: Revision: 962
  Author: allain.lalonde
  Date: Thu Jan 28 07:04:37 2010
  Log: Made PSwing.setVisible lazily call its component's setVisible method  
  depending on its current visibility. This should stop the stack overflow  
  being experienced by Chris Malley. Since I have been unable to reproduce  
  it, I can't test it.http://code.google.com/p/piccolo2d/source/detail?r=962

 [snip]

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


Re: [piccolo2d-dev] Re: r962 committed - Made PSwing.setVisible lazily call its component's setVisible method d...

2010-02-01 Thread Allain Lalonde
Reason for adding the component listener in PSwing's constructor was that
during the creation of unit tests for it, a bizarre situation became
obviously possible.

Invisible PSwing node and visible JComponent or Visible PSwing and invisible
JComponent.

Rather than try to parse out the behaviour in those gray areas, I figured
the best bet would be to make hiding/showing one, hide/show the other.

I figured that some optimizations could be done at the JComponent level if
it were aware that it were invisible (like unloading an image from memory,
etc).

If it's causing more problems than it's fixing I'm 100% for removing it.

Try commenting out the ComponentListener registration in the constructor and
see if the problem goes away.

Thoughts?

On 1 February 2010 16:24, cmal...@pixelzoom.com cmal...@pixelzoom.comwrote:

 I can't seem to reproduce this in a simple example.  But in one of our
 applications, I see an endless series of calls to the
 ComponentListener that is added in PSwing's constructor.  The calls
 alternate between componentShown and componentHidden.  And there is
 nothing in the application code that appears to be triggering this, it
 keeps feeding back through PSwing.setVisible.

 So rather than continue to chase my tail on this, I'd like to discuss
 the motivation for adding this ComponentListener.  What purpose is it
 serving? It seems unnecessary.  And undesirable - should client code
 be able to call setVisible on a Component?  And both this
 ComponentListener and the override of PSwing.setVisibile seem a little
 dangerous, given how the entire Swing approach works by parenting
 JComponents to PSwingCanvas.ChildWrapper.

 Also note that an additional ComponentListener is added in
 PSwing.initializeComponent, could this be creating problems, depending
 on the call order? It seems like there is component initialization
 going on in the constructor that should really be in
 initializeComponent.

 Thoughts anyone?...

 Chris

 On Jan 28, 3:46 pm, cmal...@pixelzoom.com cmal...@pixelzoom.com
 wrote:
  Thanks for being so responsive Allain!
 
  Unfortunately this change did not correct the problem.  And it's
  actually unnecessary, since JComponent.setVisible is already a no-op
  if the visibility isn't changing.
 
  To clarify... I'm not seeing a stack overflow, but a continuous
  toggling between visible and invisible.   And I'm still trying to
  reproduce the problem in a simple example.
 
  Chris
 
  On Jan 28, 8:05 am, piccol...@googlecode.com wrote: Revision: 962
   Author: allain.lalonde
   Date: Thu Jan 28 07:04:37 2010
   Log: Made PSwing.setVisible lazily call its component's setVisible
 method
   depending on its current visibility. This should stop the stack
 overflow
   being experienced by Chris Malley. Since I have been unable to
 reproduce
   it, I can't test it.
 http://code.google.com/p/piccolo2d/source/detail?r=962
 
  [snip]

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


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