2020-03-21 00:37:09 +00:00
|
|
|
package de.wwwu.awolf.view.listener;
|
2017-09-10 15:45:47 +00:00
|
|
|
|
2020-03-21 00:37:09 +00:00
|
|
|
import de.wwwu.awolf.presenter.Presenter;
|
2020-03-21 19:54:03 +00:00
|
|
|
import de.wwwu.awolf.presenter.data.DataProvider;
|
2020-03-23 06:58:40 +00:00
|
|
|
import de.wwwu.awolf.presenter.util.Logging;
|
2017-09-10 15:45:47 +00:00
|
|
|
|
2017-10-12 15:21:16 +00:00
|
|
|
import javax.swing.*;
|
|
|
|
import java.awt.*;
|
2017-09-10 15:45:47 +00:00
|
|
|
import java.awt.event.ActionEvent;
|
|
|
|
import java.awt.event.ActionListener;
|
2017-10-12 15:21:16 +00:00
|
|
|
import java.text.DecimalFormat;
|
|
|
|
import java.text.NumberFormat;
|
|
|
|
import java.util.Locale;
|
2017-09-10 15:45:47 +00:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden.
|
|
|
|
*
|
|
|
|
* @Author: Armin Wolf
|
|
|
|
* @Email: a_wolf28@uni-muenster.de
|
|
|
|
* @Date: 10.09.2017.
|
|
|
|
*/
|
|
|
|
public class GenerateDataListener implements ActionListener {
|
|
|
|
|
|
|
|
private Presenter presenter;
|
2017-10-12 15:21:16 +00:00
|
|
|
private JDialog dialog;
|
2017-09-10 15:45:47 +00:00
|
|
|
|
2017-10-17 06:34:55 +00:00
|
|
|
/**
|
|
|
|
* Konstruktor
|
2020-03-20 17:08:18 +00:00
|
|
|
*
|
2017-10-17 06:34:55 +00:00
|
|
|
* @param presenter Presenter
|
|
|
|
*/
|
2017-09-10 15:45:47 +00:00
|
|
|
public GenerateDataListener(Presenter presenter) {
|
|
|
|
this.presenter = presenter;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
2017-10-12 15:21:16 +00:00
|
|
|
SwingUtilities.invokeLater(() -> {
|
2020-03-23 06:58:40 +00:00
|
|
|
Logging.logInfo("Thread: " + Thread.currentThread().getName());
|
2020-03-20 17:08:18 +00:00
|
|
|
if (dialog == null || !dialog.isVisible()) {
|
2017-10-12 15:21:16 +00:00
|
|
|
dialog = new JDialog();
|
2017-10-15 07:55:29 +00:00
|
|
|
dialog.setTitle("generiere Datensatz");
|
2017-10-12 15:21:16 +00:00
|
|
|
dialog.setAlwaysOnTop(true);
|
|
|
|
NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.getDefault());
|
|
|
|
DecimalFormat decimalFormat = (DecimalFormat) numberFormat;
|
|
|
|
decimalFormat.setGroupingUsed(false);
|
|
|
|
JTextField textField = new JFormattedTextField(decimalFormat);
|
2020-03-23 20:58:39 +00:00
|
|
|
Dimension preferredSize = textField.getPreferredSize();
|
|
|
|
textField.setPreferredSize(new Dimension((int) preferredSize.getWidth(), (int) preferredSize.getHeight() + 5));
|
2017-10-15 07:55:29 +00:00
|
|
|
textField.setColumns(10);
|
|
|
|
textField.setText("20");
|
2017-10-12 15:21:16 +00:00
|
|
|
JButton aproveButton = new JButton("start");
|
2017-10-15 07:55:29 +00:00
|
|
|
String[] options = {"Punktwolke", "Gerade", "Kreis und Gerade"};
|
|
|
|
JComboBox<String> datasetTypeComboBox = new JComboBox<>(options);
|
2020-03-23 20:58:39 +00:00
|
|
|
dialog.setSize(350, 80);
|
2017-10-12 15:21:16 +00:00
|
|
|
dialog.setLayout(new FlowLayout());
|
|
|
|
dialog.setResizable(false);
|
|
|
|
dialog.setLocationRelativeTo(presenter.getView());
|
2017-10-15 07:55:29 +00:00
|
|
|
dialog.add(datasetTypeComboBox);
|
2017-10-12 15:21:16 +00:00
|
|
|
dialog.add(textField);
|
|
|
|
dialog.add(aproveButton);
|
|
|
|
aproveButton.addActionListener(e1 -> {
|
|
|
|
int n = Integer.parseInt(textField.getText());
|
2020-03-21 19:54:03 +00:00
|
|
|
int index = datasetTypeComboBox.getSelectedIndex();
|
|
|
|
Thread t = new Thread(() -> presenter.generateDataset(n, DataProvider.DataType.values()[index]));
|
2017-10-12 15:21:16 +00:00
|
|
|
t.start();
|
|
|
|
dialog.dispose();
|
|
|
|
});
|
|
|
|
dialog.setVisible(true);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
|
2017-09-10 15:45:47 +00:00
|
|
|
}
|
|
|
|
}
|