package jadex.commons.gui.jtreetable;
import java.awt.Component;
import javax.swing.Icon;
import javax.swing.JComponent;
import javax.swing.JTree;
import javax.swing.tree.DefaultTreeCellRenderer;
/**
* A custom tree cell renderer for changing icons in the tree.
*/
public class DefaultTreeTableCellRenderer extends DefaultTreeCellRenderer
{
//-------- overridings --------
/**
* Configures the renderer based on the passed in components.
*/
public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus)
{
// Change icons depending on node type.
DefaultTreeTableNode node = (DefaultTreeTableNode)value;
if(node.getType()!=null)
{
// Should support different icons for open/closed/leaf???
Icon icon = node.getType().getIcon(value);
if(icon!=null)
{
setOpenIcon(icon);
setClosedIcon(icon);
setLeafIcon(icon);
}
else
{
setOpenIcon(getDefaultOpenIcon());
setClosedIcon(getDefaultClosedIcon());
setLeafIcon(getDefaultLeafIcon());
}
}
JComponent comp = (JComponent)super.getTreeCellRendererComponent(
tree, value, sel, expanded, leaf, row, hasFocus);
return comp;
}
}