wicket.extensions.markup.html.tree
Class AbstractTree

java.lang.Object
  extended bywicket.Component
      extended bywicket.MarkupContainer
          extended bywicket.markup.html.WebMarkupContainer
              extended bywicket.markup.html.WebMarkupContainerWithAssociatedMarkup
                  extended bywicket.markup.html.panel.Panel
                      extended bywicket.extensions.markup.html.tree.AbstractTree
All Implemented Interfaces:
java.util.EventListener, ITreeStateListener, java.io.Serializable, javax.swing.event.TreeModelListener
Direct Known Subclasses:
DefaultAbstractTree

public abstract class AbstractTree
extends wicket.markup.html.panel.Panel
implements ITreeStateListener, javax.swing.event.TreeModelListener

This class encapsulates the logic for displaying and (partial) updating the tree. Actual presentation is out of scope of this class. User should derive they own tree (if needed) from DefaultAbstractTree or Tree (recommended).

Author:
Matej Knopp
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class wicket.markup.html.WebMarkupContainerWithAssociatedMarkup
wicket.markup.html.WebMarkupContainerWithAssociatedMarkup.HeaderPartContainer
 
Nested classes inherited from class wicket.Component
wicket.Component.ComponentModelChange, wicket.Component.EnabledChange, wicket.Component.IVisitor, wicket.Component.VisibilityChange
 
Field Summary
 
Fields inherited from class wicket.Component
ENABLE, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED6, FLAG_RESERVED7, FLAG_RESERVED8, PATH_SEPARATOR, RENDER
 
Constructor Summary
AbstractTree(java.lang.String id)
          Tree constructor
AbstractTree(java.lang.String id, wicket.model.IModel model)
          Tree constructor
 
Method Summary
 void allNodesCollapsed()
          called when all nodes are collapsed.
 void allNodesExpanded()
          called when all nodes are expaned.
 wicket.Component getNodeComponent(javax.swing.tree.TreeNode node)
          Returns the component associated with given node, or null, if node is not visible.
 ITreeState getTreeState()
          Returns the TreeState of this tree.
 void internalAttach()
          Called at the beginning of the request (not ajax request, unless we are rendering the entire component)
 void internalDetach()
           
 void invalidateAll()
          Call to refresh the whole tree.
protected  boolean isNodeExpanded(javax.swing.tree.TreeNode node)
          Returns whether the given node is expanded.
 boolean isRootLess()
           
protected  ITreeState newTreeState()
          Creates the TreeState, which is an object where the current state of tree (which nodes are expanded / collapsed, selected, ...) is stored.
 void nodeCollapsed(javax.swing.tree.TreeNode node)
          Fired when given node is collapsed.
 void nodeExpanded(javax.swing.tree.TreeNode node)
          Fired when given node is expanded.
 void nodeSelected(javax.swing.tree.TreeNode node)
          Fired when given node gets selected.
 void nodeUnselected(javax.swing.tree.TreeNode node)
          Fired when given node gets unselected.
protected  void onAfterRender()
          Called after the rendering of tree is complete.
protected  void onBeforeAttach()
          This method is called before the onAttach is called.
protected abstract  void populateTreeItem(wicket.markup.html.WebMarkupContainer item, int level)
          This method is called after creating every TreeItem.
 void setRootLess(boolean rootLess)
          Sets whether the root of the tree should be visible.
 void treeNodesChanged(javax.swing.event.TreeModelEvent e)
           
 void treeNodesInserted(javax.swing.event.TreeModelEvent e)
           
 void treeNodesRemoved(javax.swing.event.TreeModelEvent e)
           
 void treeStructureChanged(javax.swing.event.TreeModelEvent e)
           
 void updateTree(wicket.ajax.AjaxRequestTarget target)
          Updates the changed portions of the tree using given AjaxRequestTarget.
 
Methods inherited from class wicket.markup.html.panel.Panel
onComponentTag, onComponentTagBody, renderHead
 
Methods inherited from class wicket.markup.html.WebMarkupContainerWithAssociatedMarkup
newHeaderPartContainer, renderHeadFromAssociatedMarkupFile
 
