On Tue, 8 Mar 2022 10:52:44 GMT, Manukumar V S <m...@openjdk.org> wrote:

> Create a regression test for the JTree usecase of 
> [JDK-4618767](https://bugs.openjdk.java.net/browse/JDK-4618767)
> Context: Migrating tests from a closed tonga based test suite to open 
> regression based one.
> 
> Issue identified in 
> [JDK-4618767](https://bugs.openjdk.java.net/browse/JDK-4618767):
> Typing a letter while a JTree has focus now makes the selection jump to the 
> first/next node/item whose text starts with that letter even though that 
> letter is accompanied by modifier keys such as ALT or CTRL.
> 
> Fix:
> Only enable JTree letter navigation when the user doesn't press any modifier 
> keys such as ALT or CTRL.
> 
> Testing:
> Java 1.4.0 -> Test Failed.
> $ ./j2sdk1.4.0/bin/java JTreeOld
> LookAndFeel: javax.swing.plaf.metal.MetalLookAndFeel
> OS = windows nt (unknown)
> java.lang.RuntimeException: Test Failed, expected colors, but got food
>         at JTreeOld.doTest(JTreeOld.java:166)
>         at JTreeOld.main(JTreeOld.java:32)
> Exception in thread "main"
> 
> Java 1.4.1 -> Test Passed.
> $ ./j2sdk1.4.1/bin/java JTreeOld
> LookAndFeel: javax.swing.plaf.metal.MetalLookAndFeel
> OS = windows nt (unknown)
> Test passed javax.swing.plaf.metal.MetalLookAndFeel
> LookAndFeel: com.sun.java.swing.plaf.motif.MotifLookAndFeel
> OS = windows nt (unknown)
> Test passed com.sun.java.swing.plaf.motif.MotifLookAndFeel
> LookAndFeel: com.sun.java.swing.plaf.windows.WindowsLookAndFeel
> OS = windows nt (unknown)
> Test passed com.sun.java.swing.plaf.windows.WindowsLookAndFeel

Marked as reviewed by aivanov (Reviewer).

test/jdk/javax/swing/JTree/4618767/JTreeSelectedElementTest.java line 166:

> 164:             final Point locationOnScreen = tree.getLocationOnScreen();
> 165:             Rectangle rt = 
> tree.getPathBounds(tree.getPathForRow(rowCount));
> 166:             locationOnScreen.translate((int) (rt.getX() + rt.getWidth() 
> / 2), (int) (rt.getY() + rt.getHeight() / 2));

Suggestion:

            locationOnScreen.translate(rt.x + rt.width / 2, rt.y + rt.height / 
2);

-------------

PR: https://git.openjdk.java.net/jdk/pull/7742

Reply via email to