System File Chooser: support filename extension filters

This commit is contained in:
Karl Tauber
2025-01-08 15:14:50 +01:00
parent 251198c66d
commit c73fd51704
6 changed files with 363 additions and 50 deletions

View File

@@ -186,7 +186,22 @@ public class FlatSystemFileChooserTest
else
System.setProperty( FlatSystemProperties.USE_SYSTEM_FILE_CHOOSER, "false" );
//TODO filter
// filter
String fileTypesStr = n( (String) fileTypesField.getSelectedItem() );
String[] fileTypes = {};
if( fileTypesStr != null )
fileTypes = fileTypesStr.trim().split( "[,]+" );
int fileTypeIndex = fileTypeIndexSlider.getValue();
if( !useAcceptAllFileFilterCheckBox.isSelected() )
fc.setAcceptAllFileFilterUsed( false );
for( int i = 0; i < fileTypes.length; i += 2 ) {
fc.addChoosableFileFilter( "*".equals( fileTypes[i+1] )
? fc.getAcceptAllFileFilter()
: new SystemFileChooser.FileNameExtensionFilter( fileTypes[i], fileTypes[i+1].split( ";" ) ) );
}
SystemFileChooser.FileFilter[] filters = fc.getChoosableFileFilters();
if( filters.length > 0 )
fc.setFileFilter( filters[Math.min( Math.max( fileTypeIndex, 0 ), filters.length - 1 )] );
}
private void configureSwingFileChooser( JFileChooser fc ) {