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

Alexander Scherbatiy alexandr.scherbatiy at oracle.com
Fri Apr 15 16:22:35 UTC 2016


On 15/04/16 18:27, Sergey Bylokhov wrote:
> Is it possible that default selection of FileChooser will be different 
> from "acceptAllFileFilter"?

  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).

  Thanks,
  Alexandr.

>
> 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.
>
>




More information about the swing-dev mailing list