package de.wwwu.awolf.view.listener; import de.wwwu.awolf.presenter.Presenter; import de.wwwu.awolf.presenter.util.Logging; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; import javax.swing.filechooser.FileSystemView; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. * * @Author: Armin Wolf * @Email: a_wolf28@uni-muenster.de * @Date: 10.09.2017. */ public class ImportDataListener implements ActionListener { private Presenter presenter; /** * Konstruktor * * @param presenter Presenter */ public ImportDataListener(Presenter presenter) { this.presenter = presenter; } @Override public void actionPerformed(ActionEvent e) { SwingUtilities.invokeLater(() -> { Logging.logInfo("Thread: " + Thread.currentThread().getName()); JFileChooser chooser = new JFileChooser(); chooser.setPreferredSize(new Dimension(800, 700)); chooser.setFileFilter(new FileNameExtensionFilter("Comma-Separated Value, (*.csv)", "csv", "text")); chooser.setMultiSelectionEnabled(false); chooser.setFileSelectionMode(JFileChooser.FILES_ONLY); File file = null; if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { //Logging.logInfo ("Datei "+chooser.getSelectedFile()+ " ausgewählt."); file = chooser.getSelectedFile(); final File input = file; Thread t = new Thread(() -> presenter.startImport(input)); t.start(); } }); } }