org.apache.wicket.extensions.markup.html.repeater.data.table
Class NavigationToolbar

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 org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractToolbar
                      extended by org.apache.wicket.extensions.markup.html.repeater.data.table.NavigationToolbar
All Implemented Interfaces:
java.io.Serializable, java.lang.Iterable<Component>, IEventSink, IEventSource, IClusterable, IConverterLocator, IHeaderContributor, IRequestableComponent, IHierarchical<Component>
Direct Known Subclasses:
AjaxNavigationToolbar

public class NavigationToolbar
extends AbstractToolbar

Toolbar that displays links used to navigate the pages of the datatable as well as a message about which rows are being displayed and their total number in the data table.

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

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
NavigationToolbar(DataTable<?> table)
          Constructor
 
Method Summary
protected  WebComponent newNavigatorLabel(java.lang.String navigatorId, DataTable<?> table)
          Factory method used to create the navigator label that will be used by the datatable
protected  PagingNavigator newPagingNavigator(java.lang.String navigatorId, DataTable<?> table)
          Factory method used to create the paging navigator that will be used by the datatable
protected  void onConfigure()
          Called once per request on components before they are about to be rendered.
 
Methods inherited from class org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractToolbar
getTable
 
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, 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, initModel, internalOnModelChanged, internalPrepareForRender, internalRenderComponent, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isRenderAllowed, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, locateMarkupStream, markRendering, modelChanged, modelChanging, onAfterRender, onBeforeRender, onComponentTag, onDetach, 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, visitParents, warn, wrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

NavigationToolbar

public NavigationToolbar(DataTable<?> table)
Constructor

Parameters:
table - data table this toolbar will be attached to
Method Detail

newPagingNavigator

protected PagingNavigator newPagingNavigator(java.lang.String navigatorId,
                                             DataTable<?> table)
Factory method used to create the paging navigator that will be used by the datatable

Parameters:
navigatorId - component id the navigator should be created with
table - dataview used by datatable
Returns:
paging navigator that will be used to navigate the data table

newNavigatorLabel

protected WebComponent newNavigatorLabel(java.lang.String navigatorId,
                                         DataTable<?> table)
Factory method used to create the navigator label that will be used by the datatable

Parameters:
navigatorId - component id navigator label should be created with
table - dataview used by datatable
Returns:
navigator label that will be used to navigate the data table

onConfigure

protected void onConfigure()
Called once per request on components before they are about to be rendered. This method should be used to configure such things as visibility and enabled flags.

Overrides must call super.onConfigure(), usually before any other code

NOTE: Component hierarchy should not be modified inside this method, instead it should be done in Component.onBeforeRender()

NOTE: Why this method is preferrable to directly overriding Component.isVisible() and Component.isEnabled()? Because those methods are called multiple times even for processing of a single request. If they contain expensive logic they can slow down the response time of the entire page. Further, overriding those methods directly on form components may lead to inconsistent or unexpected state depending on when those methods are called in the form processing workflow. It is a better practice to push changes to state rather than pull.

NOTE: If component's visibility or another property depends on another component you may call other.configure() followed by other.isVisible() as mentioned in Component.configure() javadoc.

NOTE: Why should Component.onBeforeRender() not be used for this? Because if visibility of a component is toggled inside Component.onBeforeRender() another method needs to be overridden to make sure Component.onBeforeRender() will be invoked on invisible components:

 class MyComponent extends WebComponent
 {
        protected void onBeforeRender()
        {
                setVisible(Math.rand() > 0.5f);
                super.onBeforeRender();
        }
 
        // if this override is forgotten, once invisible component will never become visible
        protected boolean callOnBeforeRenderIfNotVisible()
        {
                return true;
        }
 }
 
VS
 class MyComponent extends WebComponent
 {
        protected void onConfigure()
        {
                super.onConfigure();
                setVisible(Math.rand() > 0.5f);
        }
 }
 

Overrides:
onConfigure in class Component


Copyright © 2006-2011 Apache Software Foundation. All Rights Reserved.