package de.juwimm.torstats;
import de.juwimm.torstats.model.EffectType;
import de.juwimm.torstats.util.FileParser;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.EnumMap;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
public class MainGUI extends JFrame {
private JPanel startPane;
private JPanel resultsPane;
private File file;
/**
* Create the frame.
*/
public MainGUI() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
startPane = new JPanel();
startPane.setBorder(new EmptyBorder(5, 5, 5, 5));
startPane.setLayout(new BorderLayout(0, 0));
setContentPane(startPane);
JButton btnTest = new JButton("Test");
btnTest.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
FileParser reader = new FileParser(file);
reader.process();
resultsPane = new JPanel();
resultsPane.setBorder(new EmptyBorder(5, 5, 5, 5));
resultsPane.setLayout(new BorderLayout(0, 0));
EnumMap<EffectType, Integer> damageMap = reader.getDamage();
Object[][] data = new Object[damageMap.size()][2];
int i = 0;
for(EffectType eftTyp : damageMap.keySet()){
data[i][0]=eftTyp.getName();
data[i][1]=damageMap.get(eftTyp);
i++;
}
String[] columnNames = {"Type","Amount"};
JTable table = new JTable(data, columnNames);
resultsPane.add(table, BorderLayout.CENTER);
setContentPane(resultsPane);
}
});
}
});
final JFileChooser fc = new JFileChooser();
JButton btnOpen = new JButton("Open File");
btnOpen.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
int returnVal = fc.showOpenDialog(MainGUI.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
file = fc.getSelectedFile();
} else {
}
}
});
}
});
startPane.add(btnTest, BorderLayout.CENTER);
startPane.add(btnOpen, BorderLayout.NORTH);
}
}