boolean hasFocus) { Component stringDisplayer = renderer.getTreeCellRendererComponent(tree, value, isSelected,
@Override public Component getTreeCellRendererComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row, boolean hasFocus) { if(!(value instanceof FileNode)) { return this; } FileNode node = (FileNode) value; stringDisplayer = renderer.getTreeCellRendererComponent(tree, node.getText(), isSelected, expanded, leaf, row, hasFocus); if(!(value instanceof StoreEntryNode)) { // renderer.setIcon (null); } stringDisplayer.setEnabled(value instanceof StoreEntryNode); //HtmlRenderer does not tolerate null colors - real ones are needed to //ensure fg/bg always diverge enough to be readable if (stringDisplayer.getBackground() == null) { stringDisplayer.setBackground (tree.getBackground()); } if (stringDisplayer.getForeground() == null) { stringDisplayer.setForeground (tree.getForeground()); } if (check != null) { check.setSelected(node.isSelected()); } return this; }
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { SVGNavigatorNode tna = (SVGNavigatorNode)value; DocumentElement de = (DocumentElement)tna.getDocumentElement(); String htmlText = tna.getText(true); Component comp = renderer.getTreeCellRendererComponent(tree, htmlText, sel, expanded, leaf, row, hasFocus); comp.setEnabled(tree.isEnabled()); ((JLabel)comp).setToolTipText(tna.getToolTipText().trim().length() > 0 ? tna.getToolTipText() : null); boolean containsError = tna.getChildrenErrorCount() > 0; if ( tna.getNodeVisibility() == SVGNavigatorTree.VISIBILITY_UNDIRECT) { setIcon( TAG_GRAY_ICON, containsError); } else { //normal icons if( SVGNavigatorTree.isTreeElement(de)) { if (SVGFileModel.isAnimation(de)) { setIcon(ANIMATE_TAG_ICON, containsError); } else { setIcon(TAG_ICON, containsError); } } } return comp; }
Component result = renderer.getTreeCellRendererComponent( tree, text, sel, expanded, leaf, row, hasFocus);
Component result = renderer.getTreeCellRendererComponent( tree, text, sel, expanded, leaf, row, hasFocus);
/** Finds the component that is capable of drawing the cell in a tree. * @param value value can be either <code>Node</code> * or a <code>VisualizerNode</code>. * @return component to draw the value */ @Override public Component getTreeCellRendererComponent( JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus ) { VisualizerNode vis = findVisualizerNode(value); if (vis == draggedOver) { sel = true; } String text = vis.getHtmlDisplayName(); boolean isHtml = text != null; if (!isHtml) { text = vis.getDisplayName(); } //Get our result value - really it is ren, but this call causes //it to configure itself with the passed values Component result = renderer.getTreeCellRendererComponent(tree, text, sel, expanded, leaf, row, hasFocus); result.setEnabled(tree.isEnabled()); renderer.setHtml(isHtml); //Do our additional configuration - set up the icon and possibly //do some hacks to make it look focused for TreeTableView configureFrom(renderer, tree, expanded, sel, vis); return result; }