org.apache.beehive.netui.tags.tree
Class TreeRenderer

Object
  extended by TreeRenderer
All Implemented Interfaces:
HtmlConstants

public class TreeRenderer
extends Object
implements HtmlConstants

This class renders the HTML markup for the NetUI Tree. The render(org.apache.beehive.netui.tags.rendering.AbstractRenderAppender, org.apache.beehive.netui.tags.tree.TreeElement, int, org.apache.beehive.netui.tags.tree.AttributeRenderer, org.apache.beehive.netui.tags.tree.InheritableState) method recursively renders child nodes of the tree if they're expanded.

By default, this predefined NetUI implementation is the class used across the Web application. NetUI may be configured to use a different tree renderer implementation as the renderer in the Web application. A custom tree renderer is configured by setting the <tree-renderer-class> element in the beehive-netui-config.xml file with the name of a class that extends this class.

<tree-renderer-class>com.xyz.tree.CustomTreeRenderer</tree-renderer-class>


Field Summary
protected  HttpServletRequest _req
           
protected  HttpServletResponse _res
           
protected  ServletContext _servletContext
           
protected  TreeRenderState _trs
           
protected static String FORMAT_INDENT
           
protected static String FORMAT_NBSP
           
protected static String FORMAT_NEWLINE
           
protected static String FORMAT_NEWLINE_INDENT
           
protected static String FORMAT_NEWLINE_SHORT_INDENT
           
protected static String FORMAT_SHORT_INDENT
           
 
Fields inherited from interface HtmlConstants
ABBR, ACCEPT, ACCESSKEY, ACTION, ALIGN, ALINK, ALT, ANCHOR, AREA, AXIS, BACKGROUND, BASE, BGCOLOR, BODY, BORDER, BR, BUTTON, CAPTION, CELLPADDING, CELLSPACING, CHAR, CHAROFF, CHARSET, CHECKED, CLASS, COLS, COLSPAN, COORDS, DIR, DISABLED, DIV, ENCTYPE, FOR, FORM, FORM_GET, FORM_POST, FRAME, HEADERS, HEIGHT, HREF, HREFLANG, HSPACE, HTML, ID, IMAGE, INPUT, INPUT_BUTTON, INPUT_CHECKBOX, INPUT_FILE, INPUT_HIDDEN, INPUT_IMAGE, INPUT_PASSWORD, INPUT_RADIO, INPUT_RESET, INPUT_SUBMIT, INPUT_TEXT, ISMAP, LABEL, LANG, LANGUAGE, LINK, LONGDESC, MAXLENGTH, METHOD, NAME, ONBLUR, ONCHANGE, ONCLICK, ONDBLCLICK, ONFOCUS, ONKEYDOWN, ONKEYPRESS, ONKEYUP, ONLOAD, ONMOUSEDOWN, ONMOUSEMOVE, ONMOUSEOUT, ONMOUSEOVER, ONMOUSEUP, ONRESET, ONSELECT, ONSUBMIT, ONUNLOAD, OPTION, READONLY, REL, REV, ROWS, ROWSPAN, RULES, SCOPE, SCRIPT, SELECT, SHAPE, SIZE, SPAN, SRC, STYLE, SUMMARY, TABINDEX, TABLE, TARGET, TBODY, TD, TEXT, TEXTAREA, TFOOT, TH, THEAD, TITLE, TR, TYPE, USEMAP, VALIGN, VALUE, VLINK, VSPACE, WIDTH
 
Constructor Summary
TreeRenderer()
           
 
Method Summary
protected  String getSelectionlink(TreeElement node, String nodeName, InheritableState state)
          Calculate the selection link for this node, if the node is disabled, we can skip this because a disabled node may not be selected.
protected  TreeRenderSupport getTreeRenderSupport()
           
 void init(TreeRenderState trs, HttpServletRequest request, HttpServletResponse response, ServletContext servletContext)
           
