java.lang.Object
org.apache.wicket.Component
org.apache.wicket.MarkupContainer
org.apache.wicket.markup.html.WebMarkupContainer
org.apache.wicket.markup.html.panel.Panel
org.apache.wicket.extensions.markup.html.tabs.TabbedPanel<T>
Type Parameters:
T - The type of panel to be used for this component's tabs. Just use ITab if you have no special needs here.
All Implemented Interfaces:
Serializable, Iterable<org.apache.wicket.Component>, org.apache.wicket.event.IEventSink, org.apache.wicket.event.IEventSource, org.apache.wicket.feedback.IFeedbackContributor, org.apache.wicket.IConverterLocator, org.apache.wicket.IMetadataContext<Serializable,org.apache.wicket.Component>, org.apache.wicket.IQueueRegion, org.apache.wicket.markup.html.IHeaderContributor, org.apache.wicket.request.component.IRequestableComponent, org.apache.wicket.util.IHierarchical<org.apache.wicket.Component>, org.apache.wicket.util.io.IClusterable
Direct Known Subclasses:
AjaxTabbedPanel

public class TabbedPanel<T extends ITab> extends org.apache.wicket.markup.html.panel.Panel
TabbedPanel component represents a panel with tabs that are used to switch between different content panels inside the TabbedPanel panel.

Note: When the currently selected tab is replaced by changing the underlying list of tabs, the change is not picked up unless a call is made to setSelectedTab(int).

Example:

 List tabs=new ArrayList();
 tabs.add(new AbstractTab(new Model<String>("first tab")) {
   public Panel getPanel(String panelId)
   {
     return new TabPanel1(panelId);
   }
 });
 
 tabs.add(new AbstractTab(new Model<String>("second tab")) {
   public Panel getPanel(String panelId)
   {
     return new TabPanel2(panelId);
   }
 });
 
 add(new TabbedPanel("tabs", tabs));
 
 <span wicket:id="tabs" class="tabpanel">[tabbed panel will be here]</span>
 

For a complete example see the component references in wicket-examples project

Author:
Igor Vaynberg (ivaynberg at apache dot org)
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     
    static final String
     
    static final String
     
    static final String
    id used for child panels

    Fields inherited from class org.apache.wicket.markup.html.panel.Panel

    PANEL

    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
    TabbedPanel(String id, List<T> tabs)
    Constructor
    TabbedPanel(String id, List<T> tabs, org.apache.wicket.model.IModel<Integer> model)
    Constructor
  • Method Summary

    Modifier and Type
    Method
    Description
    protected String
     
    final int
     
    protected String
     
    protected String
     
    final List<T>
     
    protected org.apache.wicket.model.IModel<?>
    Override of the default initModel behaviour.
    protected org.apache.wicket.markup.html.WebMarkupContainer
    newLink(String linkId, int index)
    Factory method for links used to switch between tabs.
    protected org.apache.wicket.markup.html.list.LoopItem
    newTabContainer(int tabIndex)
    Generates a loop item used to represent a specific tab's li element.
    protected org.apache.wicket.markup.html.WebMarkupContainer
    Generates the container for all tabs.
    protected org.apache.wicket.Component
    newTitle(String titleId, org.apache.wicket.model.IModel<?> titleModel, int index)
    Factory method for tab titles.
    protected void
     
    protected void
     
    setSelectedTab(int index)
    sets the selected tab

    Methods inherited from class org.apache.wicket.markup.html.panel.Panel

    getRegionMarkup, newMarkupSourcingStrategy

    Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer

    getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSession

    Methods 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, onInitialize, onRender, queue, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, stream, streamChildren, toString, 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, 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, internalOnModelChanged, internalRenderComponent, internalRenderHead, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isInitialized, isRenderAllowed, isRendering, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, onAfterRender, onComponentTag, onConfigure, 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, 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.IQueueRegion

    dequeue, newDequeueContext

    Methods inherited from interface java.lang.Iterable

    forEach, spliterator
  • Field Details

  • Constructor Details

    • TabbedPanel

      public TabbedPanel(String id, List<T> tabs)
      Constructor
      Parameters:
      id - component id
      tabs - list of ITab objects used to represent tabs
    • TabbedPanel

      public TabbedPanel(String id, List<T> tabs, org.apache.wicket.model.IModel<Integer> model)
      Constructor
      Parameters:
      id - component id
      tabs - list of ITab objects used to represent tabs
      model - model holding the index of the selected tab
  • Method Details

    • initModel

      protected org.apache.wicket.model.IModel<?> initModel()
      Override of the default initModel behaviour. This component will not use any compound model of a parent.
      Overrides:
      initModel in class org.apache.wicket.Component
      See Also:
      • Component.initModel()
    • newTabsContainer

      protected org.apache.wicket.markup.html.WebMarkupContainer newTabsContainer(String id)
      Generates the container for all tabs. The default container automatically adds the css class attribute based on the return value of getTabContainerCssClass()
      Parameters:
      id - container id
      Returns:
      container
    • newTabContainer

      protected org.apache.wicket.markup.html.list.LoopItem newTabContainer(int tabIndex)
      Generates a loop item used to represent a specific tab's li element.
      Parameters:
      tabIndex -
      Returns:
      new loop item
    • onBeforeRender

      protected void onBeforeRender()
      Overrides:
      onBeforeRender in class org.apache.wicket.Component
    • getTabContainerCssClass

      Returns:
      the value of css class attribute that will be added to a div containing the tabs. The default value is tab-row
    • getLastTabCssClass

      Returns:
      the value of css class attribute that will be added to last tab. The default value is last
    • getSelectedTabCssClass

      Returns:
      the value of css class attribute that will be added to selected tab. The default value is selected
    • getTabs

      public final List<T> getTabs()
      Returns:
      list of tabs that can be used by the user to add/remove/reorder tabs in the panel
    • newTitle

      protected org.apache.wicket.Component newTitle(String titleId, org.apache.wicket.model.IModel<?> titleModel, int index)
      Factory method for tab titles. Returned component can be anything that can attach to span tags such as a fragment, panel, or a label
      Parameters:
      titleId - id of title component
      titleModel - model containing tab title
      index - index of tab
      Returns:
      title component
    • newLink

      protected org.apache.wicket.markup.html.WebMarkupContainer newLink(String linkId, int index)
      Factory method for links used to switch between tabs. The created component is attached to the following markup. Label component with id: title will be added for you by the tabbed panel.
       <a href="#" wicket:id="link"><span wicket:id="title">[[tab title]]</span></a>
       
      Example implementation:
       protected WebMarkupContainer newLink(String linkId, final int index)
       {
              return new Link(linkId)
              {
                      private static final long serialVersionUID = 1L;
       
                      public void onClick()
                      {
                              setSelectedTab(index);
                      }
              };
       }
       
      Parameters:
      linkId - component id with which the link should be created
      index - index of the tab that should be activated when this link is clicked. See setSelectedTab(int).
      Returns:
      created link component
    • setSelectedTab

      public TabbedPanel<T> setSelectedTab(int index)
      sets the selected tab
      Parameters:
      index - index of the tab to select
      Returns:
      this for chaining
      Throws:
      IndexOutOfBoundsException - if index is not in the range of available tabs
    • getSelectedTab

      public final int getSelectedTab()
      Returns:
      index of the selected tab
    • onDetach

      protected void onDetach()
      Overrides:
      onDetach in class org.apache.wicket.MarkupContainer