Class 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 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:
    newContentComponent(String, IModel), Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  AbstractTree.State
      The state of a node.
    • Field Summary

      • Fields inherited from class org.apache.wicket.markup.html.panel.Panel

        PANEL
      • 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
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method 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.
      org.apache.wicket.markup.repeater.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 org.apache.wicket.model.IModel<?> initModel()
      Delegate to newModel() if none is inited in super implementation.
      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.
      protected org.apache.wicket.model.IModel<Set<T>> newModel()
      Factory method for a model, by default creates a model containing a ProviderSubset.
      org.apache.wicket.Component newNodeComponent​(String id, org.apache.wicket.model.IModel<T> model)
      Create a new component for a node.
      protected void onDetach()
      Overridden to detach the ITreeProvider.
      AbstractTree<T> setItemReuseStrategy​(org.apache.wicket.markup.repeater.IItemReuseStrategy strategy)
      Sets the item reuse strategy.
      abstract void updateBranch​(T node, org.apache.wicket.core.request.handler.IPartialPageRequestHandler target)
      Convenience method to update a single branch on an AjaxRequestTarget.
      abstract void updateNode​(T node, org.apache.wicket.core.request.handler.IPartialPageRequestHandler target)
      Convenience method to update a single node on an AjaxRequestTarget.
      • 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 interface org.apache.wicket.IGenericComponent

        getDefaultModel, getDefaultModelObject, getModel, getModelObject, setDefaultModel, setDefaultModelObject, setModel, setModelObject
      • Methods inherited from interface org.apache.wicket.IQueueRegion

        dequeue, newDequeueContext
    • Method Detail

      • setItemReuseStrategy

        public AbstractTree<TsetItemReuseStrategy​(org.apache.wicket.markup.repeater.IItemReuseStrategy strategy)
        Sets the item reuse strategy. This strategy controls the creation of Items.
        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 DefaultItemReuseStrategy if none was set.
        See Also:
        DefaultItemReuseStrategy
      • initModel

        protected org.apache.wicket.model.IModel<?> initModel()
        Delegate to newModel() if none is inited in super implementation.
        Overrides:
        initModel in class org.apache.wicket.Component
      • onDetach

        protected void onDetach()
        Overridden to detach the ITreeProvider.
        Overrides:
        onDetach in class org.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 id
        model - 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 id
        model - 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 an AjaxRequestTarget. Does nothing if the given node is currently not visible.
        Parameters:
        node - node to update
        target - 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 an AjaxRequestTarget. Does nothing if the given node is currently not visible.
        Parameters:
        node - node to update
        target - request target must not be @code null}