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 aWebPagewhich 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 UrlParametersReceivingBehaviorurlParametersReceivingBehavior-
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 voidonInitialize()protected abstract voidonParameterArrival(IRequestParameters requestParameters, AjaxRequestTarget target)This is where you can grab the URL query and fragment parameters, your site was requested with.voidrenderHead(IHeaderResponse response)protected UrlFragmenturlFragment()Returns aUrlFragmentconnected 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, 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:
onInitializein 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
Mapcreated
-
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-AjaxRequestTargetcan be used for page updating
-
urlFragment
protected UrlFragment urlFragment()
Returns aUrlFragmentconnected to the currentAjaxRequestTarget. Use theUrlFragmentto update the URL fragment in the browser after the current AJAX event.- Returns:
- created
UrlFragmentfor chaining
-
renderHead
public void renderHead(IHeaderResponse response)
- Specified by:
renderHeadin interfaceIHeaderContributor- Overrides:
renderHeadin classComponent
-
-