Class AjaxLazyLoadPanel<T extends Component>
- All Implemented Interfaces:
Serializable,Iterable<Component>,IEventSink,IEventSource,IFeedbackContributor,IConverterLocator,IMetadataContext<Serializable,,Component> IQueueRegion,IHeaderContributor,IRequestableComponent,org.apache.wicket.util.IHierarchical<Component>,org.apache.wicket.util.io.IClusterable
This panel will wait with adding the content until isContentReady() returns
true. It will poll using an AbstractAjaxTimerBehavior that is installed on the page. When the
component is replaced, the timer stops. When you have multiple AjaxLazyLoadPanels on the
same page, only one timer is used and all panels piggyback on this single timer.
This component will also replace the contents when a normal request comes through and the content is ready.
- Since:
- 1.3
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classThe AJAX timer for updating the AjaxLazyLoadPanel. -
Field Summary
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 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract TgetLazyLoadComponent(String markupId) Factory method for creating the lazily loaded content that replaces the loading component afterisContentReady()returnstrue.Create a loading component shown instead of the actual content until it isisContentReady().Get the preferred interval for updates.protected voidInitialize a timer - default implementation installs anAbstractAjaxTimerBehavioron the page, if it is not already present.protected booleanDetermines that the content we're waiting for is ready, typically used in polling background threads for their result.final booleanisLoaded()Check whether the content is loaded.protected voidInstalls a page-global timer if not already present.protected voidprotected voidonContentLoaded(T content, Optional<AjaxRequestTarget> target) Called after the loading component was replaced with the lazy loaded content.Methods inherited from class org.apache.wicket.markup.html.panel.Panel
getRegionMarkup, newMarkupSourcingStrategyMethods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSessionMethods 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, onDetach, onInitialize, onRender, queue, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, stream, streamChildren, toString, toString, visitChildren, visitChildrenMethods 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, initModel, internalOnModelChanged, internalRenderComponent, internalRenderHead, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isInitialized, isRenderAllowed, isRendering, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, onAfterRender, onComponentTag, 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, wrapMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.wicket.IQueueRegion
dequeue, newDequeueContextMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
AjaxLazyLoadPanel
Constructor- Parameters:
id-
-
AjaxLazyLoadPanel
Constructor- Parameters:
id-model-
-
-
Method Details
-
isContentReady
Determines that the content we're waiting for is ready, typically used in polling background threads for their result. Override this to implement your own check.This default implementation returns
true, i.e. assuming the content is ready immediately.- Returns:
- whether the actual content is ready
-
getLoadingComponent
Create a loading component shown instead of the actual content until it isisContentReady().- Parameters:
id- The components id- Returns:
- The component to show while the real content isn't ready yet
-
getLazyLoadComponent
Factory method for creating the lazily loaded content that replaces the loading component afterisContentReady()returnstrue. You may call setRenderBodyOnly(true) on this component if you need the body only.- Parameters:
markupId- The components markupid.- Returns:
- the content to show after
isContentReady()
-
onContentLoaded
Called after the loading component was replaced with the lazy loaded content.This default implementation does nothing.
- Parameters:
content- The lazy loaded contenttarget- optional Ajax request handler
-
onBeforeRender
Installs a page-global timer if not already present.- Overrides:
onBeforeRenderin classComponent
-
initTimer
Initialize a timer - default implementation installs anAbstractAjaxTimerBehavioron the page, if it is not already present. -
onConfigure
- Overrides:
onConfigurein classComponent
-
getUpdateInterval
Get the preferred interval for updates.Since all LazyLoadingPanels on a page share the same Ajax timer, its update interval is derived from the minimum of all panel's update intervals.
- Returns:
- update interval, must not be
null
-
isLoaded
Check whether the content is loaded.If not loaded already and the content is ready, replaces the lazy loading component with the lazily loaded content.
- Returns:
trueif content is loaded- See Also:
-