RFR: 4365952: Cannot disable JFileChooser [v2]

Abhishek Kumar abhiscxk at openjdk.org
Fri Oct 13 12:26:47 UTC 2023


On Wed, 11 Oct 2023 05:14:11 GMT, Tejesh R <tr at openjdk.org> wrote:

>> Invoking `setEnabled(false)` on an instance of `JFileChooser` the sub-components are unaffected since the sub-components didn't set/unset enabled explicitly. The fix address the issue and sets the Enabled flag to each sub-components. Along with setting the property to each sub components, the action listeners like mouseClick(Double too) and scroll actions has to be processed based on enabled/disabled property similar to other components. Since `JFilechooser` implementation varies based on LookAndFeel, the same had to be taken care for affected LookAndFeel also. 
>> Note: `JFrame` being top level container handles frame disable using native method which couldn't be the case for `JFileChooser`. For `showDialog/showOpenDialog/showSaveDialog` the fix could be to set the one the enabled property for created single Dialog. But when an instance of `JFileChooser` is created and added to Frame (Without Dialog been created), disabling the `FileChooser` alone had to be done by handling each sub-components and listeners separately.
>
> Tejesh R has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Review fix - if spacing

test/jdk/javax/swing/JFileChooser/FileChooserDisableTest.java line 50:

> 48:  */
> 49: public class FileChooserDisableTest {
> 50:     static Robot robot;

Can be a local variable in `main`.

test/jdk/javax/swing/JFileChooser/FileChooserDisableTest.java line 73:

> 71:             Dimension btnSize = desktopBtn[0].getSize();
> 72:             robot.mouseMove(movePoint.x + btnSize.width / 2, movePoint.y + btnSize.height / 2);
> 73:             robot.delay(2000);

Do we need such large delays ?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/16068#discussion_r1358184728
PR Review Comment: https://git.openjdk.org/jdk/pull/16068#discussion_r1358184227


More information about the client-libs-dev mailing list