package pikater.gui.java;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Point;
import java.util.ArrayList;
import java.util.Vector;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import pikater.ontology.messages.DataInstances;
import pikater.ontology.messages.Task;
public class ResultsPanel extends JPanel {
private static final long serialVersionUID = 1L;
private JScrollPane jScrollPane = null;
private JTable jTable = null;
private String[] columns = { "Agent type", "Options", "Train file",
"Test file", "Error rate", "Mean absolute error", "MSE", "Kappa" };
private DefaultTableModel tableModel = new DefaultTableModel(columns, 0); // @jve:decl-index=0:visual-constraint="12,223"
private ArrayList<Task> tasks = new ArrayList<Task>();
/**
* This is the default constructor
*/
public ResultsPanel() {
super();
initialize();
}
public void addResult(Task t) {
tasks.add(t);
Vector<String> data = new Vector<String>();
data.add(t.getAgent().getType());
data.add(t.getAgent().optionsToString());
data.add(t.getData().getTrain_file_name());
data.add(t.getData().getTest_file_name());
data.add(String.valueOf(t.getResult().getError_rate()));
data.add(String.valueOf(t.getResult().getMean_absolute_error()));
data.add(String.valueOf(t.getResult().getRoot_mean_squared_error()));
data.add(String.valueOf(t.getResult().getKappa_statistic()));
tableModel.addRow(data);
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
GridBagConstraints gridBagConstraints = new GridBagConstraints();
gridBagConstraints.fill = GridBagConstraints.BOTH;
gridBagConstraints.gridy = 0;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.gridx = 0;
this.setSize(300, 200);
this.setLayout(new GridBagLayout());
this.add(getJScrollPane(), gridBagConstraints);
}
/**
* This method initializes jScrollPane
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setViewportView(getJTable());
}
return jScrollPane;
}
/**
* This method initializes jTable
*
* @return javax.swing.JTable
*/
private JTable getJTable() {
if (jTable == null) {
jTable = new JTable(tableModel);
jTable.addMouseListener(new java.awt.event.MouseListener() {
public void mouseClicked(java.awt.event.MouseEvent e) {
Point p = e.getPoint();
int row = jTable.rowAtPoint(p);
Task current = tasks.get(row);
DataInstances instances = current.getResult()
.getData_table();
if (instances == null) {
return;
}
ResultDetailsFrame rdf = new ResultDetailsFrame(instances);
rdf.setVisible(true);
}
public void mousePressed(java.awt.event.MouseEvent e) {
}
public void mouseReleased(java.awt.event.MouseEvent e) {
}
public void mouseEntered(java.awt.event.MouseEvent e) {
}
public void mouseExited(java.awt.event.MouseEvent e) {
}
});
}
return jTable;
}
}