protected  void registerTagError(String message, Throwable e)
           
 void render(AbstractRenderAppender writer, TreeElement node, int level, AttributeRenderer attrs, InheritableState state)
          This is a recursive method which generates the markup for the tree.
protected  void renderAfterNode(AbstractRenderAppender writer, TreeElement node)
           
protected  void renderBeforeNode(AbstractRenderAppender writer, TreeElement node)
           
protected  void renderConnectionImage(AbstractRenderAppender writer, TreeElement node, String nodeName, InheritableState state)
          Write out the image which occurs next to the node icon.
protected  void renderConnectionImagePrefix(AbstractRenderAppender writer, TreeElement node)
          Render the formatting before the connecting/expand/collapse image.
protected  void renderConnectionImageSuffix(AbstractRenderAppender writer, TreeElement node)
          Render the formatting after the connecting/expand/collapse image.
protected  void renderContent(AbstractRenderAppender writer, TreeElement node)
          Render the Content for this node (if any).
protected  void renderContentPrefix(AbstractRenderAppender writer, TreeElement node)
          Render the formatting before the node content.
protected  void renderContentSuffix(AbstractRenderAppender writer, TreeElement node)
          Render the formatting after the node content.
protected  void renderEndDivPrefix(AbstractRenderAppender writer, TreeElement node)
          Render the indent formatting of the end div tag used after the node markup.
protected  void renderEndDivSuffix(AbstractRenderAppender writer, TreeElement node)
          Render the formatting after the end div tag that follows the node markup.
protected  void renderIndentation(AbstractRenderAppender writer, TreeElement node, int level, InheritableState state)
          Write out the images that create the leading indentation for the given node.
protected  void renderItemIcon(AbstractRenderAppender writer, TreeElement node, AttributeRenderer attrs, InheritableState state)
          Render the icon for this node.
protected  void renderItemIconPrefix(AbstractRenderAppender writer, TreeElement node)
          Render the formatting before the node icon.
protected  void renderItemIconSuffix(AbstractRenderAppender writer, TreeElement node)
          Render the formatting after the node icon.
protected  void renderLabel(AbstractRenderAppender writer, TreeElement node)
          Render the label for this node (if any).
protected  void renderLabelPrefix(AbstractRenderAppender writer, TreeElement node)
          Render the formatting before the node label.
protected  void renderLabelSuffix(AbstractRenderAppender writer, TreeElement node)
          Render the formatting after the node label.
protected  TagRenderingBase renderSelectionLink(AbstractRenderAppender writer, TreeElement node, String nodeName, AttributeRenderer attrs, InheritableState state)
          If needed, render the selection link around the icon for this node.
protected  void renderSelectionLinkPrefix(AbstractRenderAppender writer, TreeElement node)
          Render the formatting before the node selection anchor.
protected  void renderSelectionLinkSuffix(AbstractRenderAppender writer, TreeElement node)
          Render the formatting after the node selection anchor.
protected  void renderSpacerPrefix(AbstractRenderAppender writer, TreeElement node)
          Render the formatting before a spacer image.
protected  void renderSpacerSuffix(AbstractRenderAppender writer, TreeElement node)
          Render the formatting after a spacer image.
protected  void renderStartDivPrefix(AbstractRenderAppender writer, TreeElement node)
          Render the indent formatting of the start div tag used before the node markup.
protected  void renderStartDivSuffix(AbstractRenderAppender writer, TreeElement node)
          Render the formatting after the start div tag and before the node markup.
protected  String renderTagId(HttpServletRequest request, String tagId, AbstractHtmlState state)
           
protected  void renderVerticalLinePrefix(AbstractRenderAppender writer, TreeElement node)
          Render the formatting before a vertical line image.
protected  void renderVerticalLineSuffix(AbstractRenderAppender writer, TreeElement node)
          Render the formatting following a vertical line image.
protected  void setTreeRenderSupport(TreeRenderSupport treeRenderSupport)
          This method is set by the NetUI internals to defined an object that handles issues specific to rendering a tree for certain paths of execution in NetUI.
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FORMAT_INDENT

