algorithms-for-computing-li.../LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/StartAlgorithmListener.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!");
}
}
}