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

java.lang.Object
org.apache.wicket.Component
org.apache.wicket.MarkupContainer
org.apache.wicket.markup.html.WebMarkupContainer
org.apache.wicket.markup.html.panel.Panel
com.evolveum.midpoint.web.component.TabbedPanel<T>
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:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static interface 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected static final String
     
    protected static final String
     
    static final String
     
    static final String
     
    protected 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)
     
    TabbedPanel(String id, List<T> tabs, @Nullable TabbedPanel.RightSideItemProvider rightSideItemProvider)
     
    TabbedPanel(String id, List<T> tabs, org.apache.wicket.model.IModel<Integer> model, @Nullable TabbedPanel.RightSideItemProvider rightSideItemProvider)
     
    TabbedPanel(String id, org.apache.wicket.model.IModel<List<T>> tabs)
    Constructor
    TabbedPanel(String id, org.apache.wicket.model.IModel<List<T>> tabs, org.apache.wicket.model.IModel<Integer> model, TabbedPanel.RightSideItemProvider rightSideItemProvider)
    Constructor
  • Method Summary

    Modifier and Type
    Method
    Description
    protected String
     
    final int
     
    protected String
     
    protected String
     
    final org.apache.wicket.model.IModel<List<T>>
     
    protected org.apache.wicket.model.IModel<?>
    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
    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
     
    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)
     
    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)
    • TabbedPanel

      public TabbedPanel(String id, List<T> tabs, @Nullable @Nullable TabbedPanel.RightSideItemProvider rightSideItemProvider)
    • TabbedPanel

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

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