Package org.wicketstuff.urlfragment
Class AsyncUrlFragmentAwarePage
- java.lang.Object
-
- org.apache.wicket.Component
-
- org.apache.wicket.MarkupContainer
-
- org.apache.wicket.Page
-
- org.apache.wicket.markup.html.WebPage
-
- org.wicketstuff.urlfragment.AsyncUrlFragmentAwarePage
-
- All Implemented Interfaces:
Serializable
,Iterable<Component>
,IEventSink
,IEventSource
,IFeedbackContributor
,IConverterLocator
,IMetadataContext<Serializable,Component>
,IQueueRegion
,IHeaderContributor
,IManageablePage
,IRequestableComponent
,IRequestablePage
,IHierarchical<Component>
,IClusterable
- Direct Known Subclasses:
CrawlableAsyncUrlFragmentAwarePage
public abstract class AsyncUrlFragmentAwarePage extends WebPage
This is aWebPage
which will receive the URL query and fragment parameters asynchronously after the initial request.After the initial request this page executes an AJAX call (through a behavior) which invokes
onParameterArrival(IRequestParameters, AjaxRequestTarget)
. This is a typical AJAX event handling method with the difference that you have the URL query and fragment parameters, your site was requested with, available in it. This method serves as your entry point for components depending on URL fragment parameters.Be aware the this page will be rendered on the initial request in order to make the AJAX call. This means, that, before the fragment parameters arrive, your implementation has to have initial state (models) and content and cannot be invisible.
- Author:
- Martin Knopf
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected UrlParametersReceivingBehavior
urlParametersReceivingBehavior
-
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 Constructor Description AsyncUrlFragmentAwarePage()
AsyncUrlFragmentAwarePage(IModel<?> model)
AsyncUrlFragmentAwarePage(PageParameters parameters)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected Map<String,String>
getOptions()
Returns a map of options used for initializing the JavaScript library for reading and writing the URL fragment.protected void
onInitialize()
protected abstract void
onParameterArrival(IRequestParameters requestParameters, AjaxRequestTarget target)
This is where you can grab the URL query and fragment parameters, your site was requested with.void
renderHead(IHeaderResponse response)
protected UrlFragment
urlFragment()
Returns aUrlFragment
connected to the currentAjaxRequestTarget
.-
Methods inherited from class org.apache.wicket.markup.html.WebPage
configureResponse, dirty, getMarkupType, homePageLink, onAfterRender, onRender, renderXmlDecl, reportMissingHead, setHeaders
-
Methods inherited from class org.apache.wicket.Page
componentChanged, componentRendered, detachModels, dirty, getAutoIndex, getId, getPageClass, getPageId, getPageParameters, getPageReference, getRenderCount, getSizeInBytes, getStatelessHint, hierarchyAsString, internalOnModelChanged, isBookmarkable, isErrorPage, isPageStateless, onBeforeRender, onConfigure, onDetach, renderPage, setFreezePageId, setNumericId, setStatelessHint, setWasCreatedBookmarkable, toString, wasCreatedBookmarkable, wasRendered
-
Methods inherited from class org.apache.wicket.MarkupContainer
add, addDequeuedComponent, addOrReplace, autoAdd, canDequeueTag, contains, dequeue, dequeue, dequeuePreamble, findChildComponent, findComponentToDequeue, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getRegionMarkup, internalAdd, internalInitialize, iterator, iterator, newDequeueContext, onComponentTagBody, queue, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, stream, streamChildren, 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, determineVisibility, error, exceptionMessage, fatal, findMarkupStream, findPage, findParent, findParentWithAssociatedMarkup, getAjaxRegionMarkupId, getApplication, getBehaviorById, getBehaviorId, getBehaviors, getBehaviors, getClassRelativePath, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessages, getFlag, 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, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalRenderComponent, internalRenderHead, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isInitialized, isRenderAllowed, isRendering, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, newMarkupSourcingStrategy, onComponentTag, onEvent, onModelChanged, onModelChanging, onReAdd, onRemove, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, 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.page.IManageablePage
detach
-
Methods inherited from interface org.apache.wicket.IQueueRegion
dequeue, getRegionMarkup, newDequeueContext
-
Methods inherited from interface org.apache.wicket.request.component.IRequestableComponent
canCallListenerAfterExpiry, detach, get, getBehaviorById, getBehaviorId, getPage, getPageRelativePath
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Field Detail
-
urlParametersReceivingBehavior
protected UrlParametersReceivingBehavior urlParametersReceivingBehavior
-
-
Constructor Detail
-
AsyncUrlFragmentAwarePage
public AsyncUrlFragmentAwarePage()
-
AsyncUrlFragmentAwarePage
public AsyncUrlFragmentAwarePage(IModel<?> model)
-
AsyncUrlFragmentAwarePage
public AsyncUrlFragmentAwarePage(PageParameters parameters)
-
-
Method Detail
-
onInitialize
protected void onInitialize()
- Overrides:
onInitialize
in classPage
-
getOptions
protected Map<String,String> getOptions()
Returns a map of options used for initializing the JavaScript library for reading and writing the URL fragment.Possible options are:
- fragmentIdentifierSuffix: String after the '#' (standard is '!')
- keyValueDelimiter: a String used to connect fragment parameters keys and values (standard is '&')
- Returns:
- options
Map
created
-
onParameterArrival
protected abstract void onParameterArrival(IRequestParameters requestParameters, AjaxRequestTarget target)
This is where you can grab the URL query and fragment parameters, your site was requested with. You can useurlFragment()
inside this method.- Parameters:
requestParameters
- parameters set on this pagetarget
-AjaxRequestTarget
can be used for page updating
-
urlFragment
protected UrlFragment urlFragment()
Returns aUrlFragment
connected to the currentAjaxRequestTarget
. Use theUrlFragment
to update the URL fragment in the browser after the current AJAX event.- Returns:
- created
UrlFragment
for chaining
-
renderHead
public void renderHead(IHeaderResponse response)
- Specified by:
renderHead
in interfaceIHeaderContributor
- Overrides:
renderHead
in classComponent
-
-