package magic.ui.widget.deck; import java.io.IOException; import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import javax.swing.DefaultComboBoxModel; import javax.swing.JComboBox; import magic.utility.DeckUtils; @SuppressWarnings("serial") public abstract class DeckFilesComboBox extends JComboBox<String> { private final static String ALL_DECKS = "*" + DeckUtils.DECK_EXTENSION; public DeckFilesComboBox(final Path decksDirectory) { this.setModel(new DefaultComboBoxModel<>(getDeckNamesArray(decksDirectory))); } private String[] getDeckNamesArray(final Path decksDirectory) { final List<String> deckNamesList = new ArrayList<>(); try (DirectoryStream<Path> ds = Files.newDirectoryStream(decksDirectory, ALL_DECKS)) { for (Path p : ds) { deckNamesList.add(DeckUtils.getDeckNameFromFile(p)); } } catch (IOException ex) { System.err.println(ex); } return deckNamesList.toArray(new String[0]); } }