net.databinder.components.tree.hib
Class DataTree<T extends DataTreeObject<T>>

java.lang.Object
  extended by org.apache.wicket.Component
      extended by org.apache.wicket.MarkupContainer
          extended by org.apache.wicket.markup.html.WebMarkupContainer
              extended by org.apache.wicket.markup.html.WebMarkupContainerWithAssociatedMarkup
                  extended by org.apache.wicket.markup.html.panel.Panel
                      extended by org.apache.wicket.markup.html.tree.AbstractTree
                          extended by org.apache.wicket.markup.html.tree.BaseTree
                              extended by net.databinder.components.tree.hib.DataTree<T>
Type Parameters:
T - the IDataTreeNode implementation being represented by the tree nodes
All Implemented Interfaces:
java.io.Serializable, java.util.EventListener, javax.swing.event.TreeModelListener, org.apache.wicket.ajax.AjaxRequestTarget.ITargetRespondListener, org.apache.wicket.IClusterable, org.apache.wicket.IConverterLocator, org.apache.wicket.markup.html.IHeaderPartContainerProvider, org.apache.wicket.markup.html.tree.ITreeStateListener
Direct Known Subclasses:
SingleSelectionDataTree

public abstract class DataTree<T extends DataTreeObject<T>>
extends org.apache.wicket.markup.html.tree.BaseTree

An extension of BaseTree based on node objects being represented by HibernateObjectModels. Additionally, it offers some convenience methods.

Author:
Thomas Kappler
See Also:
Serialized Form

Nested Class Summary
static class DataTree.TopLevelCriteriaBuilder
          Convenience criteria builder for fetching top-level entities.
 
Nested classes/interfaces inherited from class org.apache.wicket.markup.html.tree.BaseTree
org.apache.wicket.markup.html.tree.BaseTree.ILinkCallback, org.apache.wicket.markup.html.tree.BaseTree.LinkType
 
Nested classes/interfaces inherited from class org.apache.wicket.Component
org.apache.wicket.Component.ComponentModelChange, org.apache.wicket.Component.EnabledChange, org.apache.wicket.Component.IVisitor, org.apache.wicket.Component.VisibilityChange
 
Field Summary
 
Fields inherited from class org.apache.wicket.Component
ENABLE, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED6, FLAG_RESERVED7, FLAG_RESERVED8, PATH_SEPARATOR, RENDER
 
Constructor Summary
DataTree(java.lang.String id, HibernateListModel topLevelModel)
          Construct a rootless tree based on a list of top level nodes.
DataTree(java.lang.String id, HibernateObjectModel rootModel)
          Construct a tree with a root entity.
 
Method Summary
 javax.swing.tree.DefaultMutableTreeNode addNewChildNode(javax.swing.tree.DefaultMutableTreeNode parentNode)
          Create a new user object using createNewObject() and add it to the tree as a child of parentNode.
 javax.swing.tree.DefaultMutableTreeNode clear(org.apache.wicket.ajax.AjaxRequestTarget target)
           
protected abstract  T createNewObject()
          Create a new instance of T.
 T getDataTreeNode(javax.swing.tree.DefaultMutableTreeNode node)
          Get the IDataTreeNode instance behind this node, or null if the node is the root of a tree with no root entity.
 javax.swing.tree.DefaultMutableTreeNode getRootNode()
           
 void onDetach()
           
 void repaint(org.apache.wicket.ajax.AjaxRequestTarget target)
          Repaint the tree when something has changed.
 void updateDependentComponents(org.apache.wicket.ajax.AjaxRequestTarget target, javax.swing.tree.DefaultMutableTreeNode selectedNode)
          Override to update components when another tree node is selected.
 
Methods inherited from class org.apache.wicket.markup.html.tree.BaseTree
getCSS, getLinkType, getSelectedClass, isForceRebuildOnSelectionChange, newJunctionLink, newLink, newNodeComponent, onJunctionLinkClicked, populateTreeItem, setLinkType
 
Methods inherited from class org.apache.wicket.markup.html.tree.AbstractTree
addComponent, allNodesCollapsed, allNodesExpanded, getNodeComponent, getTreeState, invalidateAll, isNodeExpanded, isRootLess, markNodeDirty, newTreeState, nodeCollapsed, nodeExpanded, nodeSelected, nodeUnselected, onAfterRender, onBeforeAttach, onBeforeRender, onTargetRespond, setRootLess, treeNodesChanged, treeNodesInserted, treeNodesRemoved, treeStructureChanged, updateTree, updateTree
 
