package net.filebot.ui.filter;
import java.awt.Component;
import javax.swing.JTree;
import javax.swing.tree.TreeNode;
import net.filebot.ResourceManager;
import net.filebot.util.ui.FancyTreeCellRenderer;
import net.filebot.util.ui.GradientStyle;
class FileTreeCellRenderer extends FancyTreeCellRenderer {
public FileTreeCellRenderer() {
super(GradientStyle.TOP_TO_BOTTOM);
openIcon = ResourceManager.getIcon("tree.open");
closedIcon = ResourceManager.getIcon("tree.closed");
leafIcon = ResourceManager.getIcon("file.generic");
}
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
if (leaf && isFolder(value)) {
// make leafs that are empty folders look like expanded nodes
expanded = true;
leaf = false;
}
super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
return this;
}
private boolean isFolder(Object value) {
if (((TreeNode) value).getAllowsChildren())
return true;
return false;
}
}