Module org.apache.wicket.extensions
Class TabbedPanel<T extends 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
org.apache.wicket.extensions.markup.html.tabs.TabbedPanel<T>
- Type Parameters:
T- The type of panel to be used for this component's tabs. Just useITabif you have no special needs here.
- All Implemented Interfaces:
Serializable,Iterable<Component>,IEventSink,IEventSource,IFeedbackContributor,IConverterLocator,IMetadataContext<Serializable,,Component> IQueueRegion,IHeaderContributor,IRequestableComponent,org.apache.wicket.util.IHierarchical<Component>,org.apache.wicket.util.io.IClusterable
- Direct Known Subclasses:
AjaxTabbedPanel
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:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final Stringstatic final Stringid used for child panelsFields 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 -
Method Summary
Modifier and TypeMethodDescriptionprotected Stringfinal intprotected Stringprotected StringgetTabs()protected IModel<?>Override of the default initModel behaviour.protected WebMarkupContainerFactory method for links used to switch between tabs.protected LoopItemnewTabContainer(int tabIndex) Generates a loop item used to represent a specific tab'slielement.protected WebMarkupContainerGenerates the container for all tabs.protected ComponentFactory method for tab titles.protected voidprotected voidonDetach()setSelectedTab(int index) sets the selected tabMethods inherited from class org.apache.wicket.markup.html.panel.Panel
getRegionMarkup, newMarkupSourcingStrategyMethods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSessionMethods 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, visitChildrenMethods 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, wrapMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.wicket.IQueueRegion
dequeue, newDequeueContextMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
TAB_PANEL_ID
id used for child panels- See Also:
-
CONTAINER_CSS_CLASS_KEY
-
SELECTED_CSS_CLASS_KEY
-
LAST_CSS_CLASS_KEY
-
-
Constructor Details
-
TabbedPanel
Constructor- Parameters:
id- component idtabs- list of ITab objects used to represent tabs
-
TabbedPanel
Constructor- Parameters:
id- component idtabs- list of ITab objects used to represent tabsmodel- model holding the index of the selected tab
-
-
Method Details
-
initModel
Override of the default initModel behaviour. This component will not use any compound model of a parent. -
newTabsContainer
Generates the container for all tabs. The default container automatically adds the cssclassattribute based on the return value ofgetTabContainerCssClass()- Parameters:
id- container id- Returns:
- container
-
newTabContainer
Generates a loop item used to represent a specific tab'slielement.- Parameters:
tabIndex-- Returns:
- new loop item
-
onBeforeRender
- Overrides:
onBeforeRenderin classComponent
-
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
- Returns:
- the value of css class attribute that will be added to last tab. The default value is
last
-
getSelectedTabCssClass
- Returns:
- the value of css class attribute that will be added to selected tab. The default
value is
selected
-
getTabs
- Returns:
- list of tabs that can be used by the user to add/remove/reorder tabs in the panel
-
newTitle
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 componenttitleModel- model containing tab titleindex- index of tab- Returns:
- title component
-
newLink
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 createdindex- index of the tab that should be activated when this link is clicked. SeesetSelectedTab(int).- Returns:
- created link component
-
setSelectedTab
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
- Returns:
- index of the selected tab
-
onDetach
- Overrides:
onDetachin classMarkupContainer
-