59 lines
1.8 KiB
Java
59 lines
1.8 KiB
Java
package de.wwwu.awolf.view.listener;
|
|
|
|
import de.wwwu.awolf.presenter.Presenter;
|
|
import de.wwwu.awolf.view.panels.tabs.LMSPanel;
|
|
import de.wwwu.awolf.view.panels.tabs.RMPanel;
|
|
import de.wwwu.awolf.view.panels.tabs.TSPanel;
|
|
import de.wwwu.awolf.view.panels.tabs.TabPanel;
|
|
|
|
import java.awt.event.ActionEvent;
|
|
import java.awt.event.ActionListener;
|
|
|
|
/**
|
|
* Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden.
|
|
*
|
|
* @Author: Armin Wolf
|
|
* @Email: a_wolf28@uni-muenster.de
|
|
* @Date: 10.09.2017.
|
|
*/
|
|
public class StartAlgorithmListener implements ActionListener {
|
|
|
|
private Presenter presenter;
|
|
private TabPanel tabPanel;
|
|
|
|
/**
|
|
* Konstruktor
|
|
*
|
|
* @param presenter Presenter
|
|
* @param tabPanel Algorithmus Visualisierungskomponente
|
|
*/
|
|
public StartAlgorithmListener(Presenter presenter, TabPanel tabPanel) {
|
|
this.presenter = presenter;
|
|
this.tabPanel = tabPanel;
|
|
}
|
|
|
|
@Override
|
|
public void actionPerformed(ActionEvent e) {
|
|
if (tabPanel instanceof LMSPanel) {
|
|
if (((LMSPanel) tabPanel).getInput() != null) {
|
|
Thread t = new Thread(
|
|
() -> presenter.calculateLMS(((LMSPanel) tabPanel).getInput()));
|
|
t.start();
|
|
}
|
|
} else if (tabPanel instanceof RMPanel) {
|
|
if (((RMPanel) tabPanel).getInput() != null) {
|
|
Thread t = new Thread(
|
|
() -> presenter.calculateRM(((RMPanel) tabPanel).getInput()));
|
|
t.start();
|
|
}
|
|
} else if (tabPanel instanceof TSPanel) {
|
|
Thread t = new Thread(
|
|
() -> presenter.calculateTS(""));
|
|
t.start();
|
|
} else {
|
|
throw new IllegalArgumentException("Unknown Algortihm representation Panel!");
|
|
}
|
|
|
|
}
|
|
}
|