org.wings.plaf.Utils.write(device, hashMark.getURL());
Utils.write(device, hashMark.getURL());
    private void writeTreeNode(STree component, Device device, int row, int depth)            throws IOException {        boolean childSelectorWorkaround = !component.getSession().getUserAgent().supportsCssChildSelector();        final TreePath path = component.getPathForRow(row);        final int nodeIndentDepth = component.getNodeIndentDepth();        final Object node = path.getLastPathComponent();        final STreeCellRenderer cellRenderer = component.getCellRenderer();        final boolean isLeaf = component.getModel().isLeaf(node);        final boolean isExpanded = component.isExpanded(path);        final boolean isSelected = component.isPathSelected(path);        final boolean isSelectable = (component.getSelectionModel() != SDefaultTreeSelectionModel.NO_SELECTION_MODEL);        SComponent cellComp = cellRenderer.getTreeCellRendererComponent(component, node,                isSelected,                isExpanded,                isLeaf, row,                false);        device.print("<tr height=\"1\">");        /*        * fill the indented area.        */        for (int i = ((component.isRootVisible()) ? 0 : 1); i < path.getPathCount() - 1; ++i) {            device.print("<td indent=\"true\"");            org.wings.plaf.Utils.optAttribute(device, "width", nodeIndentDepth);            if (hashMark != null && !isLastChild(component.getModel(), path, i)) {                device.print(" style=\"background-image:url(");                org.wings.plaf.Utils.write(device, hashMark.getURL());                device.print(")\"");            }            if (childSelectorWorkaround)                Utils.childSelectorWorkaround(device, "indent");            device.print(">");            if (emptyFillIcon != null) {                writeIcon(device, emptyFillIcon, nodeIndentDepth, 1);            } else {                for (int n = nodeIndentDepth; n > 0; --n) {                    device.print("&nbsp;");                }            }            device.print("</td>");        }        /*        * now, write the component.        */        device.print("<td");        org.wings.plaf.Utils.optAttribute(device, "colspan", depth - (path.getPathCount() - 1));        if (isSelected) {            device.print(" selected=\"true\"");            if (childSelectorWorkaround)                Utils.childSelectorWorkaround(device, "selected");        }        device.print(">");        /*        * in most applications, the is no need to render a control icon for a        * leaf. So in that case, we can avoid writing the sourrounding         * table, that will speed up things in browsers.        */        final boolean renderControlIcon = !(isLeaf && leafControlIcon == null);        if (renderControlIcon) {            device.print("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td>");            if (isLeaf) {                writeIcon(device, leafControlIcon, false);            } else {                if (component.getShowAsFormComponent()) {                    device.print("<button name=\"");                    org.wings.plaf.Utils.write(device, Utils.event(component));                    device.print("\" value=\"");                    org.wings.plaf.Utils.write(device, component.getExpansionParameter(row, false));                    device.print("\"");                } else {                    RequestURL selectionAddr = component.getRequestURL();                    selectionAddr.addParameter(org.wings.plaf.css.Utils.event(component),                            component.getExpansionParameter(row, false));                    device.print("<a href=\"");                    org.wings.plaf.Utils.write(device, selectionAddr.toString());                    device.print("\"");                }                device.print("\">");                if (isExpanded) {                    if (collapseControlIcon == null) {                        device.print("-");                    } else {                        writeIcon(device, collapseControlIcon, true);                    }                } else {                    if (expandControlIcon == null) {                        device.print("+");                    } else {                        writeIcon(device, expandControlIcon, true);                    }                }                if (component.getShowAsFormComponent())                    device.print("</button>");                else                    device.print("</a>");            }            device.print("</td><td>");        }        SCellRendererPane rendererPane = component.getCellRendererPane();        if (isSelectable) {            if (component.getShowAsFormComponent()) {                device.print("<button name=\"");                org.wings.plaf.Utils.write(device, Utils.event(component));                device.print("\" value=\"");                org.wings.plaf.Utils.write(device, component.getSelectionParameter(row, false));                device.print("\"");            } else {                RequestURL selectionAddr = component.getRequestURL();                selectionAddr.addParameter(org.wings.plaf.css.Utils.event(component),                        component.getSelectionParameter(row, false));                device.print("<a href=\"");                org.wings.plaf.Utils.write(device, selectionAddr.toString());                device.print("\"");            }            org.wings.plaf.Utils.optAttribute(device, "tabindex", component.getFocusTraversalIndex());            Utils.writeEvents(device, component);            device.print(">");            rendererPane.writeComponent(device, cellComp, component);            if (component.getShowAsFormComponent())                device.print("</button>");            else                device.print("</a>");        } else {            rendererPane.writeComponent(device, cellComp, component);        }        if (renderControlIcon)            device.print("</td></tr></table>");        device.print("</td><td width=\"100%\"></td></tr>\n");    }