T
- The type of panel to be used for this component's tabs. Just use ITab
if you
have no special needs here.public class TabbedPanel<T extends ITab> extends 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
ITab
,
Serialized FormModifier and Type | Field and 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
|
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 and Description |
---|
TabbedPanel(String id,
List<T> tabs)
Constructor
|
TabbedPanel(String id,
List<T> tabs,
IModel<Integer> model)
Constructor
|
Modifier and Type | Method and Description |
---|---|
protected String |
getLastTabCssClass() |
int |
getSelectedTab() |
protected String |
getSelectedTabCssClass() |
protected String |
getTabContainerCssClass() |
List<T> |
getTabs() |
protected IModel<?> |
initModel()
Override of the default initModel behaviour.
|
protected WebMarkupContainer |
newLink(String linkId,
int index)
Factory method for links used to switch between tabs.
|
protected LoopItem |
newTabContainer(int tabIndex)
Generates a loop item used to represent a specific tab's
li element. |
protected WebMarkupContainer |
newTabsContainer(String id)
Generates the container for all tabs.
|
protected Component |
newTitle(String titleId,
IModel<?> titleModel,
int index)
Factory method for tab titles.
|
protected void |
onBeforeRender()
Called on all visible components before any component is rendered.
|
protected void |
onDetach()
Called to allow a component to detach resources after use.
|
TabbedPanel<T> |
setSelectedTab(int index)
sets the selected tab
|
getRegionMarkup, newMarkupSourcingStrategy
getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSession
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
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, 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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
dequeue, newDequeueContext
forEach, spliterator
public static final String TAB_PANEL_ID
public static final String CONTAINER_CSS_CLASS_KEY
public static final String SELECTED_CSS_CLASS_KEY
public static final String LAST_CSS_CLASS_KEY
public TabbedPanel(String id, List<T> tabs)
id
- component idtabs
- list of ITab objects used to represent tabsprotected IModel<?> initModel()
initModel
in class Component
Component.initModel()
protected WebMarkupContainer newTabsContainer(String id)
class
attribute based on the return value of getTabContainerCssClass()
id
- container idprotected LoopItem newTabContainer(int tabIndex)
li
element.tabIndex
- protected void onBeforeRender()
Component
NOTE: If you override this, you *must* call super.onBeforeRender() within
your implementation.
Because this method is responsible for cascading Component.onBeforeRender()
call to its
children it is strongly recommended that super call is made at the end of the override.
onBeforeRender
in class Component
MarkupContainer.addOrReplace(Component...)
protected String getTabContainerCssClass()
tab-row
protected String getLastTabCssClass()
last
protected String getSelectedTabCssClass()
selected
public final List<T> getTabs()
protected Component newTitle(String titleId, IModel<?> titleModel, int index)
titleId
- id of title componenttitleModel
- model containing tab titleindex
- index of tabprotected WebMarkupContainer newLink(String linkId, int index)
<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); } }; }
linkId
- component id with which the link should be createdindex
- index of the tab that should be activated when this link is clicked. See
setSelectedTab(int)
.public TabbedPanel<T> setSelectedTab(int index)
index
- index of the tab to selectIndexOutOfBoundsException
- if index is not in the range of available tabspublic final int getSelectedTab()
protected void onDetach()
Component
onDetach
in class MarkupContainer
Copyright © 2006–2022 Apache Software Foundation. All rights reserved.