Methods inherited from class wicket.markup.html.WebMarkupContainer
getMarkupType, getWebPage
 
Methods inherited from class wicket.MarkupContainer
add, autoAdd, contains, findMarkupStream, get, getAssociatedMarkupStream, getMarkupStream, internalAdd, isTransparentResolver, iterator, iterator, newMarkupResourceStream, onRender, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderComponentTagBody, replace, setMarkupStream, setModel, size, toString, toString, visitChildren, visitChildren
 
Methods inherited from class wicket.Component
add, addStateChange, checkComponentTag, checkComponentTagAttribute, continueToOriginalDestination, debug, detachBehaviors, detachModel, detachModels, error, exceptionMessage, fatal, findPage, findParent, findParentWithAssociatedMarkup, getApplication, getApplicationPages, getApplicationSettings, getBehaviors, getBehaviors, getClassRelativePath, getConverter, getEscapeModelStrings, getFeedbackMessage, getFlag, getFlag, getId, getLocale, getLocalizer, getMarkupAttributes, getMarkupId, getMetaData, getModel, getModelComparator, getModelObject, getModelObjectAsString, getOutputMarkupId, getPage, getPageFactory, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getResponse, getSession, getSizeInBytes, getString, getString, getString, getStyle, getVariation, hasErrorMessage, hasFeedbackMessage, info, initModel, internalOnAttach, internalOnDetach, internalOnModelChanged, isActionAuthorized, isAncestorOf, isBehaviorAccepted, isEnableAllowed, isEnabled, isHeadRendered, isIgnoreAttributeModifier, isRenderAllowed, isVersioned, isVisible, isVisibleInHierarchy, modelChanged, modelChanging, newPage, newPage, onAttach, onBeforeRender, onBeginRequest, onDetach, onEndRequest, onModelChanged, onModelChanging, onRender, redirectToInterceptPage, remove, render, render, renderComponent, renderComponent, renderComponentTag, rendered, renderedBehaviors, replaceComponentTagBody, replaceWith, resetHeadRendered, sameRootModel, sameRootModel, setAuto, setEnabled, setEscapeModelStrings, setFlag, setFlag, setIgnoreAttributeModifier, setMetaData, setModelObject, setOutputMarkupId, setRedirect, setRenderBodyOnly, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisible, urlFor, urlFor, urlFor, urlFor, urlFor, visitParents, warn
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AbstractTree

public AbstractTree(java.lang.String id)
Tree constructor

Parameters:
id - The component id

AbstractTree

public AbstractTree(java.lang.String id,
                    wicket.model.IModel model)
Tree constructor

Parameters:
id - The component id
model - The tree model
Method Detail

allNodesCollapsed

public final void allNodesCollapsed()
called when all nodes are collapsed.

Specified by:
allNodesCollapsed in interface ITreeStateListener

allNodesExpanded

public final void allNodesExpanded()
called when all nodes are expaned.

Specified by:
allNodesExpanded in interface ITreeStateListener

getTreeState

public ITreeState getTreeState()
Returns the TreeState of this tree.

Returns:
Tree state instance

onBeforeAttach

protected void onBeforeAttach()
This method is called before the onAttach is called. Code here gets executed before the items have been populated.


internalAttach

public void internalAttach()
Called at the beginning of the request (not ajax request, unless we are rendering the entire component)


internalDetach

public void internalDetach()
See Also:
MarkupContainer.internalDetach()

invalidateAll

public final void invalidateAll()
Call to refresh the whole tree. This should only be called when the roodNode has been replaced or the entiry tree model changed.


isRootLess

public final boolean isRootLess()
Returns:
whether the tree root is shown

nodeCollapsed

public final void nodeCollapsed(javax.swing.tree.TreeNode node)
Description copied from interface: ITreeStateListener
Fired when given node is collapsed.

Specified by:
nodeCollapsed in interface ITreeStateListener
Parameters:
node - The node that was collapsed
See Also:
ITreeStateListener.nodeCollapsed(javax.swing.tree.TreeNode)

