package comeon.ui.media.metadata;
import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableModel;
import java.awt.*;
abstract class AbstractMetadataTable<T> extends JPanel {
private static final long serialVersionUID = 1L;
public AbstractMetadataTable(final String title, final T content) {
super(new BorderLayout());
final JLabel tableTitle = new JLabel(title);
this.add(tableTitle, BorderLayout.NORTH);
final JTable table = new JTable(this.getTableModel(content));
table.setCellSelectionEnabled(false);
table.setColumnSelectionAllowed(false);
table.getColumnModel().getColumn(0).setCellRenderer(new TooltipCellRenderer());
table.getColumnModel().getColumn(1).setCellRenderer(new TooltipCellRenderer());
this.add(table, BorderLayout.CENTER);
}
protected abstract TableModel getTableModel(final T content);
private static final class TooltipCellRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
@Override
public Component getTableCellRendererComponent(final JTable table, final Object value, final boolean isSelected,
final boolean hasFocus, final int row, final int column) {
final JLabel comp = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
comp.setToolTipText(String.valueOf(value));
return comp;
}
}
}