Index: javax/swing/plaf/basic/BasicLabelUI.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicLabelUI.java,v retrieving revision 1.14 diff -u -r1.14 BasicLabelUI.java --- javax/swing/plaf/basic/BasicLabelUI.java 8 Jul 2005 15:24:08 -0000 1.14 +++ javax/swing/plaf/basic/BasicLabelUI.java 9 Aug 2005 16:05:42 -0000 @@ -169,26 +170,33 @@ vr.width = 0; if (vr.height < 0) vr.height = 0; - + Icon icon = (b.isEnabled()) ? b.getIcon() : b.getDisabledIcon(); String text = layoutCL(b, fm, b.getText(), icon, vr, ir, tr); - + if (icon != null) icon.paintIcon(b, g, ir.x, ir.y); - if (text != null && ! text.equals("")) - { - if (b.isEnabled()) - paintEnabledText(b, g, text, tr.x, tr.y + fm.getAscent()); - else - paintDisabledText(b, g, text, tr.x, tr.y + fm.getAscent()); - } + if (text != null && !text.equals("")) + { + + g.setColor(b.getBackground()); + if (b.isOpaque()) + g.fillRect(vr.x, vr.y, vr.width, vr.height); + else + g.fillRect(tr.x, tr.y, tr.width, tr.height); + + if (b.isEnabled()) + paintEnabledText(b, g, text, tr.x, tr.y + fm.getAscent()); + else + paintDisabledText(b, g, text, tr.x, tr.y + fm.getAscent()); + } g.setFont(saved_font); } /** * This method is simply calls SwingUtilities's layoutCompoundLabel. - * + * * @param label The label to lay out. * @param fontMetrics The FontMetrics for the font used. * @param text The text to paint. Index: javax/swing/plaf/basic/BasicTreeUI.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicTreeUI.java,v retrieving revision 1.55 diff -u -r1.55 BasicTreeUI.java --- javax/swing/plaf/basic/BasicTreeUI.java 9 Aug 2005 13:27:17 -0000 1.55 +++ javax/swing/plaf/basic/BasicTreeUI.java 9 Aug 2005 16:05:43 -0000 @@ -424,6 +424,7 @@ protected void setCellRenderer(TreeCellRenderer tcr) { currentCellRenderer = tcr; + tree.setCellRenderer(tcr); updateRenderer(); } @@ -1201,11 +1202,9 @@ */ protected void uninstallDefaults(JTree tree) { - UIDefaults defaults = UIManager.getLookAndFeelDefaults(); tree.setFont(null); tree.setForeground(null); tree.setBackground(null); - tree.setCellRenderer(null); } /** @@ -2571,61 +2570,27 @@ * @param node the object to draw */ void paintNode(Graphics g, int x, int y, JTree tree, Object node, - boolean isLeaf) + boolean isLeaf) { TreePath curr = new TreePath(getPathToRoot(node, 0)); boolean selected = tree.isPathSelected(curr); boolean expanded = false; boolean hasIcons = false; - + if (tree.isVisible(curr)) - { - DefaultTreeCellRenderer dtcr = (DefaultTreeCellRenderer) - createDefaultCellRenderer(); - - if (!isLeaf) - expanded = tree.isExpanded(curr); - - Icon icon = null; - if (!isLeaf && expanded) - icon = dtcr.getOpenIcon(); - else if (!isLeaf && !expanded) - icon = dtcr.getClosedIcon(); - else - icon = dtcr.getLeafIcon(); - - if (icon.getIconHeight() > -1 && icon.getIconWidth() > -1) - hasIcons = true; - - Component c = dtcr.getTreeCellRendererComponent(tree, node, selected, - expanded, isLeaf, 0, false); - - if (hasIcons) - { - if (selected) - { - Rectangle cell = getPathBounds(tree, curr); - g.setColor(dtcr.getBackgroundSelectionColor()); - g.fillRect(cell.x + icon.getIconWidth()/2, cell.y, cell.width, - cell.height); - - if (curr.equals(tree.getLeadSelectionPath())) - { - g.setColor(UIManager.getLookAndFeelDefaults().getColor( - "Tree.selectionBorderColor")); - g.drawRect(cell.x + icon.getIconWidth()/2, cell.y, - cell.width, cell.height); - } - } - - g.translate(x, y); - c.paint(g); - g.translate(-x, -y); - } - else - rendererPane.paintComponent(g, c, c.getParent(), - getCellBounds(x, y, node)); - } + { + TreeCellRenderer dtcr = tree.getCellRenderer(); + if (dtcr == null) + dtcr = createDefaultCellRenderer(); + + if (!isLeaf) + expanded = tree.isExpanded(curr); + + Component c = dtcr.getTreeCellRendererComponent(tree, node, selected, + expanded, isLeaf, 0, false); + rendererPane.paintComponent(g, c, c.getParent(), + getCellBounds(x, y, node)); + } } /** @@ -2696,7 +2661,7 @@ } if (tree.isExpanded(new TreePath(getPathToRoot(curr, 0)))) - if (y0 != heightOfLine) + if (y0 != heightOfLine && mod.getChildCount(curr) > 0) { g.setColor(getHashColor()); g.drawLine(indentation + halfWidth, y0, indentation + halfWidth,