nodeExpanded

public final void nodeExpanded(javax.swing.tree.TreeNode node)
Description copied from interface: ITreeStateListener
Fired when given node is expanded.

Specified by:
nodeExpanded in interface ITreeStateListener
Parameters:
node -
See Also:
ITreeStateListener.nodeExpanded(javax.swing.tree.TreeNode)

nodeSelected

public final void nodeSelected(javax.swing.tree.TreeNode node)
Description copied from interface: ITreeStateListener
Fired when given node gets selected.

Specified by:
nodeSelected in interface ITreeStateListener
Parameters:
node - The node that was selected
See Also:
ITreeStateListener.nodeSelected(javax.swing.tree.TreeNode)

nodeUnselected

public final void nodeUnselected(javax.swing.tree.TreeNode node)
Description copied from interface: ITreeStateListener
Fired when given node gets unselected.

Specified by:
nodeUnselected in interface ITreeStateListener
Parameters:
node - The node that was unselected
See Also:
ITreeStateListener.nodeUnselected(javax.swing.tree.TreeNode)

setRootLess

public void setRootLess(boolean rootLess)
Sets whether the root of the tree should be visible.

Parameters:
rootLess - whether the root should be visible

treeNodesChanged

public final void treeNodesChanged(javax.swing.event.TreeModelEvent e)
Specified by:
treeNodesChanged in interface javax.swing.event.TreeModelListener
See Also:
TreeModelListener.treeNodesChanged(javax.swing.event.TreeModelEvent)

treeNodesInserted

public final void treeNodesInserted(javax.swing.event.TreeModelEvent e)
Specified by:
treeNodesInserted in interface javax.swing.event.TreeModelListener
See Also:
TreeModelListener.treeNodesInserted(javax.swing.event.TreeModelEvent)

treeNodesRemoved

public final void treeNodesRemoved(javax.swing.event.TreeModelEvent e)
Specified by:
treeNodesRemoved in interface javax.swing.event.TreeModelListener
See Also:
TreeModelListener.treeNodesRemoved(javax.swing.event.TreeModelEvent)

treeStructureChanged

public final void treeStructureChanged(javax.swing.event.TreeModelEvent e)
Specified by:
treeStructureChanged in interface javax.swing.event.TreeModelListener
See Also:
TreeModelListener.treeStructureChanged(javax.swing.event.TreeModelEvent)

updateTree

public final void updateTree(wicket.ajax.AjaxRequestTarget target)
Updates the changed portions of the tree using given AjaxRequestTarget. Call this method if you modified the tree model during an ajax request target and you want to partially update the component on page. Make sure that the tree model has fired the proper listener functions.

Parameters:
target - Ajax request target used to send the update to the page

isNodeExpanded

protected final boolean isNodeExpanded(javax.swing.tree.TreeNode node)
Returns whether the given node is expanded.

Parameters:
node - The node to inspect
Returns:
true if the node is expanded, false otherwise

newTreeState

protected ITreeState newTreeState()
Creates the TreeState, which is an object where the current state of tree (which nodes are expanded / collapsed, selected, ...) is stored.

Returns:
Tree state instance

onAfterRender

protected void onAfterRender()
Called after the rendering of tree is complete. Here we clear the dirty flags.


populateTreeItem

protected abstract void populateTreeItem(wicket.markup.html.WebMarkupContainer item,
                                         int level)
This method is called after creating every TreeItem. This is the place for adding components on item (junction links, labels, icons...)

Parameters:
item - newly created tree item. The node can be obtained as item.getModelObject()
level - how deep the component is in tree hierarchy (0 for root item)

getNodeComponent

public wicket.Component getNodeComponent(javax.swing.tree.TreeNode node)
Returns the component associated with given node, or null, if node is not visible. This is useful in situations when you want to touch the node element in html.

Parameters:
node - Tree node
Returns:
Component associated with given node, or null if node is not visible.


Copyright © 2004-2008 Wicket developers. All Rights Reserved.