protected static final String FORMAT_INDENT
See Also:
Constant Field Values

FORMAT_NBSP

protected static final String FORMAT_NBSP
See Also:
Constant Field Values

FORMAT_NEWLINE

protected static final String FORMAT_NEWLINE
See Also:
Constant Field Values

FORMAT_SHORT_INDENT

protected static final String FORMAT_SHORT_INDENT
See Also:
Constant Field Values

FORMAT_NEWLINE_INDENT

protected static final String FORMAT_NEWLINE_INDENT
See Also:
Constant Field Values

FORMAT_NEWLINE_SHORT_INDENT

protected static final String FORMAT_NEWLINE_SHORT_INDENT
See Also:
Constant Field Values

_trs

protected TreeRenderState _trs

_servletContext

protected ServletContext _servletContext

_req

protected HttpServletRequest _req

_res

protected HttpServletResponse _res
Constructor Detail

TreeRenderer

public TreeRenderer()
Method Detail

init

public void init(TreeRenderState trs,
                 HttpServletRequest request,
                 HttpServletResponse response,
                 ServletContext servletContext)

setTreeRenderSupport

protected void setTreeRenderSupport(TreeRenderSupport treeRenderSupport)
This method is set by the NetUI internals to defined an object that handles issues specific to rendering a tree for certain paths of execution in NetUI.

Parameters:
treeRenderSupport - the class to handle NetUI specific issues while rendering the tree.

getTreeRenderSupport

protected TreeRenderSupport getTreeRenderSupport()

registerTagError

protected void registerTagError(String message,
                                Throwable e)
                         throws JspException
Throws:
JspException

renderTagId

protected String renderTagId(HttpServletRequest request,
                             String tagId,
                             AbstractHtmlState state)

renderBeforeNode

protected void renderBeforeNode(AbstractRenderAppender writer,
                                TreeElement node)

renderAfterNode

protected void renderAfterNode(AbstractRenderAppender writer,
                               TreeElement node)

render

public void render(AbstractRenderAppender writer,
                   TreeElement node,
                   int level,
                   AttributeRenderer attrs,
                   InheritableState state)
            throws JspException
This is a recursive method which generates the markup for the tree.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render
level - the level or depth of the node within the tree
attrs - renderer for supported attributes
state - the set of tree properties that are used to render the tree markup
Throws:
JspException

renderIndentation

protected void renderIndentation(AbstractRenderAppender writer,
                                 TreeElement node,
                                 int level,
                                 InheritableState state)
Write out the images that create the leading indentation for the given node.

Parameters:
writer - the appender where the node indentation images are appended
node - the node to render
level - the level or depth of the node within the tree
state - the set of tree properties that are used to render the tree markup

renderConnectionImage

protected void renderConnectionImage(AbstractRenderAppender writer,
                                     TreeElement node,
                                     String nodeName,
                                     InheritableState state)
                              throws JspException
Write out the image which occurs next to the node icon. This is usually some kind of connecting line, expand, or collapse image.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render
nodeName - the unique name of the node
state - the set of tree properties that are used to render the tree markup
Throws:
JspException

renderSelectionLink

protected TagRenderingBase renderSelectionLink(AbstractRenderAppender writer,
                                               TreeElement node,
                                               String nodeName,
                                               AttributeRenderer attrs,
                                               InheritableState state)
                                        throws JspException
If needed, render the selection link around the icon for this node. Note that the tag rendered here needs to be closed after the actual icon and label are rendered.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render
nodeName - the unique name of the node
attrs - renderer for supported attributes
state - the set of tree properties that are used to render the tree markup
Returns:
the selection link (or span) tag renderer to close after the item icon and label rendered
Throws:
JspException

getSelectionlink

protected String getSelectionlink(TreeElement node,
                                  String nodeName,
                                  InheritableState state)
                           throws JspException
Calculate the selection link for this node, if the node is disabled, we can skip this because a disabled node may not be selected.

