org.apache.wicket.markup.repeater
Class AbstractRepeater

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.repeater.AbstractRepeater
All Implemented Interfaces:
java.io.Serializable, IClusterable, IConverterLocator
Direct Known Subclasses:
ListView, Loop, RepeatingView

public abstract class AbstractRepeater
extends WebMarkupContainer

Base class for repeaters. This container renders each of its children using its own markup. The children are collected using renderIterator() method. This class will take care of properly positioning and rewinding its markup stream so before each child renders it points to the beginning of this component. Each child is rendered by a call to renderChild(Component). A typical implementation simply does child.render(getMarkupStream());.

Author:
Igor Vaynberg (ivaynberg)
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.wicket.Component
Component.ComponentModelChange, Component.EnabledChange, Component.IVisitor, Component.VisibilityChange
 
Field Summary
 
Fields inherited from class org.apache.wicket.Component
ENABLE, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED6, FLAG_RESERVED7, FLAG_RESERVED8, PATH_SEPARATOR, RENDER
 
Constructor Summary
AbstractRepeater(java.lang.String id)
          Constructor
AbstractRepeater(java.lang.String id, IModel model)
          Constructor
 
Method Summary
protected  void onBeforeRender()
          Called just before a component is rendered.
protected abstract  void onPopulate()
          Callback to let the repeater know it should populate itself with its items.
protected  void onRender(MarkupStream markupStream)
          Renders all child items in no specified order
protected  void renderChild(Component child)
          Render a single child.
protected abstract  java.util.Iterator renderIterator()
          Returns an iterator for the collection of child components to be rendered.
 
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getMarkupType, getWebPage
 
Methods inherited from class org.apache.wicket.MarkupContainer
add, addOrReplace, autoAdd, autoAdd, contains, findMarkupStream, get, getAssociatedMarkupStream, getMarkupStream, hasAssociatedMarkup, internalAdd, isTransparentResolver, iterator, iterator, newMarkupResourceStream, onComponentTagBody, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderComponentTagBody, replace, setMarkupStream, setModel, size, toString, toString, visitChildren, visitChildren
 
Methods inherited from class org.apache.wicket.Component
add, addStateChange, afterRender, beforeRender, callOnBeforeRenderIfNotVisible, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, continueToOriginalDestination, debug, detach, detachBehaviors, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findPage, findParent, findParentWithAssociatedMarkup, getApplication, getBehaviors, getBehaviors, getBehaviorsRawList, getClassRelativePath, getComponentBorder, getConverter, getConverter, getEscapeModelStrings, getFeedbackMessage, getFlag, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkupAttributes, getMarkupId, getMarkupId, getMetaData, getModel, getModelComparator, getModelObject, getModelObjectAsString, getModelObjectAsString, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageFactory, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getResponse, getSession, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalAttach, internalDetach, internalOnAttach, internalOnDetach, internalOnModelChanged, isActionAuthorized, isAncestorOf, isAttached, isBehaviorAccepted, isEnableAllowed, isEnabled, isIgnoreAttributeModifier, isRenderAllowed, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, locateMarkupStream, markAttached, markRendering, modelChanged, modelChanging, newPage, newPage, onAfterRender, onAttach, onBeginRequest, onComponentTag, onDetach, onEndRequest, onModelChanged, onModelChanging, prepareForRender, redirectToInterceptPage, remove, remove, render, render, renderComponent, renderComponent, renderComponentTag, rendered, renderHead, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, setAuto, setComponentBorder, setEnabled, setEscapeModelStrings, setFlag, setFlag, setIgnoreAttributeModifier, setMarkupId, setMetaData, setModelObject, setOutputMarkupId, setOutputMarkupPlaceholderTag, setRedirect, setRenderBodyOnly, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, 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

AbstractRepeater

public AbstractRepeater(java.lang.String id)
Constructor

Parameters:
id -

AbstractRepeater

public AbstractRepeater(java.lang.String id,
                        IModel model)
Constructor

Parameters:
id -
model -
Method Detail

renderIterator

protected abstract java.util.Iterator renderIterator()
Returns an iterator for the collection of child components to be rendered. Users can override this to change order of rendered children.

Returns:
iterator over child components to be rendered

onRender

protected final void onRender(MarkupStream markupStream)
Renders all child items in no specified order

Overrides:
onRender in class MarkupContainer
Parameters:
markupStream - The markup stream

renderChild

protected void renderChild(Component child)
Render a single child. This method can be overridden to modify how a single child component is rendered.

Parameters:
child - Child component to be rendered

onBeforeRender

protected void onBeforeRender()
Description copied from class: Component
Called just before a component is rendered.

NOTE* If you override this, you *must* call super.onBeforeRender() within your implementation. Because this method is responsible for cascading Component.onBeforeRender() call to its children it is strongly recommended that super call is made at the end of the override.

Overrides:
onBeforeRender in class Component
See Also:
Component.onBeforeRender()

onPopulate

protected abstract void onPopulate()
Callback to let the repeater know it should populate itself with its items.



Copyright © 2004-2010 Apache Software Foundation. All Rights Reserved.