package _VisualDVM.Visual.Trees;
import Common.MainModule_;
import Common.Utils.Utils_;
import Common.Visual.Fonts.VisualiserFonts;
import Common.Visual.Trees.StyledTreeCellRenderer;
import _VisualDVM.ProjectData.SapforData.FileObjectWithMessages;

import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
public class GraphTreeCellRenderer extends StyledTreeCellRenderer {
    public java.awt.Component getTreeCellRendererComponent(
            JTree tree, Object value,
            boolean selected, boolean expanded,
            boolean leaf, int row, boolean hasFocus) {
        super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
        Object o = ((DefaultMutableTreeNode) value).getUserObject();
        if (o instanceof FileObjectWithMessages) {
            FileObjectWithMessages target = (FileObjectWithMessages) o;
            setIcon(Utils_.getIcon(target.ImageKey()));
            setFont(MainModule_.instance.getUI().getTheme().Fonts.get(target.getFont()));
        } else {
            setIcon(null);
            setFont(MainModule_.instance.getUI().getTheme().Fonts.get(VisualiserFonts.TreeItalic));
        }
        setForeground(tree.getForeground());
        return this;
    }
}
