algorithms-for-computing-li.../LinearRegressionTool/src/main/java/de/wwwu/awolf/view/panels/InfoPanel.java

85 lines
2.4 KiB
Java

package de.wwwu.awolf.view.panels;
import de.wwwu.awolf.presenter.util.Logging;
import org.apache.log4j.nt.NTEventLogAppender;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import java.awt.*;
import java.util.List;
/**
* Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden.
*
* @Author: Armin Wolf
* @Email: a_wolf28@uni-muenster.de
* @Date: 02.06.2017.
*/
public class InfoPanel extends JPanel {
private JTextArea output;
private JScrollPane scrollPane;
private StringBuilder content;
/**
* Konstruktor
*/
public InfoPanel() {
this.setBorder(new TitledBorder("Logging"));
this.setLayout(new BorderLayout());
output = new JTextArea();
output.setEditable(false);
output.setWrapStyleWord(true);
content = new StringBuilder();
scrollPane = new JScrollPane(output);
scrollPane.setWheelScrollingEnabled(true);
this.add(scrollPane, BorderLayout.CENTER);
}
/**
* Fügt eine Text dem Panel als Paragraph hinzu
*
* @param p Übergebener Text
*/
public void appendParagraph(String p) {
content.append(p).append("\n");
output.setText(content.toString());
}
/**
* Fügt eine Tabelle mit Werten dem Panel hinzu
*
* @param heading Überschriften
* @param rows Liste von Daten pro Zeile
*/
public void logTable(List<String> heading, List<List<String>> rows) {
content.append("<center>");
content.append("<table style=\" width:80%; border: 1px solid black; \">");
content.append("<tr>");
if (heading.size() > 1) {
for (String str : heading) {
content.append("<th style=\" border: 1px solid black; \">" + str + "</th>");
}
} else {
content.append("<th style=\" border: 1px solid black;\" colspan=\"" + rows.get(0).size() + "\"; >" + heading.get(0) + "</th>");
}
content.append("</tr>");
for (List<String> row : rows) {
content.append("<tr>");
for (String entry : row) {
content.append("<td style=\" border: 1px solid black; \">" + entry + "</td>");
}
content.append("</tr>");
}
content.append("</table>");
content.append("</center>");
output.setText(content.toString());
}
}