package agg.gui.termination;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Color;
import java.util.Vector;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.TitledBorder;
@SuppressWarnings("serial")
public class RuleTable extends JPanel {
private int hght;
public RuleTable(Vector<String> rules, String title) {
super(new BorderLayout());
setBackground(Color.orange);
setBorder(new TitledBorder(title));
JPanel rulePanel = new JPanel(new BorderLayout());
JTable ruleTable = new JTable(rules.size(), 1);
ruleTable.setEnabled(false);
for (int i = 0; i < rules.size(); i++) {
ruleTable.setValueAt(rules.elementAt(i), i, 0);
}
this.hght = getHeight(ruleTable.getRowCount(), ruleTable.getRowHeight());
ruleTable.doLayout();
JScrollPane ruleScrollPane = new JScrollPane(ruleTable);
ruleScrollPane.setPreferredSize(new Dimension(200, this.hght));
rulePanel.add(ruleScrollPane, BorderLayout.CENTER);
add(rulePanel, BorderLayout.CENTER);
validate();
}
public Dimension getPreferredSize() {
return new Dimension(200, this.hght);
}
public int getTableHeight() {
return this.hght;
}
private int getHeight(int rowCount, int rowHeight) {
int n = 15;
int h = (rowCount + 3) * rowHeight;
if (rowCount > n)
h = (n + 2) * rowHeight;
// else if(rowCount < 5)
// h = 6*rowHeight;
else if (rowCount == 0)
h = 2 * rowHeight;
return h;
}
}