Package org.zkoss.zul

Class Tabbox

java.lang.Object
org.zkoss.zk.ui.AbstractComponent
org.zkoss.zk.ui.HtmlBasedComponent
org.zkoss.zul.impl.XulElement
org.zkoss.zul.Tabbox
All Implemented Interfaces:
Serializable, Cloneable, org.zkoss.zk.ui.Component, org.zkoss.zk.ui.ext.Scope, org.zkoss.zk.ui.sys.ComponentCtrl

public class Tabbox extends XulElement
A tabbox.

Event:

  1. org.zkoss.zk.ui.event.SelectEvent is sent when user changes the tab.

Mold:

default
The default tabbox.
accordion
The accordion tabbox.

Toolbar only works in the horizontal default mold and the isTabscroll() to be true. (since 3.6.3)

Default getZclass(): z-tabbox. (since 3.5.0)

Besides creating Tab and Tabpanel programmatically, you could assign a data model (a ListModel to a Tabbox via setModel(ListModel) and then the tabbox will retrieve data via ListModel.getElementAt(int) when necessary. (since 7.0.0) [ZK EE]

Besides assign a list model, you could assign a renderer (a TabboxRenderer instance) to a Tabbox, such that the Tabbox will use this renderer to render the data returned by ListModel.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 by ListModel.getElementAt(int) (since 7.0.0) [ZK EE]

To retrieve what are selected in Tabbox with a Selectable ListModel, you shall use Selectable.getSelection() to get what is currently selected object in ListModel rather than using getSelectedTab(). That is, you shall operate on the data of the ListModel rather than on the Tab of the Tabbox if you use the Selectable ListModel. (since 7.0.0) [ZK EE]


 Set selection = ((Selectable)getModel()).getSelection();
 
Author:
tomyeh
See Also:
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.zkoss.zk.ui.HtmlBasedComponent

    org.zkoss.zk.ui.HtmlBasedComponent.ExtraCtrl

    Nested classes/interfaces inherited from class org.zkoss.zk.ui.AbstractComponent

    org.zkoss.zk.ui.AbstractComponent.Children, org.zkoss.zk.ui.AbstractComponent.ForwardInfo, org.zkoss.zk.ui.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_CLONED, 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
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    beforeChildAdded(org.zkoss.zk.ui.Component child, org.zkoss.zk.ui.Component refChild)
     
    protected void
     
     
    Returns the implementation tabbox engine.
    <T> ListModel<T>
    Returns the model associated with this selectbox, or null if this selectbox is not associated with any list data model.
    Returns the orient.
    Returns the spacing between Tabpanel.
     
    int
    Returns the selected index.
    Returns the selected tab panel.
    Returns the selected tab.
    Returns the renderer to render each tab and tabpanel, or null if the default renderer is used.
    Returns the tabpanels that this tabbox owns.
    Returns the tabs that this tabbox owns.
    Returns the auxiliary toolbar that this tabbox owns.
     
    boolean
    insertBefore(org.zkoss.zk.ui.Component child, org.zkoss.zk.ui.Component refChild)
     
    boolean
    Returns whether it is the bottom orientation.
    boolean
    Returns whether it is a horizontal tabbox.
    boolean
    Returns whether it is the left orientation.
    boolean
    Returns whether to use maximum height of all tabpanel in initial phase.
    boolean
    Returns whether it is the right orientation.
    boolean
    Returns whether the tab scrolling is enabled.
    boolean
    Returns whether it is the top orientation.
    boolean
    Returns whether it is a vertical tabbox.
    protected TabboxEngine
    Instantiates the default tabbox engine.
    void
    onChildRemoved(org.zkoss.zk.ui.Component child)
     
    void
     
    void
    onPageAttached(org.zkoss.zk.ui.Page newpage, org.zkoss.zk.ui.Page oldpage)
     
    void
    onPageDetached(org.zkoss.zk.ui.Page page)
     
    void
    Component internal use only.
    protected void
    renderProperties(org.zkoss.zk.ui.sys.ContentRenderer renderer)
     
    void
    Sets the tabbox engine for ListModel
    void
    setMaximalHeight(boolean maximalHeight)
    Sets whether to use maximum height of all tabpanel in initial phase.
    void
    setModel(ListModel<?> model)
    Sets the list model associated with this t.
    void
    Sets the mold.
    void
    setOrient(String orient)
    Sets the orient.
    void
    setPanelSpacing(String panelSpacing)
    Sets the spacing between Tabpanel.
    void
    Sets the selected index.
    void
    Sets the selected tab panel.
    void
    Sets the selected tab.
    void
    Sets the renderer by use of a class name.
    void
    Sets the renderer which is used to render each tab and tabpanel if getModel() is not null.
    void
    setTabscroll(boolean tabscroll)
    Sets whether to enable the tab scrolling.

    Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent

    addSclass, evalCSSFlex, focus, getAction, getClientAction, getDraggable, getDroppable, getExtraCtrl, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getSkeleton, 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, setSkeleton, 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

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • Tabbox

      public Tabbox()
  • Method Details

    • getEngine

      public TabboxEngine getEngine() throws org.zkoss.zk.ui.UiException
      Returns the implementation tabbox engine.
      Throws:
      org.zkoss.zk.ui.UiException - if failed to load the engine.
      Since:
      7.0.0
    • setEngine

      public void setEngine(TabboxEngine engine)
      Sets the tabbox engine for ListModel
      Since:
      7.0.0
    • newTabboxEngine

      protected TabboxEngine newTabboxEngine() throws org.zkoss.zk.ui.UiException
      Instantiates the default tabbox engine. It is called, if setEngine(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, UiException is thrown.

      Derived class might override this method to provide your own default class.

      Throws:
      org.zkoss.zk.ui.UiException - if failed to instantiate the engine
      Since:
      7.0.0
    • getSelectableModel

      public Selectable<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:
      org.zkoss.zk.ui.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 if getModel() 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 ListDataEvent event.

      Parameters:
      renderer - the renderer, or null to use the default.
      Throws:
      org.zkoss.zk.ui.UiException - if failed to initialize with the model
      Since:
      7.0.0
    • setTabboxRenderer

      Sets the renderer by use of a class name. It creates an instance automatically. [ZK EE]
      Throws:
      ClassNotFoundException
      NoSuchMethodException
      IllegalAccessException
      InstantiationException
      InvocationTargetException
      Since:
      7.0.0
      See Also:
    • 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 String getPanelSpacing()
      Returns the spacing between Tabpanel. This is used by certain molds, such as accordion.

      Default: null (no spacing).

    • setPanelSpacing

      public void setPanelSpacing(String panelSpacing)
      Sets the spacing between Tabpanel. 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 String getOrient()
      Returns the orient.

      Default: "top".

      Note: only the default mold supports it (not supported if accordion).

    • setMold

      public void setMold(String mold)
      Sets the mold.
      Specified by:
      setMold in interface org.zkoss.zk.ui.Component
      Overrides:
      setMold in class org.zkoss.zk.ui.AbstractComponent
      Parameters:
      mold - default , accordion and accordion-lite
    • setOrient

      public void setOrient(String orient) throws org.zkoss.zk.ui.WrongValueException
      Sets the orient.
      Parameters:
      orient - either "top", "left", "bottom or "right".
      Throws:
      org.zkoss.zk.ui.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 String getZclass()
      Overrides:
      getZclass in class org.zkoss.zk.ui.HtmlBasedComponent
    • beforeChildAdded

      public void beforeChildAdded(org.zkoss.zk.ui.Component child, org.zkoss.zk.ui.Component refChild)
      Specified by:
      beforeChildAdded in interface org.zkoss.zk.ui.sys.ComponentCtrl
      Overrides:
      beforeChildAdded in class org.zkoss.zk.ui.AbstractComponent
    • insertBefore

      public boolean insertBefore(org.zkoss.zk.ui.Component child, org.zkoss.zk.ui.Component refChild)
      Specified by:
      insertBefore in interface org.zkoss.zk.ui.Component
      Overrides:
      insertBefore in class org.zkoss.zk.ui.AbstractComponent
    • onChildRemoved

      public void onChildRemoved(org.zkoss.zk.ui.Component child)
      Specified by:
      onChildRemoved in interface org.zkoss.zk.ui.sys.ComponentCtrl
      Overrides:
      onChildRemoved in class org.zkoss.zk.ui.AbstractComponent
    • clearSelectedTab

      protected void clearSelectedTab()
    • clone

      public Object clone()
      Specified by:
      clone in interface org.zkoss.zk.ui.Component
      Overrides:
      clone in class XulElement
    • renderProperties

      protected void renderProperties(org.zkoss.zk.ui.sys.ContentRenderer renderer) throws IOException
      Overrides:
      renderProperties in class XulElement
      Throws:
      IOException
    • onPageAttached

      public void onPageAttached(org.zkoss.zk.ui.Page newpage, org.zkoss.zk.ui.Page oldpage)
      Specified by:
      onPageAttached in interface org.zkoss.zk.ui.sys.ComponentCtrl
      Overrides:
      onPageAttached in class org.zkoss.zk.ui.AbstractComponent
    • onPageDetached

      public void onPageDetached(org.zkoss.zk.ui.Page page)
      Specified by:
      onPageDetached in interface org.zkoss.zk.ui.sys.ComponentCtrl
      Overrides:
      onPageDetached in class org.zkoss.zk.ui.AbstractComponent