Package org.zkoss.zul

Class Tabbox

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.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:
    Serialized Form
    • 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
      Tabbox()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void beforeChildAdded​(org.zkoss.zk.ui.Component child, org.zkoss.zk.ui.Component refChild)  
      protected void clearSelectedTab()  
      java.lang.Object clone()  
      TabboxEngine getEngine()
      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.String getOrient()
      Returns the orient.
      java.lang.String getPanelSpacing()
      Returns the spacing between Tabpanel.
      Selectable<java.lang.Object> getSelectableModel()  
      int getSelectedIndex()
      Returns the selected index.
      Tabpanel getSelectedPanel()
      Returns the selected tab panel.
      Tab getSelectedTab()
      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.
      Tabpanels getTabpanels()
      Returns the tabpanels that this tabbox owns.
      Tabs getTabs()
      Returns the tabs that this tabbox owns.
      Toolbar getToolbar()
      Returns the auxiliary toolbar that this tabbox owns.
      java.lang.String getZclass()  
      boolean insertBefore​(org.zkoss.zk.ui.Component child, org.zkoss.zk.ui.Component refChild)  
      boolean isBottom()
      Returns whether it is the bottom orientation.
      boolean isHorizontal()
      Returns whether it is a horizontal tabbox.
      boolean isLeft()
      Returns whether it is the left orientation.
      boolean isMaximalHeight()
      Returns whether to use maximum height of all tabpanel in initial phase.
      boolean isRight()
      Returns whether it is the right orientation.
      boolean isTabscroll()
      Returns whether the tab scrolling is enabled.
      boolean isTop()
      Returns whether it is the top orientation.
      boolean isVertical()
      Returns whether it is a vertical tabbox.
      protected TabboxEngine newTabboxEngine()
      Instantiates the default tabbox engine.
      void onChildRemoved​(org.zkoss.zk.ui.Component child)  
      void onInitRender()  
      void onPageAttached​(org.zkoss.zk.ui.Page newpage, org.zkoss.zk.ui.Page oldpage)  
      void onPageDetached​(org.zkoss.zk.ui.Page page)  
      void postOnInitRender()
      Component internal use only.
      protected void renderProperties​(org.zkoss.zk.ui.sys.ContentRenderer renderer)  
      void setEngine​(TabboxEngine engine)
      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 setMold​(java.lang.String mold)
      Sets the mold.
      void setOrient​(java.lang.String orient)
      Sets the orient.
      void setPanelSpacing​(java.lang.String panelSpacing)
      Sets the spacing between Tabpanel.
      void setSelectedIndex​(int j)
      Sets the selected index.
      void setSelectedPanel​(Tabpanel panel)
      Sets the selected tab panel.
      void setSelectedTab​(Tab tab)
      Sets the selected tab.
      void setTabboxRenderer​(java.lang.String clsnm)
      Sets the renderer by use of a class name.
      void setTabboxRenderer​(TabboxRenderer<?> renderer)
      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, 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
      • Methods inherited from class java.lang.Object

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

      • Tabbox

        public Tabbox()
    • Method Detail

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

        public void setTabboxRenderer​(java.lang.String clsnm)
                               throws java.lang.ClassNotFoundException,
                                      java.lang.NoSuchMethodException,
                                      java.lang.IllegalAccessException,
                                      java.lang.InstantiationException,
                                      java.lang.reflect.InvocationTargetException
        Sets the renderer by use of a class name. It creates an instance automatically. [ZK EE]
        Throws:
        java.lang.ClassNotFoundException
        java.lang.NoSuchMethodException
        java.lang.IllegalAccessException
        java.lang.InstantiationException
        java.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 between Tabpanel. This is used by certain molds, such as accordion.

        Default: null (no spacing).

      • setPanelSpacing

        public void setPanelSpacing​(java.lang.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 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:
        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​(java.lang.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 java.lang.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 java.lang.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 java.io.IOException
        Overrides:
        renderProperties in class XulElement
        Throws:
        java.io.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