Skip to content

Commit 5d97166

Browse files
authored
Merge pull request #82 from stefanhahmann/add_file_filter_to_string
Make file filter show the extension, instead of cryptic stuff
2 parents 2770bbf + 205cdc4 commit 5d97166

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

src/main/java/org/scijava/ui/swing/widget/SwingFileWidget.java

+16
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import java.util.ArrayList;
4141
import java.util.Arrays;
4242
import java.util.List;
43+
import java.util.StringJoiner;
4344
import java.util.stream.Collectors;
4445

4546
import javax.swing.Box;
@@ -235,9 +236,24 @@ public boolean accept(final File pathname) {
235236
}
236237
return false;
237238
}
239+
240+
@Override
241+
public String toString() {
242+
return formatFileFilterExtensions( exts );
243+
}
238244
};
239245
}
240246

247+
static String formatFileFilterExtensions( final List< String > extensions ) {
248+
List< String > extsWithPrefix = new ArrayList<>();
249+
for ( String extension : extensions ) {
250+
extsWithPrefix.add( "*." + extension );
251+
}
252+
StringJoiner joiner = new StringJoiner( ";" );
253+
extsWithPrefix.forEach( joiner::add );
254+
return joiner.toString();
255+
}
256+
241257
/**
242258
* Checks whether the given drag and drop operation offers a list of files as
243259
* one of its flavors.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package org.scijava.ui.swing.widget;
2+
3+
import org.junit.Test;
4+
5+
import java.util.Arrays;
6+
import java.util.Collections;
7+
import java.util.List;
8+
9+
import static org.junit.Assert.assertEquals;
10+
11+
public class SwingFileWidgetTest
12+
{
13+
14+
@Test
15+
public void testFormatFileFilterExtensions() {
16+
final List< String > multipleExtensions = Arrays.asList( "jpg", "jpeg", "png", "gif", "bmp" );
17+
final List< String > singleExtension = Collections.singletonList( "xml" );
18+
assertEquals( "*.jpg;*.jpeg;*.png;*.gif;*.bmp", SwingFileWidget.formatFileFilterExtensions( multipleExtensions ) );
19+
assertEquals( "*.xml", SwingFileWidget.formatFileFilterExtensions( singleExtension ) );
20+
}
21+
}

0 commit comments

Comments
 (0)