You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
187 lines
4.8 KiB
187 lines
4.8 KiB
//==============================================================================
|
|
//
|
|
// Copyright (c) 2002-
|
|
// Authors:
|
|
// * Andrew Hinton <ug60axh@cs.bham.uc.uk> (University of Birmingham)
|
|
// * Dave Parker <dxp@cs.bham.uc.uk> (University of Birmingham)
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
//
|
|
// This file is part of PRISM.
|
|
//
|
|
// PRISM is free software; you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation; either version 2 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// PRISM is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with PRISM; if not, write to the Free Software Foundation,
|
|
// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
//
|
|
//==============================================================================
|
|
|
|
package userinterface.properties;
|
|
|
|
import javax.swing.*;
|
|
import java.awt.*;
|
|
import javax.swing.border.*;
|
|
import javax.swing.table.*;
|
|
import java.util.*;
|
|
import parser.*;
|
|
import prism.*;
|
|
import userinterface.*;
|
|
|
|
public class GUIResultsTable extends javax.swing.JDialog
|
|
{
|
|
private static int noOpen = 0;
|
|
|
|
private GUIMultiProperties guiProps;
|
|
private GUIExperiment exp;
|
|
|
|
private JPanel topPanel;
|
|
private JButton closeButton;
|
|
|
|
private JScrollPane scroller;
|
|
private JTable table;
|
|
private ResultsTableModel tableModel;
|
|
|
|
/** Creates a new instance of GUIResultsTable */
|
|
public GUIResultsTable(GUIPrism parent, GUIMultiProperties guiProps, GUIExperiment exp)
|
|
{
|
|
super(parent, "Experiment Results", false);
|
|
this.guiProps = guiProps;
|
|
this.exp = exp;
|
|
|
|
//setup table
|
|
tableModel = new ResultsTableModel(exp);
|
|
table = new JTable();
|
|
table.setModel(tableModel);
|
|
table.setCellSelectionEnabled(true);
|
|
table.setRowHeight(getFontMetrics(table.getFont()).getHeight() + 4);
|
|
|
|
//initialise
|
|
initComponents();
|
|
getRootPane().setDefaultButton(closeButton);
|
|
setResizable(true);
|
|
pack();
|
|
setLocationRelativeTo(getParent()); // centre
|
|
}
|
|
|
|
/** This method is called from within the constructor to initialize the form. */
|
|
|
|
private void initComponents()
|
|
{
|
|
addWindowListener(new java.awt.event.WindowAdapter()
|
|
{
|
|
public void windowClosing(java.awt.event.WindowEvent evt)
|
|
{
|
|
closeDialog();
|
|
}
|
|
});
|
|
|
|
JLabel topLabel = new JLabel("Results of \'" + exp.getPropertyString() + "\' for \'" + exp.getDefinedConstantsString() + "\'");
|
|
|
|
JPanel tmpPanel = new JPanel();
|
|
tmpPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
|
|
|
|
tmpPanel.setLayout(new BorderLayout(10, 10));
|
|
tmpPanel.add(topLabel, BorderLayout.NORTH);
|
|
tmpPanel.add(topLabel, BorderLayout.NORTH);
|
|
|
|
topPanel = new JPanel();
|
|
topPanel.setBorder(new TitledBorder("Results"));
|
|
topPanel.setLayout(new BorderLayout());
|
|
|
|
JPanel borderPanel = new JPanel();
|
|
borderPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
|
|
borderPanel.setLayout(new BorderLayout());
|
|
|
|
JScrollPane sp = new JScrollPane();
|
|
sp.setViewportView(table);
|
|
borderPanel.add(sp, BorderLayout.CENTER);
|
|
topPanel.add(borderPanel);
|
|
topPanel.setPreferredSize(new Dimension(500,200));
|
|
|
|
tmpPanel.add(topPanel, BorderLayout.CENTER);
|
|
|
|
JPanel tmpPanel2 = new JPanel();
|
|
tmpPanel2.setLayout(new BorderLayout());
|
|
|
|
closeButton = new JButton("Close");
|
|
|
|
closeButton.addActionListener(new java.awt.event.ActionListener()
|
|
{
|
|
public void actionPerformed(java.awt.event.ActionEvent evt)
|
|
{
|
|
closeDialog();
|
|
}
|
|
});
|
|
|
|
tmpPanel2.add(closeButton, BorderLayout.EAST);
|
|
|
|
tmpPanel.add(tmpPanel2, BorderLayout.SOUTH);
|
|
this.getContentPane().add(tmpPanel);
|
|
}
|
|
|
|
public void show()
|
|
{
|
|
noOpen++;
|
|
setLocation(getX()+(noOpen*50), getY()+(noOpen*50));
|
|
super.show();
|
|
}
|
|
|
|
public void dispose()
|
|
{
|
|
noOpen--;
|
|
super.dispose();
|
|
}
|
|
|
|
private void closeDialog()
|
|
{
|
|
setVisible(false);
|
|
dispose();
|
|
}
|
|
|
|
class ResultsTableModel extends AbstractTableModel
|
|
{
|
|
String headings[];
|
|
ArrayList cells;
|
|
int numRows, numCols;
|
|
|
|
public ResultsTableModel(GUIExperiment exp)
|
|
{
|
|
headings = exp.getResults().getHeadingsArray();
|
|
cells = exp.getResults().toArrayList();
|
|
numRows = cells.size();
|
|
numCols = headings.length;
|
|
//prop = new ArrayList();
|
|
}
|
|
|
|
public String getColumnName(int j)
|
|
{
|
|
return headings[j];
|
|
}
|
|
|
|
public int getColumnCount()
|
|
{
|
|
return numCols;
|
|
}
|
|
|
|
public int getRowCount()
|
|
{
|
|
return numRows;
|
|
}
|
|
|
|
public Object getValueAt(int i, int j)
|
|
{
|
|
String[] line = (String[])cells.get(i);
|
|
if (j<line.length) return line[j];
|
|
return "?";
|
|
}
|
|
}
|
|
}
|