Class TabbedPanel<T extends org.apache.wicket.extensions.markup.html.tabs.ITab>

  • 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, TabbedAssignmentTypePanel

    public class TabbedPanel<T extends org.apache.wicket.extensions.markup.html.tabs.ITab>
    extends org.apache.wicket.markup.html.panel.Panel
    Author:
    lazyman, Igor Vaynberg (ivaynberg)
    See Also:
    Serialized Form
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected String getLastTabCssClass()  
      int getSelectedTab()  
      protected String getSelectedTabCssClass()  
      protected String getTabContainerCssClass()  
      org.apache.wicket.model.IModel<List<T>> getTabs()  
      protected org.apache.wicket.model.IModel<?> initModel()
      Override of the default initModel behaviour.
      protected org.apache.wicket.Component newIcon​(String id, org.apache.wicket.model.IModel<String> iconCssClass)  
      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()  
      protected void onTabChange​(int index)
      Method called after tab was changed - user clicked on link in tab header.
      protected void populateLoopItem​(org.apache.wicket.markup.html.list.LoopItem item)  
      void reloadCountLabels​(org.apache.wicket.ajax.AjaxRequestTarget target)  
      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)
      • TabbedPanel

        public TabbedPanel​(String id,
                           org.apache.wicket.model.IModel<List<T>> tabs)
        Constructor
        Parameters:
        id - component id
        tabs - list of ITab objects used to represent tabs
      • TabbedPanel

        public TabbedPanel​(String id,
                           org.apache.wicket.model.IModel<List<T>> tabs,
                           org.apache.wicket.model.IModel<Integer> model,
                           TabbedPanel.RightSideItemProvider rightSideItemProvider)
        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

      • populateLoopItem

        protected void populateLoopItem​(org.apache.wicket.markup.html.list.LoopItem item)
      • 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
      • getLastTabCssClass

        protected String getLastTabCssClass()
        Returns:
        the value of css class attribute that will be added to last tab. The default value is last
      • 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
      • 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 org.apache.wicket.model.IModel<List<T>> getTabs()
        Returns:
        list of tabs that can be used by the user to add/remove/reorder tabs in the panel
      • newIcon

        protected org.apache.wicket.Component newIcon​(String id,
                                                      org.apache.wicket.model.IModel<String> iconCssClass)
      • 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 tiatle 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
      • onTabChange

        protected void onTabChange​(int index)
        Method called after tab was changed - user clicked on link in tab header.
        Parameters:
        index - Index of new tab.
      • reloadCountLabels

        public void reloadCountLabels​(org.apache.wicket.ajax.AjaxRequestTarget target)