package client.common;

import java.awt.Component;
import java.awt.Image;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import javax.imageio.ImageIO;
import javax.swing.GrayFilter;
import javax.swing.ImageIcon;
import javax.swing.JTree;
import javax.swing.tree.DefaultTreeCellRenderer;

import client.control.Main;

import com.MyTools;

public class MyTreeIcon extends DefaultTreeCellRenderer 
{
	//如果是:用户名;图片路径,那么就是好友节点
	//如果是:用户名;图片路径1;图片路径2,那么表示分组节点,
	//图片路径1表示未展开的分组,图片路径2表示展开了的分组
	ArrayList<String> nodeImages=null;
    public MyTreeIcon(ArrayList<String> nodeImages)
    {
    	this.nodeImages=nodeImages;
    }

    public Component getTreeCellRendererComponent(
                        JTree tree,
                        Object value,
                        boolean sel,
                        boolean expanded,
                        boolean leaf,
                        int row,
                        boolean hasFocus) 
    {
        super.getTreeCellRendererComponent(tree, value, sel,expanded,
        		leaf, row, hasFocus);
        for(String str:nodeImages)
        {
        	String[] temp=str.split(MyTools.SPLIT1);
        	if(value.toString().startsWith(temp[0])&&!temp[0].equals(""))//注意Value一定要toString()
        	{
        		 try
				{
					//Image grayImage = GrayFilter.createDisabledImage(ImageIO.read(Main.class.getResource(temp[1])));
					if(temp.length==2)//如果是:用户名;图片路径,那么就是好友节点
	        			//this.setIcon(new ImageIcon(grayImage));
						this.setIcon(MyTools.getIcon(temp[1]));
	        		else if(temp.length==3)//如果是:用户名;图片路径1;图片路径2,那么表示分组节点,
	        		{
	        			if(!expanded)
	        				this.setIcon(MyTools.getIcon(temp[1]));
	        			else 
	        				this.setIcon(MyTools.getIcon(temp[2]));
	        		}
				}
				catch (Exception e)
				{
					e.printStackTrace();
				}
        		
        	}
        }
        return this;
    }
}