algorithms-for-computing-li.../src/main/java/Presenter/ImportExport/EvalResultLatexExport.java

86 lines
2.3 KiB
Java

package Presenter.ImportExport;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.table.DefaultTableModel;
/**
* Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden.
*
* @Author: Armin Wolf
* @Email: a_wolf28@uni-muenster.de
* @Date: 08.09.2017.
*/
public class EvalResultLatexExport {
private DefaultTableModel model;
private File file;
public EvalResultLatexExport(DefaultTableModel model, File file ) {
this.model = model;
this.file = file;
}
/**
* e.g. Source: <url>https://en.wikibooks.org/wiki/LaTeX/Tables</url>
* \begin{tabular}{l*{3}{c}}
* Team & P & W & D & L & F & A & Pts \\\hline
* Manchester United & 6 & 4 & 0 & 2 & 10 & 5 & 12 \\
* Celtic & 6 & 3 & 0 & 3 & 8 & 9 & 9 \\
* Benfica & 6 & 2 & 1 & 3 & 7 & 8 & 7 \\
* FC Copenhagen & 6 & 2 & 1 & 3 & 5 & 8 & 7 \\
* \end{tabular}
*
*
* @return
*/
private String createOutputData(){
String split = "&";
StringBuilder doc = new StringBuilder();
doc.append("\\begin{tabular}{l*{3}{c}}"+"\r\n");
doc.append("Approximationsgüte"+split+"LMS"+split+"RM"+split+"TS"+"\\\\\\hline"+"\r\n");
for (int i=0;i<model.getRowCount()-1;i++){
for (int j=0;j<model.getColumnCount();j++){
if (model.getValueAt(i,j).toString() != "") {
doc.append(model.getValueAt(i, j).toString() + split);
}
}
doc.deleteCharAt(doc.lastIndexOf(split));
doc.append("\\\\"+"\r\n");
}
doc.append("\\end{tabular}");
return doc.toString();
}
public void writeFile(){
FileWriter fileWriter = null;
BufferedWriter bufferedWriter = null;
try {
fileWriter = new FileWriter(file);
bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write(createOutputData());
SwingUtilities.invokeLater(()->{
JOptionPane.showMessageDialog(null,"Export war Erfolgreich!");
});
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bufferedWriter.close();
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}