package com.universalbits.conorganizer.badger.ui; import com.universalbits.conorganizer.badger.control.BadgeQueue; import com.universalbits.conorganizer.badger.control.CSVBadgeLoader; import javax.swing.*; import javax.swing.filechooser.FileFilter; import java.awt.event.ActionEvent; import java.io.File; import java.io.FileInputStream; import java.io.IOException; class LoadCSVAction extends AbstractAction { private static final long serialVersionUID = 1L; private final JFrame frame; private final BadgeQueue badgeQueue; public LoadCSVAction(JFrame frame, BadgeQueue badgeQueue) { super("Load Badge From CSV..."); this.frame = frame; this.badgeQueue = badgeQueue; } @Override public void actionPerformed(ActionEvent event) { JFileChooser fc = new JFileChooser(new File(".")); FileFilter filter = new FileFilter() { @Override public boolean accept(File file) { return file.isDirectory() || file.getName().toLowerCase().endsWith(".csv"); } @Override public String getDescription() { return "(*.csv) Comma Separated Values"; } }; fc.addChoosableFileFilter(filter); fc.setFileFilter(filter); fc.setMultiSelectionEnabled(false); if (fc.showOpenDialog(frame) == JFileChooser.APPROVE_OPTION) { final File file = fc.getSelectedFile(); try { CSVBadgeLoader loader = new CSVBadgeLoader(new FileInputStream(file), badgeQueue); new Thread(loader).start(); } catch (IOException ioe) { ioe.printStackTrace(); } } } }