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<org.apache.wicket.Component>,org.apache.wicket.event.IEventSink,org.apache.wicket.event.IEventSource,org.apache.wicket.feedback.IFeedbackContributor,org.apache.wicket.IConverterLocator,org.apache.wicket.IGenericComponent<Set<T>,AbstractTree<T>>,org.apache.wicket.IMetadataContext<Serializable,org.apache.wicket.Component>,org.apache.wicket.IQueueRegion,org.apache.wicket.markup.html.IHeaderContributor,org.apache.wicket.request.component.IRequestableComponent,org.apache.wicket.util.IHierarchical<org.apache.wicket.Component>,org.apache.wicket.util.io.IClusterable
- Direct Known Subclasses:
NestedTree,TableTree
public abstract class AbstractTree<T> extends org.apache.wicket.markup.html.panel.Panel implements org.apache.wicket.IGenericComponent<Set<T>,AbstractTree<T>>
Abstract base class forNestedTreeandTableTree. Uses its model for storing theAbstractTree.Stateof 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:
newContentComponent(String, IModel), Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAbstractTree.StateThe state of a node.
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractTree(String id, ITreeProvider<T> provider)protectedAbstractTree(String id, ITreeProvider<T> provider, org.apache.wicket.model.IModel<? extends Set<T>> state)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidcollapse(T t)Collapse the given node, tries to update the affected branch if the change happens on anAjaxRequestTarget.voidexpand(T t)Expand the given node, tries to update the affected branch if the change happens on anAjaxRequestTarget.org.apache.wicket.markup.repeater.IItemReuseStrategygetItemReuseStrategy()ITreeProvider<T>getProvider()Get the provider of the tree nodes.AbstractTree.StategetState(T t)Get the given node'sAbstractTree.State.protected org.apache.wicket.model.IModel<?>initModel()Delegate tonewModel()if none is inited in super implementation.protected abstract org.apache.wicket.ComponentnewContentComponent(String id, org.apache.wicket.model.IModel<T> model)Create a new component for the content of a node.protected org.apache.wicket.model.IModel<Set<T>>newModel()Factory method for a model, by default creates a model containing aProviderSubset.org.apache.wicket.ComponentnewNodeComponent(String id, org.apache.wicket.model.IModel<T> model)Create a new component for a node.protected voidonDetach()Overridden to detach theITreeProvider.AbstractTree<T>setItemReuseStrategy(org.apache.wicket.markup.repeater.IItemReuseStrategy strategy)Sets the item reuse strategy.abstract voidupdateBranch(T node, org.apache.wicket.core.request.handler.IPartialPageRequestHandler target)Convenience method to update a single branch on anAjaxRequestTarget.abstract voidupdateNode(T node, org.apache.wicket.core.request.handler.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, 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 java.lang.Iterable
forEach, spliterator
-
-
-
-
Constructor Detail
-
AbstractTree
protected AbstractTree(String id, ITreeProvider<T> provider)
-
AbstractTree
protected AbstractTree(String id, ITreeProvider<T> provider, org.apache.wicket.model.IModel<? extends Set<T>> state)
-
-
Method Detail
-
setItemReuseStrategy
public AbstractTree<T> setItemReuseStrategy(org.apache.wicket.markup.repeater.IItemReuseStrategy strategy)
Sets the item reuse strategy. This strategy controls the creation ofItems.- Parameters:
strategy- item reuse strategy- Returns:
- this for chaining
- See Also:
IItemReuseStrategy
-
getItemReuseStrategy
public org.apache.wicket.markup.repeater.IItemReuseStrategy getItemReuseStrategy()
- Returns:
- currently set item reuse strategy. Defaults to
DefaultItemReuseStrategyif none was set. - See Also:
DefaultItemReuseStrategy
-
getProvider
public ITreeProvider<T> getProvider()
Get the provider of the tree nodes.- Returns:
- provider
-
initModel
protected org.apache.wicket.model.IModel<?> initModel()
Delegate tonewModel()if none is inited in super implementation.- Overrides:
initModelin classorg.apache.wicket.Component
-
newModel
protected org.apache.wicket.model.IModel<Set<T>> newModel()
Factory method for a model, by default creates a model containing aProviderSubset. Depending on yourITreeProvider's model you might consider to provide a customSetimplementation.Note: The contained
Sethas at least to implementSet.add(Object),Set.remove(Object)andSet.contains(Object).- Returns:
- model for this tree
-
expand
public void expand(T t)
Expand the given node, tries to update the affected branch if the change happens on anAjaxRequestTarget.- Parameters:
t- the node to expand- See Also:
IGenericComponent.getModelObject(),Set.add(Object),updateBranch(Object, IPartialPageRequestHandler)
-
collapse
public void collapse(T t)
Collapse the given node, tries to update the affected branch if the change happens on anAjaxRequestTarget.- Parameters:
t- the object to collapse- See Also:
IGenericComponent.getModelObject(),Set.remove(Object),updateBranch(Object, IPartialPageRequestHandler)
-
getState
public AbstractTree.State getState(T t)
Get the given node'sAbstractTree.State.- Parameters:
t- the node to get state for- Returns:
- state
- See Also:
IGenericComponent.getModelObject(),Set.contains(Object)
-
onDetach
protected void onDetach()
Overridden to detach theITreeProvider.- Overrides:
onDetachin classorg.apache.wicket.MarkupContainer
-
newNodeComponent
public org.apache.wicket.Component newNodeComponent(String id, org.apache.wicket.model.IModel<T> model)
Create a new component for a node.- Parameters:
id- the component idmodel- the model containing the node- Returns:
- created component
-
newContentComponent
protected abstract org.apache.wicket.Component newContentComponent(String id, org.apache.wicket.model.IModel<T> model)
Create a new component for the content of a node.- Parameters:
id- the component idmodel- the model containing the node- Returns:
- created component
-
updateBranch
public abstract void updateBranch(T node, org.apache.wicket.core.request.handler.IPartialPageRequestHandler target)
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
public abstract void updateNode(T node, org.apache.wicket.core.request.handler.IPartialPageRequestHandler target)
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}
-
-