import java.util.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JComponent;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.Dimension;
import java.awt.GridLayout;
public class Formulas extends JPanel {
private boolean ALLOW_COLUMN_SELECTION = false;
private boolean ALLOW_ROW_SELECTION = true;
static String[] columnName = null;
static String[][] data = null;
static Formulas contentPane;
static JFrame frame;
public Formulas()
{
super( new GridLayout( 1,0 ) );
columnName = new String[1];
columnName[0] = "Formula";
int total = production.Ptable.size() +
pattern.Ttable.size() +
ESList.CTable.size();
data = new String[total][1];
int index = 0;
if( true )
{
Iterator vars = ( production.Ptable.values() ).iterator();
while( vars.hasNext() )
{
production p = ( production ) ( vars.next() );
data[index][0] = p.formula.toString();
index++;
}
vars = ( pattern.Ttable.values() ).iterator();
while( vars.hasNext() )
{
pattern p = ( pattern ) ( vars.next() );
data[index][0] = p.formula.toString();
index++;
}
for( int k = 0; k < ESList.CTable.size(); k++ )
{
node n = ( node ) ( ESList.CTable.get( k ) );
data[index][0] = n.toString();
index++;
}
}
/*
else
{ for(; index < grammar.originals.size(); index++)
{ data[index][0] = (String) grammar.originals.get(index);
}
}
*/
final JTable table = new JTable( data, columnName );
table.setPreferredScrollableViewportSize( new Dimension( 500, 250 ) );
table.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
if ( ALLOW_ROW_SELECTION ) // true by default
{
ListSelectionModel rowSM = table.getSelectionModel();
rowSM.addListSelectionListener( new ListSelectionListener() {
public void valueChanged( ListSelectionEvent e )
{}
} );
}
else
{
table.setRowSelectionAllowed( false );
}
if ( ALLOW_COLUMN_SELECTION ) // false by default
{
table.setColumnSelectionAllowed( true );
ListSelectionModel colSM = table.getColumnModel().getSelectionModel();
colSM.addListSelectionListener( new ListSelectionListener() {
public void valueChanged( ListSelectionEvent e )
{}
} );
}
// Create the scroll pane and add the table to it
JScrollPane scrollPane = new JScrollPane( table );
// Add the scroll pane to this panel
add( scrollPane );
}
public static void createAndShowGUI()
{
// Create and set up the window
frame = new JFrame( "Propagation Formulas" );
frame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );
// Create and set up the content pane
contentPane = new Formulas();
contentPane.setOpaque( true ); // content panes must be opaque
frame.setContentPane( contentPane );
// Display the window
frame.pack();
frame.setVisible( true );
}
}