Index: webui/src/runtime/com/sun/webui/jsf/component/TreeNode.java =================================================================== --- webui/src/runtime/com/sun/webui/jsf/component/TreeNode.java (revision 1597) +++ webui/src/runtime/com/sun/webui/jsf/component/TreeNode.java (working copy) @@ -648,9 +648,10 @@ boolean first = true; boolean bottomNode = false; int count = 1; + TreeNode prevNode = getParentTreeNode(this); - for (TreeNode node = getParentTreeNode(this); node != null; - node = getParentTreeNode(node)) { + for (TreeNode node = prevNode; node != null; + prevNode = node, node = getParentTreeNode(node)) { attributes = node.getAttributes(); @@ -690,6 +691,8 @@ stack.push(imageIcon); IconHyperlink ihl = getTurnerImageHyperlink(); ihl.setIcon(imageIcon); + ihl.setToolTip("Toggle " + getText() + " node"); // GF-required 508 change + ihl.setAlt("Toggle " + getText() + " node icon"); // GF-required 508 change Tree rootNode = getAbsoluteRoot(this); if (rootNode != null) { if (rootNode.isClientSide()) { @@ -715,7 +718,8 @@ ic = new ImageComponent(); ic.setId(id); - ic.setToolTip(id + " icon"); // GF-required 508 change + ic.setToolTip(getText() + " node"); // GF-required 508 change + ic.setAlt(getText() + " node icon"); // GF-required 508 change this.getFacets().put(id, ic); } ic.setIcon(imageIcon); @@ -742,7 +746,8 @@ if (ic == null) { ic = new ImageComponent(); ic.setIcon(imageIcon); - ic.setToolTip(id + " icon"); // GF-required 508 change + ic.setToolTip(prevNode.getText()+ " child"); // GF-required 508 change + ic.setAlt(prevNode.getText() + " child icon"); // GF-required 508 change ic.setId(id); this.getFacets().put(id, ic); } Index: webui/src/runtime/com/sun/webui/jsf/renderkit/html/TreeNodeRenderer.java =================================================================== --- webui/src/runtime/com/sun/webui/jsf/renderkit/html/TreeNodeRenderer.java (revision 1597) +++ webui/src/runtime/com/sun/webui/jsf/renderkit/html/TreeNodeRenderer.java (working copy) @@ -228,6 +228,11 @@ } } + private void setToolTip(ImageHyperlink ihl, TreeNode node) { + ihl.setToolTip(node.getText() + " node"); // GF-required 508 change + ihl.setAlt(node.getText() + " node image"); // GF-required 508 change + } + /** * Renders each row of the tree. A tree row consists of a set of images * followed by the actual row image or text. @@ -266,15 +271,17 @@ // check if image facet has been supplied. If so, render it. UIComponent imageFacet = node.getFacet(Tree.TREE_IMAGE_FACET_NAME); if (imageFacet != null) { + if (imageFacet instanceof ImageHyperlink) { + ImageHyperlink ihl = (ImageHyperlink) imageFacet; + setToolTip(ihl, node); + } RenderingUtilities.renderComponent(imageFacet, context); } else { String imageURL = node.getImageURL(); if (imageURL != null && imageURL.length() > 0) { ImageHyperlink ihl = node.getNodeImageHyperlink(); - ihl.setToolTip(node.getId() + " node"); // GF-required 508 change - ihl.setAlt(node.getId() + " node image"); // GF-required 508 change - + setToolTip(ihl, node); renderImageOrText(node, ihl, context); } }