<AWT Dev> <Swing Dev>  Review request for 8023474: First mousepress doesn't start editing in JTree
anthony.petrov at oracle.com
Thu Aug 22 06:28:57 PDT 2013
A few comments:
1. The concept of validate roots has been extended to AWT components
since JDK 7. Therefore, I suggest to use the same logic regardless of
whether the editor is an instance of JComponent or not.
2. What you're trying to implement here, is actually called
revalidateSynchronously(), as opposed to the regular revalidate()
method, which in Swing is asynchronous. I believe that rS() might be
very much useful in many cases. Therefore, I suggest to add a
package-private java.awt.Component.revalidateSynchronously(), and call
it via the AWTAccessor from BasicTreeUI.java. Note that the current
Component.revalidate() should simply call the new rS() directly, and the
rS() may reuse the current implementation of the Component.revalidate().
> 2230 // The implementation of the method is copied from SwingUtilities
Copying an implementation is almost always wrong. It might be better to
access a method from another package via e.g. an accessor, or
reflection, or otherwise find a way to share this code rather than copy
it. However, I think you won't need this code anyway if we implement the
suggestion #2 above.
4. Is there a similar problem with JTable custom editors? What else
Swing components allow for editors?
On 08/22/13 15:08, dmitry markov wrote:
> Could you review the fix, please?
> bug: http://bugs.sun.com/view_bug.do?bug_id=8023474
> webrev: http://cr.openjdk.java.net/~dmarkov/8023474/webrev.00/
> The method BasicTreeUI.startEditing() should find the first valid root
> for the editingComponent and call validateUnconditionally() for it
> instead of editingComponent.revalidate() invocation.
More information about the awt-dev