Methods inherited from class org.apache.wicket.markup.html.panel.Panel
onComponentTag, onComponentTagBody, renderHead
 
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainerWithAssociatedMarkup
newHeaderPartContainer, renderHeadFromAssociatedMarkupFile
 
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getMarkupType, getWebPage
 
Methods inherited from class org.apache.wicket.MarkupContainer
add, addOrReplace, autoAdd, autoAdd, contains, findMarkupStream, get, getAssociatedMarkupStream, getMarkupStream, hasAssociatedMarkup, internalAdd, isTransparentResolver, iterator, iterator, newMarkupResourceStream, onRender, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderComponentTagBody, replace, setMarkupStream, setModel, size, toString, toString, visitChildren, visitChildren
 
Methods inherited from class org.apache.wicket.Component
add, addStateChange, afterRender, beforeRender, callOnBeforeRenderIfNotVisible, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, continueToOriginalDestination, debug, detach, detachBehaviors, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findPage, findParent, findParentWithAssociatedMarkup, getApplication, getBehaviors, getBehaviors, getClassRelativePath, getComponentBorder, getConverter, getConverter, getEscapeModelStrings, getFeedbackMessage, getFlag, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkupAttributes, getMarkupId, getMarkupId, getMetaData, getModel, getModelComparator, getModelObject, getModelObjectAsString, getModelObjectAsString, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageFactory, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getResponse, getSession, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalAttach, internalDetach, internalOnAttach, internalOnDetach, internalOnModelChanged, isActionAuthorized, isAncestorOf, isAttached, isBehaviorAccepted, isEnableAllowed, isEnabled, isIgnoreAttributeModifier, isRenderAllowed, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, locateMarkupStream, markAttached, markRendering, modelChanged, modelChanging, newPage, newPage, onAttach, onBeginRequest, onEndRequest, onModelChanged, onModelChanging, prepareForRender, redirectToInterceptPage, remove, remove, render, render, renderComponent, renderComponent, renderComponentTag, rendered, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, setAuto, setComponentBorder, setEnabled, setEscapeModelStrings, setFlag, setFlag, setIgnoreAttributeModifier, setMarkupId, setMetaData, setModelObject, setOutputMarkupId, setOutputMarkupPlaceholderTag, setRedirect, setRenderBodyOnly, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, urlFor, urlFor, urlFor, urlFor, urlFor, urlFor, visitParents, warn, wrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DataTree

public DataTree(java.lang.String id,
                HibernateObjectModel rootModel)
Construct a tree with a root entity.

Parameters:
id - Wicket id
rootModel - must contain a root of type T

DataTree

public DataTree(java.lang.String id,
                HibernateListModel topLevelModel)
Construct a rootless tree based on a list of top level nodes.

Parameters:
id -
topLevelModel - must contain a List of top level children
Method Detail

clear

public javax.swing.tree.DefaultMutableTreeNode clear(org.apache.wicket.ajax.AjaxRequestTarget target)

getDataTreeNode

public T getDataTreeNode(javax.swing.tree.DefaultMutableTreeNode node)
Get the IDataTreeNode instance behind this node, or null if the node is the root of a tree with no root entity.

Parameters:
node - a tree node
Returns:
the object represented by node

getRootNode

public javax.swing.tree.DefaultMutableTreeNode getRootNode()
Returns:
the root node of the tree

addNewChildNode

public javax.swing.tree.DefaultMutableTreeNode addNewChildNode(javax.swing.tree.DefaultMutableTreeNode parentNode)
Create a new user object using createNewObject() and add it to the tree as a child of parentNode.

Parameters:
parentNode - to node serving as parent of the new object
Returns:
the newly created tree node

repaint

public void repaint(org.apache.wicket.ajax.AjaxRequestTarget target)
Repaint the tree when something has changed. It possibly does too much, but you're safe that changes do show after you call it.

Parameters:
target -

createNewObject

protected abstract T createNewObject()
Create a new instance of T. Used to create the backing objects of new tree nodes.

Returns:
a new instance of T

updateDependentComponents

public void updateDependentComponents(org.apache.wicket.ajax.AjaxRequestTarget target,
                                      javax.swing.tree.DefaultMutableTreeNode selectedNode)
Override to update components when another tree node is selected. Does nothing by default.

Parameters:
target -
selectedNode - the currently selected node

onDetach

public void onDetach()
Overrides:
onDetach in class org.apache.wicket.markup.html.tree.AbstractTree


Copyright © 2005-2008 Nathan Hamblen. All Rights Reserved.