Module org.apache.wicket.extensions
Class AbstractTree<T>
java.lang.Object
org.apache.wicket.Component
org.apache.wicket.MarkupContainer
org.apache.wicket.markup.html.WebMarkupContainer
org.apache.wicket.markup.html.panel.Panel
org.apache.wicket.extensions.markup.html.repeater.tree.AbstractTree<T>
- Type Parameters:
T
- the node type
- All Implemented Interfaces:
Serializable
,Iterable<Component>
,IEventSink
,IEventSource
,IFeedbackContributor
,IConverterLocator
,IGenericComponent<Set<T>,
,AbstractTree<T>> IMetadataContext<Serializable,
,Component> IQueueRegion
,IHeaderContributor
,IRequestableComponent
,IHierarchical<Component>
,IClusterable
- Direct Known Subclasses:
NestedTree
,TableTree
public abstract class AbstractTree<T>
extends Panel
implements IGenericComponent<Set<T>,AbstractTree<T>>
Abstract base class for
NestedTree
and TableTree
. Uses its model for storing the
AbstractTree.State
of its nodes.
Note that a tree has no notion of a selection. Handling state of nodes besides
expanse/collapse is irrelevant to a tree implementation.- Author:
- svenmeier
- See Also:
-
Nested Class Summary
-
Field Summary
Fields inherited from class org.apache.wicket.Component
ENABLE, FLAG_INITIALIZED, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER, RFLAG_CONTAINER_DEQUEING, RFLAG_CONTAINER_HAS_REMOVALS
-
Constructor Summary
ModifierConstructorDescriptionprotected
AbstractTree
(String id, ITreeProvider<T> provider) protected
AbstractTree
(String id, ITreeProvider<T> provider, IModel<? extends Set<T>> state) -
Method Summary
Modifier and TypeMethodDescriptionvoid
Collapse the given node, tries to update the affected branch if the change happens on anAjaxRequestTarget
.void
Expand the given node, tries to update the affected branch if the change happens on anAjaxRequestTarget
.Get the provider of the tree nodes.Get the given node'sAbstractTree.State
.protected IModel<?>
Delegate tonewModel()
if none is inited in super implementation.protected abstract Component
newContentComponent
(String id, IModel<T> model) Create a new component for the content of a node.newModel()
Factory method for a model, by default creates a model containing aProviderSubset
.newNodeComponent
(String id, IModel<T> model) Create a new component for a node.protected void
onDetach()
Overridden to detach theITreeProvider
.setItemReuseStrategy
(IItemReuseStrategy strategy) Sets the item reuse strategy.abstract void
updateBranch
(T node, IPartialPageRequestHandler target) Convenience method to update a single branch on anAjaxRequestTarget
.abstract void
updateNode
(T node, IPartialPageRequestHandler target) Convenience method to update a single node on anAjaxRequestTarget
.Methods inherited from class org.apache.wicket.markup.html.panel.Panel
getRegionMarkup, newMarkupSourcingStrategy
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSession
Methods inherited from class org.apache.wicket.MarkupContainer
add, addDequeuedComponent, addOrReplace, autoAdd, canDequeueTag, contains, dequeue, dequeue, dequeuePreamble, findChildComponent, findComponentToDequeue, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, internalAdd, internalInitialize, iterator, iterator, newDequeueContext, onComponentTagBody, onInitialize, onRender, queue, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, stream, streamChildren, toString, toString, visitChildren, visitChildren
Methods inherited from class org.apache.wicket.Component
add, addStateChange, beforeRender, canCallListener, canCallListenerAfterExpiry, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, clearOriginalDestination, configure, continueToOriginalDestination, createConverter, debug, detach, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findMarkupStream, findPage, findParent, findParentWithAssociatedMarkup, getAjaxRegionMarkupId, getApplication, getBehaviorById, getBehaviorId, getBehaviors, getBehaviors, getClassRelativePath, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessages, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkup, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdFromMarkup, getMarkupIdImpl, getMarkupSourcingStrategy, getMarkupTag, getMetaData, getModelComparator, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getRequestFlag, getResponse, getSession, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, internalOnModelChanged, internalRenderComponent, internalRenderHead, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isInitialized, isRenderAllowed, isRendering, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, onAfterRender, onBeforeRender, onComponentTag, onConfigure, onEvent, onModelChanged, onModelChanging, onReAdd, onRemove, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, renderPart, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, send, setAuto, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setIgnoreAttributeModifier, setMarkup, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setParent, setRenderBodyOnly, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, success, urlFor, urlFor, urlFor, urlForListener, urlForListener, visitParents, visitParents, warn, wrap
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.wicket.IGenericComponent
getDefaultModel, getDefaultModelObject, getModel, getModelObject, setDefaultModel, setDefaultModelObject, setModel, setModelObject
Methods inherited from interface org.apache.wicket.IQueueRegion
dequeue, newDequeueContext
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
AbstractTree
-
AbstractTree
-
-
Method Details
-
setItemReuseStrategy
Sets the item reuse strategy. This strategy controls the creation ofItem
s.- Parameters:
strategy
- item reuse strategy- Returns:
- this for chaining
- See Also:
-
getItemReuseStrategy
- Returns:
- currently set item reuse strategy. Defaults to
DefaultItemReuseStrategy
if none was set. - See Also:
-
getProvider
Get the provider of the tree nodes.- Returns:
- provider
-
initModel
Delegate tonewModel()
if none is inited in super implementation. -
newModel
Factory method for a model, by default creates a model containing aProviderSubset
. Depending on yourITreeProvider
's model you might consider to provide a customSet
implementation.Note: The contained
Set
has at least to implementSet.add(Object)
,Set.remove(Object)
andSet.contains(Object)
.- Returns:
- model for this tree
-
expand
Expand the given node, tries to update the affected branch if the change happens on anAjaxRequestTarget
.- Parameters:
t
- the node to expand- See Also:
-
collapse
Collapse the given node, tries to update the affected branch if the change happens on anAjaxRequestTarget
.- Parameters:
t
- the object to collapse- See Also:
-
getState
Get the given node'sAbstractTree.State
.- Parameters:
t
- the node to get state for- Returns:
- state
- See Also:
-
onDetach
Overridden to detach theITreeProvider
.- Overrides:
onDetach
in classMarkupContainer
-
newNodeComponent
Create a new component for a node.- Parameters:
id
- the component idmodel
- the model containing the node- Returns:
- created component
-
newContentComponent
Create a new component for the content of a node.- Parameters:
id
- the component idmodel
- the model containing the node- Returns:
- created component
-
updateBranch
Convenience method to update a single branch on anAjaxRequestTarget
. Does nothing if the given node is currently not visible.- Parameters:
node
- node to updatetarget
- request target must not be @code null}
-
updateNode
Convenience method to update a single node on anAjaxRequestTarget
. Does nothing if the given node is currently not visible.- Parameters:
node
- node to updatetarget
- request target must not be @code null}
-