Parameters:
node - the node to render
nodeName - the unique name of the node
state - the set of tree properties that are used to render the tree markup
Returns:
the URL for the selection link
Throws:
JspException

renderItemIcon

protected void renderItemIcon(AbstractRenderAppender writer,
                              TreeElement node,
                              AttributeRenderer attrs,
                              InheritableState state)
Render the icon for this node.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render
attrs - renderer for supported attributes
state - the set of tree properties that are used to render the tree markup

renderLabel

protected void renderLabel(AbstractRenderAppender writer,
                           TreeElement node)
Render the label for this node (if any).

Parameters:
writer - the appender where the tree markup is appended
node - the node to render

renderContent

protected void renderContent(AbstractRenderAppender writer,
                             TreeElement node)
Render the Content for this node (if any).

Parameters:
writer - the appender where the tree markup is appended
node - the node to render

renderSpacerPrefix

protected void renderSpacerPrefix(AbstractRenderAppender writer,
                                  TreeElement node)
Render the formatting before a spacer image.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render

renderSpacerSuffix

protected void renderSpacerSuffix(AbstractRenderAppender writer,
                                  TreeElement node)
Render the formatting after a spacer image.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render

renderVerticalLinePrefix

protected void renderVerticalLinePrefix(AbstractRenderAppender writer,
                                        TreeElement node)
Render the formatting before a vertical line image.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render

renderVerticalLineSuffix

protected void renderVerticalLineSuffix(AbstractRenderAppender writer,
                                        TreeElement node)
Render the formatting following a vertical line image.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render

renderConnectionImagePrefix

protected void renderConnectionImagePrefix(AbstractRenderAppender writer,
                                           TreeElement node)
Render the formatting before the connecting/expand/collapse image.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render

renderConnectionImageSuffix

protected void renderConnectionImageSuffix(AbstractRenderAppender writer,
                                           TreeElement node)
Render the formatting after the connecting/expand/collapse image.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render

renderSelectionLinkPrefix

protected void renderSelectionLinkPrefix(AbstractRenderAppender writer,
                                         TreeElement node)
Render the formatting before the node selection anchor.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render

renderSelectionLinkSuffix

protected void renderSelectionLinkSuffix(AbstractRenderAppender writer,
                                         TreeElement node)
Render the formatting after the node selection anchor.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render

renderItemIconPrefix

protected void renderItemIconPrefix(AbstractRenderAppender writer,
                                    TreeElement node)
Render the formatting before the node icon.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render

renderItemIconSuffix

protected void renderItemIconSuffix(AbstractRenderAppender writer,
                                    TreeElement node)
Render the formatting after the node icon.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render

renderLabelPrefix

protected void renderLabelPrefix(AbstractRenderAppender writer,
                                 TreeElement node)
Render the formatting before the node label.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render

renderLabelSuffix

protected void renderLabelSuffix(AbstractRenderAppender writer,
                                 TreeElement node)
Render the formatting after the node label.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render

renderContentPrefix

protected void renderContentPrefix(AbstractRenderAppender writer,
                                   TreeElement node)
Render the formatting before the node content.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render

renderContentSuffix

protected void renderContentSuffix(AbstractRenderAppender writer,
                                   TreeElement node)
Render the formatting after the node content.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render

renderStartDivPrefix

protected void renderStartDivPrefix(AbstractRenderAppender writer,
                                    TreeElement node)
Render the indent formatting of the start div tag used before the node markup.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render

renderStartDivSuffix

protected void renderStartDivSuffix(AbstractRenderAppender writer,
                                    TreeElement node)
Render the formatting after the start div tag and before the node markup.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render

renderEndDivPrefix

protected void renderEndDivPrefix(AbstractRenderAppender writer,
                                  TreeElement node)
Render the indent formatting of the end div tag used after the node markup.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render

renderEndDivSuffix

protected void renderEndDivSuffix(AbstractRenderAppender writer,
                                  TreeElement node)
Render the formatting after the end div tag that follows the node markup.

Parameters:
writer - the appender where the tree markup is appended
node - the node to render