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 ExportDataListener implements ActionListener { private Presenter presenter; /** * Konstruktor * * @param presenter Presenter */ public ExportDataListener(Presenter presenter) { this.presenter = presenter; } @Override public void actionPerformed(ActionEvent e) { SwingUtilities.invokeLater(() -> { File file = null; 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); if (chooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) { Logging.logInfo ("Datei "+chooser.getSelectedFile()+ " ausgewählt."); file = chooser.getSelectedFile(); String filename = file.getAbsolutePath().contains(".csv") ? file.getAbsolutePath() : file.getAbsolutePath().concat(".csv"); final File input = new File(filename); Thread t = new Thread(() -> presenter.startExport(input)); t.start(); } }); } }