Class SideTabbedPanel

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Iterable<org.apache.wicket.Component>, org.apache.wicket.event.IEventSink, org.apache.wicket.event.IEventSource, org.apache.wicket.IConverterLocator, 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

    public class SideTabbedPanel
    extends org.apache.wicket.markup.html.panel.Panel
    This is a drop-in replacement for TabbedPanel, that puts the tabs along the sied.

    SideTabbedPanel component represets a panel with tabs that are used to switch between different content panels inside the SideTabbedPanel 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("first tab")) {
    
       public Panel getPanel(String panelId)
       {
         return new TabPanel1(panelId);
       }
    
     });
    
     tabs.add(new AbstractTab(new Model("second tab")) {
    
       public Panel getPanel(String panelId)
       {
         return new TabPanel2(panelId);
       }
    
     });
    
     add(new SideTabbedPanel("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

    See Also:
    ITab, Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.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_REMOVING_FROM_HIERARCHY, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER
    • Constructor Summary

      Constructors 
      Constructor Description
      SideTabbedPanel​(java.lang.String id, java.util.List tabs)
      Constructor
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int getSelectedTab()  
      protected java.lang.String getTabContainerCssClass()  
      java.util.List getTabs()  
      protected org.apache.wicket.markup.html.WebMarkupContainer newLink​(java.lang.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.Component newTitle​(java.lang.String titleId, org.apache.wicket.model.IModel titleModel, int index)
      Factory method for tab titles.
      protected void onBeforeRender()  
      void setSelectedTab​(int index)
      sets the selected tab
      • Methods inherited from class org.apache.wicket.markup.html.panel.Panel

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

        getWebPage, getWebRequest, getWebResponse, getWebSession
      • Methods inherited from class org.apache.wicket.MarkupContainer

        add, addOrReplace, autoAdd, contains, get, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, internalAdd, internalInitialize, iterator, iterator, onAfterRenderChildren, onComponentTagBody, 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, 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, markRendering, modelChanged, modelChanging, onAfterRender, onComponentTag, onConfigure, 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, visitParents, warn, wrap
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • Field Detail

      • TAB_PANEL_ID

        public static final java.lang.String TAB_PANEL_ID
        id used for child panels
        See Also:
        Constant Field Values
    • Constructor Detail

      • SideTabbedPanel

        public SideTabbedPanel​(java.lang.String id,
                               java.util.List tabs)
        Constructor
        Parameters:
        id - component id
        tabs - list of ITab objects used to represent tabs
    • Method Detail

      • 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.
        Returns:
        new loop item
      • onBeforeRender

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

        protected java.lang.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
      • getTabs

        public final java.util.List 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​(java.lang.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​(java.lang.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
      • setSelectedTab

        public void setSelectedTab​(int index)
        sets the selected tab
        Parameters:
        index - index of the tab to select