T
- the node typepublic abstract class AbstractTree<T> extends Panel implements IGenericComponent<Set<T>,AbstractTree<T>>
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.newContentComponent(String, IModel)
,
Serialized FormModifier and Type | Class and Description |
---|---|
static class |
AbstractTree.State
The state of a node.
|
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
Modifier | Constructor and Description |
---|---|
protected |
AbstractTree(String id,
ITreeProvider<T> provider) |
protected |
AbstractTree(String id,
ITreeProvider<T> provider,
IModel<? extends Set<T>> state) |
Modifier and Type | Method and Description |
---|---|
void |
collapse(T t)
Collapse the given node, tries to update the affected branch if the change happens on an
AjaxRequestTarget . |
void |
expand(T t)
Expand the given node, tries to update the affected branch if the change happens on an
AjaxRequestTarget . |
IItemReuseStrategy |
getItemReuseStrategy() |
ITreeProvider<T> |
getProvider()
Get the provider of the tree nodes.
|
AbstractTree.State |
getState(T t)
Get the given node's
AbstractTree.State . |
protected IModel<?> |
initModel()
Delegate to
newModel() 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.
|
protected IModel<Set<T>> |
newModel()
Factory method for a model, by default creates a model containing a
ProviderSubset . |
Component |
newNodeComponent(String id,
IModel<T> model)
Create a new component for a node.
|
protected void |
onDetach()
Overridden to detach the
ITreeProvider . |
AbstractTree<T> |
setItemReuseStrategy(IItemReuseStrategy strategy)
Sets the item reuse strategy.
|
abstract void |
updateBranch(T node,
IPartialPageRequestHandler target)
Convenience method to update a single branch on an
AjaxRequestTarget . |
abstract void |
updateNode(T node,
IPartialPageRequestHandler target)
Convenience method to update a single node on an
AjaxRequestTarget . |
getRegionMarkup, newMarkupSourcingStrategy
getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSession
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
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, 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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getDefaultModel, getDefaultModelObject, getModel, getModelObject, setDefaultModel, setDefaultModelObject, setModel, setModelObject
dequeue, newDequeueContext
forEach, spliterator
protected AbstractTree(String id, ITreeProvider<T> provider)
public AbstractTree<T> setItemReuseStrategy(IItemReuseStrategy strategy)
Item
s.strategy
- item reuse strategyIItemReuseStrategy
public IItemReuseStrategy getItemReuseStrategy()
DefaultItemReuseStrategy
if none was set.DefaultItemReuseStrategy
public ITreeProvider<T> getProvider()
protected IModel<?> initModel()
newModel()
if none is inited in super implementation.protected IModel<Set<T>> newModel()
ProviderSubset
.
Depending on your ITreeProvider
's model you might consider to provide a custom
Set
implementation.
Note: The contained Set
has at least to implement Set.add(Object)
,
Set.remove(Object)
and Set.contains(Object)
.
public void expand(T t)
AjaxRequestTarget
.t
- the node to expandIGenericComponent.getModelObject()
,
Set.add(Object)
,
updateBranch(Object, IPartialPageRequestHandler)
public void collapse(T t)
AjaxRequestTarget
.t
- the object to collapseIGenericComponent.getModelObject()
,
Set.remove(Object)
,
updateBranch(Object, IPartialPageRequestHandler)
public AbstractTree.State getState(T t)
AbstractTree.State
.t
- the node to get state forIGenericComponent.getModelObject()
,
Set.contains(Object)
protected void onDetach()
ITreeProvider
.onDetach
in class MarkupContainer
public Component newNodeComponent(String id, IModel<T> model)
id
- the component idmodel
- the model containing the nodeprotected abstract Component newContentComponent(String id, IModel<T> model)
id
- the component idmodel
- the model containing the nodepublic abstract void updateBranch(T node, IPartialPageRequestHandler target)
AjaxRequestTarget
. Does nothing if
the given node is currently not visible.node
- node to updatetarget
- request target must not be @code null}public abstract void updateNode(T node, IPartialPageRequestHandler target)
AjaxRequestTarget
. Does nothing if
the given node is currently not visible.node
- node to updatetarget
- request target must not be @code null}Copyright © 2006–2022 Apache Software Foundation. All rights reserved.