com.evolveum.midpoint.web.component.orgStruct
Class AbstractTree<T>

java.lang.Object
  extended by org.apache.wicket.Component
      extended by org.apache.wicket.MarkupContainer
          extended by org.apache.wicket.markup.html.WebMarkupContainer
              extended by org.apache.wicket.markup.html.panel.Panel
                  extended by com.evolveum.midpoint.web.component.orgStruct.AbstractTree<T>
All Implemented Interfaces:
Serializable, Iterable<org.apache.wicket.Component>, org.apache.wicket.event.IEventSink, org.apache.wicket.event.IEventSource, org.apache.wicket.IClusterable, org.apache.wicket.IConverterLocator, org.apache.wicket.markup.html.IHeaderContributor, org.apache.wicket.request.component.IRequestableComponent, org.apache.wicket.util.IHierarchical<org.apache.wicket.Component>
Direct Known Subclasses:
NestedTree

public abstract class AbstractTree<T>
extends org.apache.wicket.markup.html.panel.Panel

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:
Sven Meier
See Also:
newContentComponent(String, IModel), Serialized Form

Nested Class Summary
static class AbstractTree.State
           
 
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_REMOVING_FROM_HIERARCHY, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER
 
Constructor Summary
protected AbstractTree(String id, wickettree.ITreeProvider<T> provider)
           
protected AbstractTree(String id, wickettree.ITreeProvider<T> provider, org.apache.wicket.model.IModel<Set<T>> state)
           
 
Method Summary
 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()
           
 org.apache.wicket.model.IModel<Set<T>> getModel()
           
 Set<T> getModelObject()
           
 wickettree.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()
          Overriden to detach the ITreeProvider.
 AbstractTree<T> setItemReuseStrategy(org.apache.wicket.markup.repeater.IItemReuseStrategy strategy)
          Sets the item reuse strategy.
 AbstractTree<T> setModel(org.apache.wicket.model.IModel<Set<T>> state)
           
 AbstractTree<T> setModelObject(Set<T> state)
           
 void updateBranch(T t, org.apache.wicket.ajax.AjaxRequestTarget target)
          Convenience method to update a single branch on an AjaxRequestTarget.
 void updateNode(T t, org.apache.wicket.ajax.AjaxRequestTarget target)
          Convenience method to update a single node on an AjaxRequestTarget.
 
Methods inherited from class org.apache.wicket.markup.html.panel.Panel
newMarkupSourcingStrategy
 
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getWebPage, getWebRequest
 
Methods inherited from class org.apache.wicket.MarkupContainer
add, addOrReplace, autoAdd, contains, get, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, hasAssociatedMarkup, internalAdd, internalInitialize, iterator, iterator, onAfterRenderChildren, onComponentTagBody, onMarkupAttached, onRender, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, swap, toString, toString, visitChildren, visitChildren, visitChildren, visitChildren
 
Methods inherited from class org.apache.wicket.Component
add, addStateChange, afterRender, beforeRender, canCallListenerInterface, canCallListenerInterface, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, configure, continueToOriginalDestination, 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, getFeedbackMessage, 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, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isRenderAllowed, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, locateMarkupStream, markRendering, modelChanged, modelChanging, onAfterRender, onBeforeRender, onComponentTag, onConfigure, onEvent, onInitialize, onModelChanged, onModelChanging, onRemove, prepareForRender, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, 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, urlFor, urlFor, visitParents, warn, wrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AbstractTree

protected AbstractTree(String id,
                       wickettree.ITreeProvider<T> provider)

AbstractTree

protected AbstractTree(String id,
                       wickettree.ITreeProvider<T> provider,
                       org.apache.wicket.model.IModel<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 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

getProvider

public wickettree.ITreeProvider<T> getProvider()
Get the provider of the tree nodes.

Returns:
provider

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

newModel

protected org.apache.wicket.model.IModel<Set<T>> newModel()
Factory method for a model, by default creates a model containing a ProviderSubset.


getModel

public org.apache.wicket.model.IModel<Set<T>> getModel()

getModelObject

public Set<T> getModelObject()

setModel

public AbstractTree<T> setModel(org.apache.wicket.model.IModel<Set<T>> state)

setModelObject

public AbstractTree<T> setModelObject(Set<T> state)

expand

public void expand(T t)
Expand the given node, tries to update the affected branch if the change happens on an AjaxRequestTarget.

See Also:
getModelObject(), Set.add(Object), updateBranch(Object, AjaxRequestTarget)

collapse

public void collapse(T t)
Collapse the given node, tries to update the affected branch if the change happens on an AjaxRequestTarget.

See Also:
getModelObject(), Set.remove(Object), updateBranch(Object, AjaxRequestTarget)

getState

public AbstractTree.State getState(T t)
Get the given node's AbstractTree.State.

See Also:
getModelObject(), Set.contains(Object)

onDetach

protected void onDetach()
Overriden to detach the ITreeProvider.

Overrides:
onDetach in class org.apache.wicket.Component

newNodeComponent

public org.apache.wicket.Component newNodeComponent(String id,
                                                    org.apache.wicket.model.IModel<T> model)
Create a new component for a node.


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.


updateBranch

public void updateBranch(T t,
                         org.apache.wicket.ajax.AjaxRequestTarget target)
Convenience method to update a single branch on an AjaxRequestTarget. Does nothing if the given node is currently not visible or target is null. This default implementation adds this whole component for rendering.

Parameters:
t -
target -

updateNode

public void updateNode(T t,
                       org.apache.wicket.ajax.AjaxRequestTarget target)
Convenience method to update a single node on an AjaxRequestTarget. Does nothing if the given node is currently not visible or target is null.

Parameters:
t -
target -


Copyright © 2013 evolveum. All Rights Reserved.