refactor, import und export bei evaluation.
This commit is contained in:
parent
813155347d
commit
646150d2d6
|
@ -5,8 +5,9 @@
|
|||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>wwu</groupId>
|
||||
<artifactId>masterarbeit</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<artifactId>Masterarbeit</artifactId>
|
||||
<version>1.0</version>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
|
@ -17,6 +18,52 @@
|
|||
<target>1.8</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
|
||||
<!-- Maven Assembly Plugin -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<version>2.4.1</version>
|
||||
<configuration>
|
||||
<!-- get all project dependencies -->
|
||||
<descriptorRefs>
|
||||
<descriptorRef>jar-with-dependencies</descriptorRef>
|
||||
</descriptorRefs>
|
||||
<!-- MainClass in mainfest make a executable jar -->
|
||||
<archive>
|
||||
<manifest>
|
||||
<mainClass>App</mainClass>
|
||||
</manifest>
|
||||
</archive>
|
||||
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>make-assembly</id>
|
||||
<!-- bind to the packaging phase -->
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>com.googlecode.mavennatives</groupId>
|
||||
<artifactId>maven-nativedependencies-plugin</artifactId>
|
||||
<version>0.0.7</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>unpacknatives</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>copy</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
|
@ -49,5 +96,31 @@
|
|||
<artifactId>JTattoo</artifactId>
|
||||
<version>1.6.11</version>
|
||||
</dependency>
|
||||
|
||||
<!-- OpenCV -->
|
||||
<dependency>
|
||||
<groupId>org</groupId>
|
||||
<artifactId>opencv</artifactId>
|
||||
<version>2.4.13</version>
|
||||
<systemPath>${project.basedir}/src/main/resources/libs/opencv-2413.jar</systemPath>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org</groupId>
|
||||
<artifactId>opencv</artifactId>
|
||||
<version>2.4.13</version>
|
||||
<scope>system</scope>
|
||||
<type>dll</type>
|
||||
<systemPath>${project.basedir}/src/main/resources/libs/x64/opencv_java2413.dll</systemPath>
|
||||
<classifier>native-all</classifier>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-io -->
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>1.3.2</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</project>
|
|
@ -1,12 +1,16 @@
|
|||
import model.LineModel;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.opencv.core.Core;
|
||||
import presenter.Presenter;
|
||||
import presenter.evaluation.PictureProcessor;
|
||||
import view.MainFrame;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
/**
|
||||
* Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden.
|
||||
|
@ -17,7 +21,33 @@ import java.lang.reflect.InvocationTargetException;
|
|||
*/
|
||||
public class App {
|
||||
|
||||
static {System.loadLibrary(Core.NATIVE_LIBRARY_NAME);}
|
||||
|
||||
|
||||
private static void loadLibrary() {
|
||||
try {
|
||||
InputStream in = null;
|
||||
File fileOut = null;
|
||||
String osName = System.getProperty("os.name");
|
||||
|
||||
int bitness = Integer.parseInt(System.getProperty("sun.arch.data.model"));
|
||||
if(bitness == 32){
|
||||
in = App.class.getResourceAsStream("/libs/x86/opencv_java2413.dll");
|
||||
fileOut = File.createTempFile("tmp", ".dll");
|
||||
}
|
||||
else if (bitness == 64){
|
||||
in = App.class.getResourceAsStream("/libs/x64/opencv_java2413.dll");
|
||||
fileOut = File.createTempFile("tmp", ".dll");
|
||||
}
|
||||
|
||||
OutputStream out = new FileOutputStream(fileOut);
|
||||
IOUtils.copy(in, out);
|
||||
in.close();
|
||||
out.close();
|
||||
System.load(fileOut.toString());
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("Failed to load opencv native library", e);
|
||||
}
|
||||
}
|
||||
|
||||
private static void setUIFont(javax.swing.plaf.FontUIResource f) {
|
||||
java.util.Enumeration<Object> keys = UIManager.getDefaults().keys();
|
||||
|
@ -51,6 +81,7 @@ public class App {
|
|||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
loadLibrary();
|
||||
|
||||
final Presenter presenter = new Presenter(new LineModel(), null);
|
||||
|
||||
|
|
|
@ -1,11 +1,7 @@
|
|||
package model;
|
||||
|
||||
import sun.awt.image.ImageWatched;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden.
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
package presenter;
|
||||
|
||||
import model.Interval;
|
||||
import model.LineModel;
|
||||
import presenter.algorithms.util.IntersectionComputer;
|
||||
import presenter.algorithms.util.IntersectionCounter;
|
||||
import presenter.evaluation.EvaluateAlgorithms;
|
||||
import view.MainFrame;
|
||||
|
||||
|
@ -161,8 +159,6 @@ public abstract class AbstractPresenter implements Observer {
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public void calculateIntersections() {
|
||||
try {
|
||||
Thread thread = new Thread(() -> {
|
||||
|
|
|
@ -118,9 +118,9 @@ public class Presenter extends AbstractPresenter{
|
|||
public void startImport(File file) {
|
||||
if (importThread == null || !importThread.isAlive()) {
|
||||
importThread = new Thread(() -> {
|
||||
DataImporter importer = new DataImporter(file, this);
|
||||
DataImporter importer = new DataImporter(file);
|
||||
importer.addObserver(this);
|
||||
importer.run();
|
||||
getModel().setLines(importer.run());
|
||||
});
|
||||
importThread.start();
|
||||
try {
|
||||
|
@ -147,13 +147,28 @@ public class Presenter extends AbstractPresenter{
|
|||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void startExport(File file) {
|
||||
if (exportThread == null || !exportThread.isAlive()) {
|
||||
exportThread = new Thread(() -> {
|
||||
DataExporter exporter = new DataExporter(getModel(), file);
|
||||
DataExporter exporter = new DataExporter(getModel().getLines(), file);
|
||||
exporter.addObserver(this);
|
||||
exporter.export();
|
||||
});
|
||||
exportThread.start();
|
||||
try {
|
||||
exportThread.join();
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void startDatasetExportEvaluation(File file) {
|
||||
if (exportThread == null || !exportThread.isAlive()) {
|
||||
exportThread = new Thread(() -> {
|
||||
DataExporter exporter = new DataExporter(getEval().getData(), file);
|
||||
exporter.addObserver(this);
|
||||
exporter.export();
|
||||
});
|
||||
|
@ -214,4 +229,20 @@ public class Presenter extends AbstractPresenter{
|
|||
evalThread.start();
|
||||
}
|
||||
}
|
||||
|
||||
public void startEvaluation(int typ, int n, int alg, File file) {
|
||||
|
||||
if (evalThread == null || !evalThread.isAlive()) {
|
||||
evalThread = new Thread(() -> {
|
||||
try {
|
||||
setEval(new EvaluateAlgorithms(typ, n, alg, file));
|
||||
getEval().addObserver(this);
|
||||
getEval().run();
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
evalThread.start();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -61,7 +61,6 @@ public class NaivLeastMedianOfSquaresEstimator implements Algorithm {
|
|||
}
|
||||
|
||||
|
||||
|
||||
private Double f(Double a, Double b) {
|
||||
ArrayList<Double> res = new ArrayList<>();
|
||||
for (Point p : set) {
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package presenter.algorithms.util;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
|
|
@ -4,15 +4,17 @@ import model.Interval;
|
|||
import model.Line;
|
||||
import model.LineModel;
|
||||
import model.Point;
|
||||
import presenter.algorithms.advanced.LeastMedianOfSquaresEstimator;
|
||||
import presenter.algorithms.advanced.RepeatedMedianEstimator;
|
||||
import presenter.algorithms.advanced.TheilSenEstimator;
|
||||
import presenter.algorithms.naiv.NaivLeastMedianOfSquaresEstimator;
|
||||
import presenter.algorithms.naiv.NaivRepeatedMedianEstimator;
|
||||
import presenter.algorithms.naiv.NaivTheilSenEstimator;
|
||||
import presenter.algorithms.util.IntersectionCounter;
|
||||
import presenter.algorithms.advanced.LeastMedianOfSquaresEstimator;
|
||||
import presenter.algorithms.advanced.RepeatedMedianEstimator;
|
||||
import presenter.algorithms.advanced.TheilSenEstimator;
|
||||
import presenter.generator.DatasetGenerator;
|
||||
import presenter.io.DataImporter;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
import java.util.Observable;
|
||||
|
@ -96,6 +98,30 @@ public class EvaluateAlgorithms extends Observable {
|
|||
tsP = new ArrayList<>(arrangement.getNodes());
|
||||
}
|
||||
|
||||
|
||||
public EvaluateAlgorithms(int type, int n, int alg, File file) {
|
||||
this.arrangement = new LineModel();
|
||||
|
||||
DataImporter importer = new DataImporter(file);
|
||||
this.arrangement.setLines(importer.run());
|
||||
|
||||
this.type = type;
|
||||
this.iterations = n;
|
||||
this.alg = alg;
|
||||
|
||||
IntersectionCounter counter = new IntersectionCounter();
|
||||
counter.run(arrangement.getLines(), new Interval(-99999, 99999));
|
||||
counter.calculateIntersectionAbscissas(arrangement);
|
||||
|
||||
|
||||
lmsL = new LinkedList<>(arrangement.getLines());
|
||||
rmL = new LinkedList<>(arrangement.getLines());
|
||||
tsL = new LinkedList<>(arrangement.getLines());
|
||||
|
||||
lmsP = new ArrayList<>(arrangement.getNodes());
|
||||
tsP = new ArrayList<>(arrangement.getNodes());
|
||||
}
|
||||
|
||||
public void run() throws InterruptedException {
|
||||
setChanged();
|
||||
String[] msg = {"eval-dataset-generated"};
|
||||
|
@ -358,7 +384,6 @@ public class EvaluateAlgorithms extends Observable {
|
|||
}
|
||||
|
||||
|
||||
|
||||
public ArrayList<String> getScaleDependentMeasure(final LinkedList<Line> lines, final Double m, final Double b) {
|
||||
ScaleDependentMeasure scaleDependentMeasure = new ScaleDependentMeasure(lines, m, b);
|
||||
ArrayList<String> ret = new ArrayList<>();
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package presenter.evaluation;
|
||||
import jdk.nashorn.internal.scripts.JD;
|
||||
|
||||
import model.Line;
|
||||
import org.opencv.core.*;
|
||||
import org.opencv.highgui.*;
|
||||
import org.opencv.highgui.Highgui;
|
||||
import org.opencv.imgproc.Imgproc;
|
||||
import presenter.Presenter;
|
||||
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
package presenter.io;
|
||||
|
||||
import com.opencsv.CSVWriter;
|
||||
import model.Line;
|
||||
import model.LineModel;
|
||||
import com.opencsv.CSVWriter;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.LinkedList;
|
||||
import java.util.Observable;
|
||||
|
||||
/**
|
||||
|
@ -18,12 +19,12 @@ import java.util.Observable;
|
|||
*/
|
||||
public class DataExporter extends Observable {
|
||||
|
||||
private LineModel lineModel;
|
||||
private LinkedList<Line> lines;
|
||||
private File file;
|
||||
|
||||
public DataExporter(LineModel model, File file) {
|
||||
public DataExporter(LinkedList<Line> lines, File file) {
|
||||
this.file = file;
|
||||
this.lineModel = model;
|
||||
this.lines = lines;
|
||||
}
|
||||
|
||||
public void export() {
|
||||
|
@ -33,7 +34,7 @@ public class DataExporter extends Observable {
|
|||
writer = new CSVWriter(new FileWriter(file), ',');
|
||||
// feed in your array (or convert your data to an array)
|
||||
String[] entries = new String[3];
|
||||
for (Line line : lineModel.getLines()) {
|
||||
for (Line line : lines) {
|
||||
entries[0] = line.getId();
|
||||
entries[1] = line.getM().toString();
|
||||
Double tmp = (-1) * line.getB();
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
package presenter.io;
|
||||
|
||||
import com.opencsv.CSVReader;
|
||||
import model.Line;
|
||||
import model.LineModel;
|
||||
import presenter.Presenter;
|
||||
import com.opencsv.CSVReader;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Observable;
|
||||
|
||||
|
@ -24,17 +25,10 @@ public class DataImporter extends Observable {
|
|||
|
||||
private File file;
|
||||
private CSVReader reader;
|
||||
private LineModel model;
|
||||
private Presenter presenter;
|
||||
|
||||
|
||||
public DataImporter(File file, Presenter presenter) {
|
||||
this.model = new LineModel();
|
||||
this.presenter = presenter;
|
||||
this.presenter.setModel(this.model);
|
||||
public DataImporter(File file) {
|
||||
//System.out.println(this.model.getLines().size()+ " die Anzahl der aktuellen Lines.");
|
||||
|
||||
|
||||
this.file = file;
|
||||
try {
|
||||
|
||||
|
@ -44,8 +38,9 @@ public class DataImporter extends Observable {
|
|||
}
|
||||
}
|
||||
|
||||
public void run() {
|
||||
public LinkedList<Line> run() {
|
||||
|
||||
LinkedList<Line> list = new LinkedList<>();
|
||||
try {
|
||||
List<String[]> lines = reader.readAll();
|
||||
int counter = 0;
|
||||
|
@ -57,8 +52,8 @@ public class DataImporter extends Observable {
|
|||
Double y = Double.parseDouble(nextLine[2]) * (-1);
|
||||
Line line = new Line(x, y);
|
||||
line.setId(counter + "");
|
||||
if (!this.presenter.getModel().getLines().contains(line)) {
|
||||
this.presenter.getModel().addLine(line);
|
||||
if (!list.contains(line)) {
|
||||
list.add(line);
|
||||
}
|
||||
//System.out.format("|\t\t\t\t\t %-11d \t|\t\t\t\t\t %-11f \t|\t\t\t\t\t %-11f \t\t\t\t\t|\n", id,x,y);
|
||||
setChanged();
|
||||
|
@ -74,6 +69,7 @@ public class DataImporter extends Observable {
|
|||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,7 +5,10 @@ import model.Line;
|
|||
import presenter.AbstractPresenter;
|
||||
import presenter.Presenter;
|
||||
import view.listener.*;
|
||||
import view.panels.*;
|
||||
import view.panels.DualityPanel;
|
||||
import view.panels.EvaluationPanel;
|
||||
import view.panels.InfoPanel;
|
||||
import view.panels.PlotPanel;
|
||||
import view.panels.tabs.LMSPanel;
|
||||
import view.panels.tabs.RMPanel;
|
||||
import view.panels.tabs.TSPanel;
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package view;
|
||||
|
||||
import presenter.Presenter;
|
||||
import view.MainFrame;
|
||||
import view.listener.ExportDataListener;
|
||||
import view.listener.GenerateDataListener;
|
||||
import view.listener.ImportDataListener;
|
||||
|
@ -9,7 +8,6 @@ import view.listener.PictureImportListener;
|
|||
import view.panels.AboutPanel;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
/**
|
||||
* Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden.
|
||||
|
@ -70,8 +68,12 @@ public class MenuBar {
|
|||
}
|
||||
|
||||
public void addActionListeners() {
|
||||
this.exitItem.addActionListener(e -> {System.exit(0);});
|
||||
this.evaluateItem.addActionListener(e -> {view.showEvauluationDialog();});
|
||||
this.exitItem.addActionListener(e -> {
|
||||
System.exit(0);
|
||||
});
|
||||
this.evaluateItem.addActionListener(e -> {
|
||||
view.showEvauluationDialog();
|
||||
});
|
||||
this.importItem.addActionListener(new ImportDataListener((Presenter) view.getPresenter(), view));
|
||||
this.exportItem.addActionListener(new ExportDataListener((Presenter) view.getPresenter(), view));
|
||||
this.generateItem.addActionListener(new GenerateDataListener((Presenter) view.getPresenter()));
|
||||
|
|
|
@ -33,7 +33,7 @@ public class ExportDataListener implements ActionListener {
|
|||
File file = null;
|
||||
JFileChooser chooser = new JFileChooser(FileSystemView.getFileSystemView().getHomeDirectory());
|
||||
chooser.setPreferredSize(new Dimension(800, 700));
|
||||
chooser.setFileFilter(new FileNameExtensionFilter("Comma-Separated Value", "csv", "text"));
|
||||
chooser.setFileFilter(new FileNameExtensionFilter("Comma-Separated Value, (*.csv)", "csv", "text"));
|
||||
chooser.setMultiSelectionEnabled(false);
|
||||
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@ package view.listener;
|
|||
|
||||
import presenter.Presenter;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ public class ImportDataListener implements ActionListener {
|
|||
File file = null;
|
||||
JFileChooser chooser = new JFileChooser(FileSystemView.getFileSystemView().getHomeDirectory());
|
||||
chooser.setPreferredSize(new Dimension(800, 700));
|
||||
chooser.setFileFilter(new FileNameExtensionFilter("Comma-Separated Value", "csv", "text"));
|
||||
chooser.setFileFilter(new FileNameExtensionFilter("Comma-Separated Value, (*.csv)", "csv", "text"));
|
||||
|
||||
chooser.setMultiSelectionEnabled(false);
|
||||
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
|
||||
|
|
|
@ -75,7 +75,7 @@ public class EvaluationPanel extends JPanel {
|
|||
datasetCountLabel = new JLabel("Größe des Datensatzes");
|
||||
Integer[] choice = {50, 100, 200, 500, 1000, 1500};
|
||||
datasetCountChoice = new JComboBox(choice);
|
||||
String[] datatypes = {"Punktwolke", "Gerade", "Kreis und Gerade"};
|
||||
String[] datatypes = {"Punktwolke", "Gerade", "Kreis und Gerade", "Import von CSV-Datei"};
|
||||
datasetType = new JComboBox<>(datatypes);
|
||||
|
||||
start = new JButton("Start");
|
||||
|
@ -191,7 +191,29 @@ public class EvaluationPanel extends JPanel {
|
|||
alg = checkSelection();
|
||||
n = (Integer) datasetCountChoice.getSelectedItem();
|
||||
String datatyp = (String) datasetType.getSelectedItem();
|
||||
if (datatyp == "Import von CSV-Datei"){
|
||||
SwingUtilities.invokeLater(() -> {
|
||||
File file = null;
|
||||
JFileChooser chooser = new JFileChooser(FileSystemView.getFileSystemView().getHomeDirectory());
|
||||
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.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
|
||||
//System.out.println ("Datei "+chooser.getSelectedFile()+ " ausgewählt.");
|
||||
file = chooser.getSelectedFile();
|
||||
final File input = file;
|
||||
Thread t = new Thread(() -> ((Presenter) view.getPresenter()).startEvaluation(type, n, alg, input));
|
||||
t.start();
|
||||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
((Presenter) view.getPresenter()).startEvaluation(type, n, alg, datatyp);
|
||||
}
|
||||
clearTable.setEnabled(true);
|
||||
latexExport.setEnabled(true);
|
||||
exportData.setEnabled(true);
|
||||
|
@ -224,7 +246,7 @@ public class EvaluationPanel extends JPanel {
|
|||
File file = null;
|
||||
JFileChooser chooser = new JFileChooser(FileSystemView.getFileSystemView().getHomeDirectory());
|
||||
chooser.setPreferredSize(new Dimension(800, 700));
|
||||
chooser.setFileFilter(new FileNameExtensionFilter("LaTeX-Datei", "tex", "text"));
|
||||
chooser.setFileFilter(new FileNameExtensionFilter("LaTeX-Datei, (*.tex)", "tex", "text"));
|
||||
|
||||
chooser.setMultiSelectionEnabled(false);
|
||||
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
|
||||
|
@ -257,7 +279,26 @@ public class EvaluationPanel extends JPanel {
|
|||
|
||||
exportData.addActionListener(e -> {
|
||||
SwingUtilities.invokeLater(() -> {
|
||||
JOptionPane.showMessageDialog(this, "Boooooooooooooooooooooooooooooooooooooooooooooooooooooo! :)");
|
||||
SwingUtilities.invokeLater(() -> {
|
||||
File file = null;
|
||||
JFileChooser chooser = new JFileChooser(FileSystemView.getFileSystemView().getHomeDirectory());
|
||||
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.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
|
||||
//System.out.println ("Datei "+chooser.getSelectedFile()+ " ausgewählt.");
|
||||
file = chooser.getSelectedFile();
|
||||
String filename = file.getAbsolutePath().contains(".csv") ? file.getAbsolutePath() : file.getAbsolutePath().concat(".csv");
|
||||
File withExtension = new File(filename);
|
||||
final File input = withExtension;
|
||||
Thread t = new Thread(() ->((Presenter) view.getPresenter()).startDatasetExportEvaluation(input));
|
||||
t.start();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
package view.panels.tabs;
|
||||
|
||||
import com.sun.istack.internal.Nullable;
|
||||
import view.panels.PlotPanel;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.border.TitledBorder;
|
||||
import java.awt.*;
|
||||
|
||||
/**
|
||||
|
@ -84,7 +80,6 @@ public class LMSPanel extends TabPanel {
|
|||
}
|
||||
|
||||
|
||||
@Nullable
|
||||
public String[] getInput() {
|
||||
String[] input = new String[3];
|
||||
input[0] = this.input[0].getText();
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
package view.panels.tabs;
|
||||
|
||||
import com.sun.istack.internal.Nullable;
|
||||
import view.panels.PlotPanel;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.border.TitledBorder;
|
||||
import java.awt.*;
|
||||
|
||||
/**
|
||||
|
@ -77,7 +73,6 @@ public class RMPanel extends TabPanel {
|
|||
}
|
||||
|
||||
|
||||
@Nullable
|
||||
public String getInput() {
|
||||
String input = "";
|
||||
input = this.input.getText();
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
package view.panels.tabs;
|
||||
|
||||
import com.sun.istack.internal.Nullable;
|
||||
import view.panels.PlotPanel;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.border.TitledBorder;
|
||||
import java.awt.*;
|
||||
|
||||
/**
|
||||
|
|
|
@ -41,6 +41,14 @@ public abstract class TabPanel extends JPanel{
|
|||
this.startButton.setFont(new Font("Verdana", Font.PLAIN, 16));
|
||||
}
|
||||
|
||||
protected void addTextfieldAndInput(int row, String name, Double value) {
|
||||
//muss nicht obligatorisch implementiert werden
|
||||
}
|
||||
|
||||
public PlotPanel getPlotPanel() {
|
||||
return plotPanel;
|
||||
}
|
||||
|
||||
public void setPlotPanel(PlotPanel plotPanel) {
|
||||
this.plotPanel = plotPanel;
|
||||
if (this.centerPanel.getComponents().length > 0)
|
||||
|
@ -52,14 +60,6 @@ public abstract class TabPanel extends JPanel{
|
|||
this.revalidate();
|
||||
}
|
||||
|
||||
protected void addTextfieldAndInput(int row, String name, Double value){
|
||||
//muss nicht obligatorisch implementiert werden
|
||||
}
|
||||
|
||||
public PlotPanel getPlotPanel() {
|
||||
return plotPanel;
|
||||
}
|
||||
|
||||
public JButton getStartButton() {
|
||||
return startButton;
|
||||
}
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 7.3 MiB |
Loading…
Reference in New Issue