package org.korsakow.ide.ui.resourceexplorer;
import java.awt.Component;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
public class AggregateCellRenderer implements TableCellRenderer
{
protected Map<Class, TableCellRenderer> rendererMap = new HashMap<Class, TableCellRenderer>();
protected TableCellRenderer defaultRenderer = new DefaultTableCellRenderer();
public static Object getColumnIdentifier(JTable table, int column)
{
return table.getColumnModel().getColumn(column).getIdentifier();
}
protected TableCellRenderer getRenderer(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column)
{
TableCellRenderer renderer = null;
Object identifier = getColumnIdentifier(table, column);
if (identifier != null)
renderer = rendererMap.get(identifier.getClass());
if (renderer == null)
renderer = defaultRenderer;
return renderer;
}
public void addRenderer(Class clazz, TableCellRenderer renderer)
{
rendererMap.put(clazz, renderer);
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
TableCellRenderer renderer = getRenderer(table, value, isSelected, hasFocus, row, column);
return renderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
}
}