/** * Return a custom renderer to draw the cell correctly for each node type */ 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); Object userObject = ((DefaultMutableTreeNode) value).getUserObject(); setVerticalTextPosition(SwingConstants.BOTTOM); if (userObject instanceof ProcessorFactory) { ProcessorFactory pf = (ProcessorFactory) userObject; Class processorClass = pf.getProcessorClass(); String tagName = ProcessorHelper .getTagNameForClassName(processorClass.getName()); ImageIcon icon = ProcessorHelper.getIconForTagName(tagName); if (icon != null) { setIcon(icon); } } return this; } }