package cn.net.connor.std.processedit.util;

import java.awt.Color;  
import java.awt.Dimension;  
import java.awt.Graphics;  
  
import javax.swing.JLabel;  
import javax.swing.UIManager;  
import javax.swing.plaf.ColorUIResource;  
  
@SuppressWarnings("serial")
public class CheckBoxTreeLabel extends JLabel  
{  
    private boolean isSelected;  
    @SuppressWarnings("unused")
	private boolean hasFocus;  
      
    public CheckBoxTreeLabel()  
    {  
    }  
      
    @Override  
    public void setBackground(Color color)  
    {  
        if(color instanceof ColorUIResource)  
            color = null;  
        super.setBackground(color);  
    }  
      
    @Override  
    public void paint(Graphics g)  
    {  
        String str;  
        if((str = getText()) != null)  
        {  
            if(0 < str.length())  
            {  
                if(isSelected)  
                    g.setColor(UIManager.getColor("Tree.selectionBackground"));  
                else  
                    g.setColor(UIManager.getColor("Tree.textBackground"));  
                /* Dimension d = getPreferredSize();  
                int imageOffset = 0;  
                Icon currentIcon = getIcon();  
                if(currentIcon != null)  
                    imageOffset = currentIcon.getIconWidth() + Math.max(0, getIconTextGap() - 1);  
                g.fillRect(imageOffset, 1, d.width - 1 - imageOffset, d.height);  
                if(hasFocus)  
                {  
                    g.setColor(UIManager.getColor("Tree.selectionBorderColor"));  
                    g.drawRect(imageOffset, 1, d.width - 1 - imageOffset, d.height - 5);  
                }  */
            }  
        }  
        super.paint(g);  
    }  
      
    @Override  
    public Dimension getPreferredSize()  
    {  
        Dimension retDimension = super.getPreferredSize();  
        if(retDimension != null)  
            retDimension = new Dimension(retDimension.width + 3, retDimension.height);  
        return retDimension;  
    }  
      
    public void setSelected(boolean isSelected)  
    {  
        this.isSelected = isSelected;  
    }  
      
    public void setFocus(boolean hasFocus)  
    {  
        this.hasFocus = hasFocus;  
    }  
}  