/**
 * Distributable under LGPL license.
 * See terms of license at gnu.org.
 *
 * Copyright (C)
 * <a href="http://www.inab.org">Spanish National Institute of Bioinformatics (INB)</a>
 * <a href="http://www.bsc.es">Barcelona Supercomputing Center (BSC)</a>
 * <a href="http://inb.bsc.es">Computational Node 6</a>
 */

package org.inb.biomoby.central.gui.renderer;
import java.awt.Color;
import javax.swing.JTree;
import javax.swing.UIManager;
import javax.swing.tree.TreeCellRenderer;

/**
 * A simple abstract TreeCellRenderer based on JLabel
 *
 * @author Dmitry Repchevsky
 */

public abstract class AbstractTreeCellRenderer extends AbstractCellRenderer implements TreeCellRenderer
{
    public AbstractTreeCellRenderer getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus)
    {
        Color foreground, background;
        if (selected)
        {
            foreground = UIManager.getLookAndFeel().getDefaults().getColor("Tree.selectionForeground");

            if (foreground == null)
            {
                foreground = Color.WHITE;
            }

            background = UIManager.getLookAndFeel().getDefaults().getColor("Tree.selectionBackground");

            if (background == null)
            {
                background = Color.BLUE;
            }
        }
        else
        {
            foreground = tree.getForeground();
            background = TRANSPARENT;
        }

        setForeground(foreground);
        setBackground(background);

        return this;
    }
}
