Class Tabbox
- java.lang.Object
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Cloneable,Component,Scope,ComponentCtrl
public class Tabbox extends XulElement
A tabbox.Event:
- org.zkoss.zk.ui.event.SelectEvent is sent when user changes the tab.
Mold:
- default
- The default tabbox.
- accordion
- The accordion tabbox.
Toolbaronly works in the horizontal default mold and theisTabscroll()to be true. (since 3.6.3)Default
getZclass(): z-tabbox. (since 3.5.0)Besides creating
TabandTabpanelprogrammatically, you could assign a data model (aListModelto a Tabbox viasetModel(ListModel)and then the tabbox will retrieve data viaListModel.getElementAt(int)when necessary. (since 7.0.0) [ZK EE]Besides assign a list model, you could assign a renderer (a
TabboxRendererinstance) to a Tabbox, such that the Tabbox will use this renderer to render the data returned byListModel.getElementAt(int). If not assigned, the default renderer, which assumes a label per Tab and Tabpanel, is used. In other words, the default renderer adds a label to a Tab and Tabpanel by calling toString against the object returned byListModel.getElementAt(int)(since 7.0.0) [ZK EE]To retrieve what are selected in Tabbox with a
SelectableListModel, you shall useSelectable.getSelection()to get what is currently selected object inListModelrather than usinggetSelectedTab(). That is, you shall operate on the data of theListModelrather than on theTabof theTabboxif you use theSelectableListModel. (since 7.0.0) [ZK EE]Set selection = ((Selectable)getModel()).getSelection();- Author:
- tomyeh
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.zkoss.zk.ui.HtmlBasedComponent
HtmlBasedComponent.ExtraCtrl
-
Nested classes/interfaces inherited from class org.zkoss.zk.ui.AbstractComponent
AbstractComponent.Children, AbstractComponent.ForwardInfo, AbstractComponent.TargetInfo
-
-
Field Summary
-
Fields inherited from class org.zkoss.zk.ui.HtmlBasedComponent
_zclass
-
Fields inherited from interface org.zkoss.zk.ui.Component
APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE
-
Fields inherited from interface org.zkoss.zk.ui.sys.ComponentCtrl
AFTER_CHILD_ADDED, AFTER_CHILD_REMOVED, AFTER_PAGE_ATTACHED, AFTER_PAGE_DETACHED, AFTER_PARENT_CHANGED, CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE
-
-
Constructor Summary
Constructors Constructor Description Tabbox()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbeforeChildAdded(Component child, Component refChild)Default: does nothing.protected voidclearSelectedTab()java.lang.Objectclone()Clones the component.TabboxEnginegetEngine()Returns the implementation tabbox engine.<T> ListModel<T>getModel()Returns the model associated with this selectbox, or null if this selectbox is not associated with any list data model.java.lang.StringgetOrient()Returns the orient.java.lang.StringgetPanelSpacing()Returns the spacing betweenTabpanel.Selectable<java.lang.Object>getSelectableModel()intgetSelectedIndex()Returns the selected index.TabpanelgetSelectedPanel()Returns the selected tab panel.TabgetSelectedTab()Returns the selected tab.<T> TabboxRenderer<T>getTabboxRenderer()Returns the renderer to render each tab and tabpanel, or null if the default renderer is used.TabpanelsgetTabpanels()Returns the tabpanels that this tabbox owns.TabsgetTabs()Returns the tabs that this tabbox owns.ToolbargetToolbar()Returns the auxiliary toolbar that this tabbox owns.java.lang.StringgetZclass()Returns the ZK Cascading Style class for this component.booleaninsertBefore(Component child, Component refChild)Inserts a child before the reference child.booleanisBottom()Returns whether it is the bottom orientation.booleanisHorizontal()Returns whether it is a horizontal tabbox.booleanisLeft()Returns whether it is the left orientation.booleanisMaximalHeight()Returns whether to use maximum height of all tabpanel in initial phase.booleanisRight()Returns whether it is the right orientation.booleanisTabscroll()Returns whether the tab scrolling is enabled.booleanisTop()Returns whether it is the top orientation.booleanisVertical()Returns whether it is a vertical tabbox.protected TabboxEnginenewTabboxEngine()Instantiates the default tabbox engine.voidonChildRemoved(Component child)Default: handles special event listeners.voidonInitRender()voidonPageAttached(Page newpage, Page oldpage)Default: handles special event listeners.voidonPageDetached(Page page)Default: handles special event listeners.voidpostOnInitRender()Component internal use only.protected voidrenderProperties(ContentRenderer renderer)Renders the content of this component, excluding the enclosing tags and children.voidsetEngine(TabboxEngine engine)Sets the tabbox engine forListModelvoidsetMaximalHeight(boolean maximalHeight)Sets whether to use maximum height of all tabpanel in initial phase.voidsetModel(ListModel<?> model)Sets the list model associated with this t.voidsetMold(java.lang.String mold)Sets the mold.voidsetOrient(java.lang.String orient)Sets the orient.voidsetPanelSpacing(java.lang.String panelSpacing)Sets the spacing betweenTabpanel.voidsetSelectedIndex(int j)Sets the selected index.voidsetSelectedPanel(Tabpanel panel)Sets the selected tab panel.voidsetSelectedTab(Tab tab)Sets the selected tab.voidsetTabboxRenderer(java.lang.String clsnm)Sets the renderer by use of a class name.voidsetTabboxRenderer(TabboxRenderer<?> renderer)Sets the renderer which is used to render each tab and tabpanel ifgetModel()is not null.voidsetTabscroll(boolean tabscroll)Sets whether to enable the tab scrolling.-
Methods inherited from class org.zkoss.zul.impl.XulElement
getContext, getCtrlKeys, getPopup, getPropertyAccess, getTooltip, setContext, setContext, setContextAttributes, setCtrlKeys, setPopup, setPopup, setPopupAttributes, setTooltip, setTooltip, setTooltipAttributes
-
Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent
addSclass, evalCSSFlex, focus, getAction, getClientAction, getDraggable, getDroppable, getExtraCtrl, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getStyle, getTabindex, getTabindexInteger, getTooltiptext, getTop, getVflex, getWidth, getZindex, getZIndex, removeSclass, removeSclass, service, setAction, setClass, setClientAction, setDraggable, setDroppable, setFocus, setHeight, setHeight0, setHeightDirectly, setHflex, setHflex0, setHflexDirectly, setLeft, setLeftDirectly, setRenderdefer, setSclass, setStyle, setTabindex, setTabindex, setTooltiptext, setTop, setTopDirectly, setVflex, setVflex0, setVflexDirectly, setWidth, setWidth0, setWidthDirectly, setZclass, setZindex, setZIndex, setZIndexDirectly
-
Methods inherited from class org.zkoss.zk.ui.AbstractComponent
addAnnotation, addCallback, addClientEvent, addEventHandler, addEventListener, addEventListener, addForward, addForward, addForward, addForward, addMoved, addRedrawCallback, addScopeListener, addShadowRoot, addShadowRootBefore, addSharedEventHandlerMap, appendChild, applyProperties, beforeChildRemoved, beforeParentChanged, destroyIndexCacheMap, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableBindingAnnotation, disableClientUpdate, disableHostChanged, enableBindingAnnotation, enableHostChanged, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getAutag, getCallback, getChildren, getClientAttribute, getClientDataAttribute, getClientEvents, getDefaultMold, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getEventListenerMap, getEventListeners, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getForwards, getId, getIndexCacheMap, getLastChild, getMold, getNextSibling, getPage, getParent, getPreviousSibling, getRedrawCallback, getRoot, getShadowFellowIfAny, getShadowRoots, getShadowVariable, getShadowVariable, getShadowVariable0, getSpaceOwner, getSpecialRendererOutput, getStubonly, getSubBindingAnnotationCount, getTemplate, getTemplateNames, getUuid, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasBindingAnnotation, hasFellow, hasFellow, hasSubBindingAnnotation, initIndexCacheMap, invalidate, isChildable, isDisabledHostChanged, isInitialized, isInvalidated, isListenerAvailable, isVisible, onChildAdded, onParentChanged, onWrongValue, query, queryAll, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeCallback, removeChild, removeEventListener, removeForward, removeForward, removeRedrawCallback, removeScopeListener, removeShadowRoot, render, render, render, renderPropertiesOnly, replace, response, response, response, service, sessionDidActivate, sessionWillPassivate, setAttribute, setAttribute, setAttribute, setAuService, setAutag, setClientAttribute, setClientDataAttribute, setDefinition, setDefinition, setId, setPage, setPageBefore, setParent, setStubonly, setStubonly, setSubBindingAnnotationCount, setTemplate, setVisible, setVisibleDirectly, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, updateByClient, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerialize
-
-
-
-
Method Detail
-
getEngine
public TabboxEngine getEngine() throws UiException
Returns the implementation tabbox engine.- Throws:
UiException- if failed to load the engine.- Since:
- 7.0.0
-
setEngine
public void setEngine(TabboxEngine engine)
Sets the tabbox engine forListModel- Since:
- 7.0.0
-
newTabboxEngine
protected TabboxEngine newTabboxEngine() throws UiException
Instantiates the default tabbox engine. It is called, ifsetEngine(org.zkoss.zul.impl.TabboxEngine)is not called with non-null engine.By default, it looks up the library property called org.zkoss.zul.tabbox.engine.class. If found, the value is assumed to be the class name of the tabbox engine (it must implement
TabboxEngine). If not found,UiExceptionis thrown.Derived class might override this method to provide your own default class.
- Throws:
UiException- if failed to instantiate the engine- Since:
- 7.0.0
-
getSelectableModel
public Selectable<java.lang.Object> getSelectableModel()
-
setModel
public void setModel(ListModel<?> model)
Sets the list model associated with this t. If a non-null model is assigned, no matter whether it is the same as the previous, it will always cause re-render. [ZK EE]- Parameters:
model- the list model to associate, or null to dissociate any previous model.- Throws:
UiException- if failed to initialize with the model- Since:
- 7.0.0
-
getTabboxRenderer
public <T> TabboxRenderer<T> getTabboxRenderer()
Returns the renderer to render each tab and tabpanel, or null if the default renderer is used.- Since:
- 7.0.0
-
setTabboxRenderer
public void setTabboxRenderer(TabboxRenderer<?> renderer)
Sets the renderer which is used to render each tab and tabpanel ifgetModel()is not null. [ZK EE]Note: changing a render will not cause the tabbox to re-render. If you want it to re-render, you could assign the same model again (i.e., setModel(null) and than setModel(oldModel)), or fire an
ListDataEventevent.- Parameters:
renderer- the renderer, or null to use the default.- Throws:
UiException- if failed to initialize with the model- Since:
- 7.0.0
-
setTabboxRenderer
public void setTabboxRenderer(java.lang.String clsnm) throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.reflect.InvocationTargetExceptionSets the renderer by use of a class name. It creates an instance automatically. [ZK EE]- Throws:
java.lang.ClassNotFoundExceptionjava.lang.NoSuchMethodExceptionjava.lang.IllegalAccessExceptionjava.lang.InstantiationExceptionjava.lang.reflect.InvocationTargetException- Since:
- 7.0.0
- See Also:
setTabboxRenderer(TabboxRenderer)
-
onInitRender
public void onInitRender()
-
postOnInitRender
public void postOnInitRender()
Component internal use only.- Since:
- 7.0.0
-
getModel
public <T> ListModel<T> getModel()
Returns the model associated with this selectbox, or null if this selectbox is not associated with any list data model.
-
getTabs
public Tabs getTabs()
Returns the tabs that this tabbox owns.
-
getToolbar
public Toolbar getToolbar()
Returns the auxiliary toolbar that this tabbox owns.- Since:
- 3.6.3
-
getTabpanels
public Tabpanels getTabpanels()
Returns the tabpanels that this tabbox owns.
-
isTabscroll
public boolean isTabscroll()
Returns whether the tab scrolling is enabled. Default: true.- Since:
- 3.5.0
-
setTabscroll
public void setTabscroll(boolean tabscroll)
Sets whether to enable the tab scrolling. When enabled, if tab list is wider than tab bar, left, right arrow will appear.- Since:
- 3.5.0
-
isMaximalHeight
public boolean isMaximalHeight()
Returns whether to use maximum height of all tabpanel in initial phase.Default: false.
- Since:
- 7.0.0
-
setMaximalHeight
public void setMaximalHeight(boolean maximalHeight)
Sets whether to use maximum height of all tabpanel in initial phase.The Client ROD feature will be disabled if it is set to true.
- Since:
- 7.0.0
-
getPanelSpacing
public java.lang.String getPanelSpacing()
Returns the spacing betweenTabpanel. This is used by certain molds, such as accordion.Default: null (no spacing).
-
setPanelSpacing
public void setPanelSpacing(java.lang.String panelSpacing)
Sets the spacing betweenTabpanel. This is used by certain molds, such as accordion.
-
getSelectedIndex
public int getSelectedIndex()
Returns the selected index.
-
setSelectedIndex
public void setSelectedIndex(int j)
Sets the selected index.
-
getSelectedPanel
public Tabpanel getSelectedPanel()
Returns the selected tab panel.
-
setSelectedPanel
public void setSelectedPanel(Tabpanel panel)
Sets the selected tab panel.
-
getSelectedTab
public Tab getSelectedTab()
Returns the selected tab.
-
setSelectedTab
public void setSelectedTab(Tab tab)
Sets the selected tab.
-
getOrient
public java.lang.String getOrient()
Returns the orient.Default: "top".
Note: only the default mold supports it (not supported if accordion).
-
setMold
public void setMold(java.lang.String mold)
Sets the mold.- Specified by:
setMoldin interfaceComponent- Overrides:
setMoldin classAbstractComponent- Parameters:
mold- default , accordion and accordion-lite- See Also:
ComponentDefinition
-
setOrient
public void setOrient(java.lang.String orient) throws WrongValueExceptionSets the orient.- Parameters:
orient- either "top", "left", "bottom or "right".- Throws:
WrongValueException- Since:
- 7.0.0 "horizontal" is renamed to "top" and "vertical" is renamed to "left".
-
isHorizontal
public boolean isHorizontal()
Returns whether it is a horizontal tabbox.- Since:
- 3.0.3
-
isTop
public boolean isTop()
Returns whether it is the top orientation.- Since:
- 7.0.0
-
isBottom
public boolean isBottom()
Returns whether it is the bottom orientation.- Since:
- 7.0.0
-
isVertical
public boolean isVertical()
Returns whether it is a vertical tabbox.- Since:
- 3.0.3
-
isLeft
public boolean isLeft()
Returns whether it is the left orientation.- Since:
- 7.0.0
-
isRight
public boolean isRight()
Returns whether it is the right orientation.- Since:
- 7.0.0
-
getZclass
public java.lang.String getZclass()
Description copied from class:HtmlBasedComponentReturns the ZK Cascading Style class for this component. It usually depends on the implementation of the mold (AbstractComponent.getMold()).Default: null (the default value depends on element).
HtmlBasedComponent.setZclass(java.lang.String)) will completely replace the default style of a component. In other words, the default style of a component is associated with the default value ofHtmlBasedComponent.getZclass(). Once it is changed, the default style won't be applied at all. If you want to perform small adjustments, useHtmlBasedComponent.setSclass(java.lang.String)instead.- Overrides:
getZclassin classHtmlBasedComponent- See Also:
HtmlBasedComponent.getSclass()
-
beforeChildAdded
public void beforeChildAdded(Component child, Component refChild)
Description copied from class:AbstractComponentDefault: does nothing.- Specified by:
beforeChildAddedin interfaceComponentCtrl- Overrides:
beforeChildAddedin classAbstractComponent- Parameters:
child- the child to be added (never null).refChild- another child component that the new child will be inserted before it. If null, the new child will be the last child.- See Also:
ComponentCtrl.beforeChildAdded(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
-
insertBefore
public boolean insertBefore(Component child, Component refChild)
Description copied from interface:ComponentInserts a child before the reference child.You could use
Component.setParent(org.zkoss.zk.ui.Component)orComponent.appendChild(org.zkoss.zk.ui.Component)instead of this method, unless you want to control where to put the child.Note:
Component.setParent(org.zkoss.zk.ui.Component)always calls backComponent.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)and/orComponent.removeChild(org.zkoss.zk.ui.Component), whileComponent.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)andComponent.removeChild(org.zkoss.zk.ui.Component)always calls backComponent.setParent(org.zkoss.zk.ui.Component), if the parent is changed. Thus, you don't need to override bothComponent.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)andComponent.setParent(org.zkoss.zk.ui.Component), if you want to customize the behavior.If you would like to monitor if a component is attached or detached from a page, you could register a desktop listener implementing
UiLifeCycle.- Specified by:
insertBeforein interfaceComponent- Overrides:
insertBeforein classAbstractComponent- Parameters:
child- the new child to be inserted.refChild- the child before which you want the new child being inserted. If null, the new child is append to the end.- Returns:
- true if newChild is added successfully or moved; false if it already has the specified child and the order doesn't change.
-
onChildRemoved
public void onChildRemoved(Component child)
Description copied from class:AbstractComponentDefault: handles special event listeners.- Specified by:
onChildRemovedin interfaceComponentCtrl- Overrides:
onChildRemovedin classAbstractComponent- See Also:
ComponentCtrl.onChildRemoved(org.zkoss.zk.ui.Component)
-
clearSelectedTab
protected void clearSelectedTab()
-
clone
public java.lang.Object clone()
Description copied from interface:ComponentClones the component. All of its children and descendants are cloned. Also, ID are preserved.- Specified by:
clonein interfaceComponent- Overrides:
clonein classXulElement- Returns:
- the new component. Notice that it doesn't belong to any page, nor desktop. It doesn't have a parent, either.
-
renderProperties
protected void renderProperties(ContentRenderer renderer) throws java.io.IOException
Description copied from class:HtmlBasedComponentRenders the content of this component, excluding the enclosing tags and children.- Overrides:
renderPropertiesin classXulElement- Throws:
java.io.IOException
-
onPageAttached
public void onPageAttached(Page newpage, Page oldpage)
Description copied from class:AbstractComponentDefault: handles special event listeners.- Specified by:
onPageAttachedin interfaceComponentCtrl- Overrides:
onPageAttachedin classAbstractComponent- Parameters:
newpage- the new page (never null).oldpage- the previous page, if any, or null if it didn't belong to any page.- See Also:
ComponentCtrl.onPageAttached(org.zkoss.zk.ui.Page, org.zkoss.zk.ui.Page)
-
onPageDetached
public void onPageDetached(Page page)
Description copied from class:AbstractComponentDefault: handles special event listeners.- Specified by:
onPageDetachedin interfaceComponentCtrl- Overrides:
onPageDetachedin classAbstractComponent- Parameters:
page- the previous page (never null)- See Also:
ComponentCtrl.onPageDetached(org.zkoss.zk.ui.Page)
-
-