package edu.harvard.wcfia.yoshikoder.ui;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
import edu.harvard.wcfia.yoshikoder.concordance.Concordance;
import edu.harvard.wcfia.yoshikoder.ui.model.ConcordanceTableModel;
/**
* @author will
*/
public class TableConcordancePanel extends JPanel {
protected JTable table;
protected Concordance concordance;
public TableConcordancePanel(Concordance conc) {
super(new BorderLayout());
makeGUI();
setConcordance(conc);
}
public TableConcordancePanel(){
super(new BorderLayout());
makeGUI();
}
public void setDisplayFont(Font f){
table.setFont(f);
}
protected void makeGUI(){
table = new JTable() {
public Component prepareRenderer(TableCellRenderer renderer,
int rowIndex, int vColIndex) {
Component c = super.prepareRenderer(renderer, rowIndex,
vColIndex);
if (rowIndex % 2 == 0 && !isCellSelected(rowIndex, vColIndex)) {
c.setBackground(Color.lightGray);
} else {
c.setBackground(getBackground());
}
if (vColIndex == getColumnCount()/2)
c.setFont(c.getFont().deriveFont(Font.BOLD));
return c;
}
};
table.setTableHeader(null);
JScrollPane scr = new JScrollPane(table);
scr.setPreferredSize(new Dimension(250,120));
add(scr, BorderLayout.CENTER);
setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
}
public void setConcordance(Concordance conc){
concordance = conc;
ConcordanceTableModel ctm = new ConcordanceTableModel(concordance);
table.setModel(ctm);
TableUtil.packTableColumns(table, 5);
//table.repaint();
}
public Concordance getConcordance(){
return concordance;
}
}