Class TabbedPanel<T extends ITab>

  • 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:
    ITab, Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static String CONTAINER_CSS_CLASS_KEY  
      static String LAST_CSS_CLASS_KEY  
      static String SELECTED_CSS_CLASS_KEY  
      static String TAB_PANEL_ID
      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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected String getLastTabCssClass()  
      int getSelectedTab()  
      protected String getSelectedTabCssClass()  
      protected String getTabContainerCssClass()  
      List<T> getTabs()  
      protected org.apache.wicket.model.IModel<?> initModel()
      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 newTabsContainer​(String id)
      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 onBeforeRender()  
      protected void onDetach()  
      TabbedPanel<T> 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, 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 interface org.apache.wicket.IQueueRegion

        dequeue, newDequeueContext
    • Constructor Detail

      • 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 Detail

      • 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

        protected String 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

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

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

        public final List<TgetTabs()
        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
      • getSelectedTab

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

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