<Swing Dev> [9] Review request for 8152677 [macosx] All files filter can't be selected in JFileChooser

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Fri Apr 15 16:26:57 UTC 2016


On 15.04.16 19:22, Alexander Scherbatiy wrote:
> On 15/04/16 18:27, Sergey Bylokhov wrote:
>   When a JFileChooser is created it always adds Accept All file filter
> in the constructor because useAcceptAllFileFilter filed is true by default.
>   Because of this the AquaFileChooserUI.FilterComboBoxModel initially
> has the Accept All file filter as the first item.
>
>   After that it is possible to unset the Accept All file filter by
> calling JFileChooser.setAcceptAllFileFilterUsed(false).

But what will happen if the user will update the filter before the Aqua 
will be set as default l&f(for example if Metal is set as default via 
commandline)?

>> On 15.04.16 16:46, Alexander Scherbatiy wrote:
>>>
>>> Hello,
>>>
>>> Could you review the fix:
>>>    bug: https://bugs.openjdk.java.net/browse/JDK-8152677
>>>    webrev: http://cr.openjdk.java.net/~alexsch/8152677/webrev.00
>>>
>>>    FilterComboBoxModel from AquaFileChooserUI overrides
>>> getSelectedItem() method to always return the selected filter from the
>>> file chooser.
>>>
>>>    JFileChooser.setFileFilter(FileFilter) first assign the passed filter
>>> to fileFilter field and then fire "fileFilterChanged" property change
>>> event. This leads that FilterComboBoxModel compares new file filter with
>>> the selected one (which has the same value because it is obtained from
>>> JFileChooser.fileFilter field) and do not updated JComboBox internal
>>> structure so JComboBox.selectedItemReminder field still points to the
>>> old one.
>>>
>>>    When a user selects “All Files” filter which is the first item from a
>>> JFileChooser the JComboBox does not fire the action event because
>>> selectedItemReminder points to the same first item.
>>>
>>>    The proposed solution is to remember the previous selected item in
>>> the AquaFileChooserUI.FilterComboBoxModel.
>>>
>>>    Thanks,
>>>    Alexandr.
>>
>>
>


-- 
Best regards, Sergey.



More information about the swing-dev mailing list