T
- the node typepublic abstract class AbstractTree<T> extends Panel implements IGenericComponent<Set<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_AFTER_RENDERING, FLAG_INITIALIZED, FLAG_PREPARED_FOR_RENDER, FLAG_REMOVING_FROM_HIERARCHY, FLAG_RENDERING, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER, RFLAG_CONTAINER_DEQUEING
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() |
IModel<Set<T>> |
getModel()
Get the model of this tree.
|
Set<T> |
getModelObject()
Get the model object of this tree.
|
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()
Overriden to detach the
ITreeProvider . |
AbstractTree<T> |
setItemReuseStrategy(IItemReuseStrategy strategy)
Sets the item reuse strategy.
|
void |
setModel(IModel<Set<T>> model)
Set the model.
|
void |
setModelObject(Set<T> state)
Set the model object.
|
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, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, internalAdd, internalInitialize, iterator, iterator, newDequeueContext, onAfterRenderChildren, onComponentTagBody, onInitialize, onRender, queue, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, swap, toString, toString, visitChildren, visitChildren, visitChildren, visitChildren
add, addStateChange, afterRender, beforeRender, canCallListenerInterface, canCallListenerInterfaceAfterExpiry, 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, internalPrepareForRender, internalRenderComponent, internalRenderHead, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isRenderAllowed, isRendering, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, onAfterRender, onBeforeRender, onComponentTag, onConfigure, onEvent, onModelChanged, onModelChanging, onReAdd, onRemove, prepareForRender, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, renderHead, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, send, setAuto, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setIgnoreAttributeModifier, setMarkup, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setParent, setRenderBodyOnly, setRequestFlag, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, success, urlFor, urlFor, urlFor, urlFor, urlFor, visitParents, visitParents, warn, wrap
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
dequeue, newDequeueContext
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 IModel<Set<T>> getModel()
getModel
in interface IGenericComponent<Set<T>>
public Set<T> getModelObject()
getModelObject
in interface IGenericComponent<Set<T>>
public void setModel(IModel<Set<T>> model)
setModel
in interface IGenericComponent<Set<T>>
model
- the modelpublic void setModelObject(Set<T> state)
setModelObject
in interface IGenericComponent<Set<T>>
state
- the model objectpublic void expand(T t)
AjaxRequestTarget
.t
- the node to expandgetModelObject()
,
Set.add(Object)
,
#updateBranch(Object, AjaxRequestTarget)
public void collapse(T t)
AjaxRequestTarget
.t
- the object to collapsegetModelObject()
,
Set.remove(Object)
,
#updateBranch(Object, AjaxRequestTarget)
public AbstractTree.State getState(T t)
AbstractTree.State
.t
- the node to get state forgetModelObject()
,
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 or target is null
.node
- node to updatetarget
- request targetpublic abstract void updateNode(T node, IPartialPageRequestHandler target)
AjaxRequestTarget
. Does nothing if
the given node is currently not visible or target is null
.node
- node to updatetarget
- request target or null
Copyright © 2006–2021 Apache Software Foundation. All rights reserved.