Package org.zkoss.zul.impl

## Class MeshElement

- java.lang.Object
- - org.zkoss.zk.ui.AbstractComponent
  - - org.zkoss.zk.ui.HtmlBasedComponent
    - - org.zkoss.zul.impl.XulElement
      - - org.zkoss.zul.impl.MeshElement

- All Implemented Interfaces:
    `java.io.Serializable`, `java.lang.Cloneable`, `Component`, `Scope`, `ComponentCtrl`, `Paginated`
  Direct Known Subclasses:
    `Grid`, `Listbox`, `Tree`

      public abstract class MeshElement
      extends XulElement
      implements Paginated

  The fundamental class for mesh elements such as `Grid`, `Listbox`, and `Tree`.
  Since:
    5.0.6
  Author:
    henrichen
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `protected static class` | `MeshElement.InternalPaging` |

    - ### 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
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `CSS_FLEX_AUTO_DISABLED_COUNT` |

    - ### 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
    --- | ---
    `MeshElement()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `checkBeforeSetRows()` | Internal check if there is any use of vflex and height before setRows
    `boolean` | `evalCSSFlex()` | Get whether css flex is enabled or not
    `int` | `getActivePage()` | Returns the active page (starting from 0).
    `int` | `getPageCount()` | Returns the number of pages.
    `int` | `getPageSize()` | Returns the page size, a.k.a., the number rows per page.
    `java.lang.String` | `getPagingPosition()` | Returns how to position the paging of mesh element at the client screen.
    `java.lang.String` | `getSpan()` | Return column span hint of this component.
    `protected abstract boolean` | `isAutohidePaging()` |
    `boolean` | `isAutopaging()` | Returns whether the auto-paging facility is turned on when mold is "paging".
    `boolean` | `isPagingDisabled()` | Returns whether the Paging component of this component is disabled.
    `boolean` | `isSizedByContent()` | Returns whether sizing grid/listbox/tree column width by its content.
    `boolean` | `isSpan()` | Returns whether distributes remaining empty space of this component to ANY column.
    `protected abstract Paginal` | `pgi()` | Returns the instance of the @{link Paginal}
    `protected void` | `renderProperties​(ContentRenderer renderer)` | Renders the content of this component, excluding the enclosing tags and children.
    `void` | `setActivePage​(int pg)` | Sets the active page (starting from 0).
    `void` | `setAutopaging​(boolean autopaging)` | Sets whether the auto-paging facility is turned on when mold is "paging".
    `void` | `setPageSize​(int pgsz)` | Sets the page size, a.k.a., the number rows per page.
    `void` | `setPagingDisabled​(boolean pagingDisabled)` | Sets whether to disable the Paging component of this component
    `void` | `setPagingPosition​(java.lang.String pagingPosition)` | Sets how to position the paging of mesh element at the client screen.
    `void` | `setSizedByContent​(boolean byContent)` | Sets whether sizing grid/listbox/tree column width by its content; it equals set hflex="min" on each column.
    `void` | `setSpan​(boolean span)` | Sets whether distributes remaining empty space of this component to ALL columns proportionally.
    `void` | `setSpan​(java.lang.String span)` | Sets column span hint of this component.

    - ### Methods inherited from class org.zkoss.zul.impl.XulElement

      `clone, 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, focus, getAction, getClientAction, getDraggable, getDroppable, getExtraCtrl, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getStyle, getTabindex, getTabindexInteger, getTooltiptext, getTop, getVflex, getWidth, getZclass, 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, beforeChildAdded, 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, insertBefore, invalidate, isChildable, isDisabledHostChanged, isInitialized, isInvalidated, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onPageAttached, onPageDetached, 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, setMold, 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`

- - ### Field Detail

    - #### CSS_FLEX_AUTO_DISABLED_COUNT

          public static final java.lang.String CSS_FLEX_AUTO_DISABLED_COUNT

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### MeshElement

          public MeshElement()

  - ### Method Detail

    - #### getSpan

          public java.lang.String getSpan()

      Return column span hint of this component.

      Default: null

      Returns:
        column span hint of this component.
      Since:
        5.0.6
      See Also:
        `setSpan(java.lang.String)`

    - #### setSpan

          public void setSpan​(java.lang.String span)

      Sets column span hint of this component.

      String number span indicates how this component distributes remaining empty space to the specified column(0-based). "0" means distribute remaining empty space to the 1st column; "1" means distribute remaining empty space to the 2nd column, etc.. The spanning column will grow to fit the extra remaining space.

      Special span hint with "true" means span ALL columns proportionally per their original widths while null or "false" means NOT spanning any column.

      Default: null. That is, NOT span any column.

      Note span is meaningful only if there is remaining empty space for columns.

      Parameters:
        `span` - the column span hint.
      Since:
        5.0.6
      See Also:
        `getSpan()`, `setSpan(boolean)`

    - #### setSpan

          public void setSpan​(boolean span)

      Sets whether distributes remaining empty space of this component to ALL columns proportionally.

      Default: false. That is, NOT span any column.

      Note span is meaningful only if there is remaining empty space for columns.

      Parameters:
        `span` - whether to span the width of ALL columns to occupy the whole mesh element(grid/listbox/tree).
      Since:
        5.0.5

    - #### isSpan

          public boolean isSpan()

      Returns whether distributes remaining empty space of this component to ANY column.

      Default: false.

      Returns:
        whether distributes remaining empty space of this component to ANY column.
      Since:
        5.0.5
      See Also:
        `getSpan()`, `setSpan(boolean)`, `setSpan(String)`

    - #### setSizedByContent

          public void setSizedByContent​(boolean byContent)

      Sets whether sizing grid/listbox/tree column width by its content; it equals set hflex="min" on each column.

      Default: false.

      Parameters:
        `byContent` -
      Since:
        5.0.0

    - #### isSizedByContent

          public boolean isSizedByContent()

      Returns whether sizing grid/listbox/tree column width by its content. Default is false.
      Since:
        5.0.0
      See Also:
        `setSizedByContent(boolean)`

    - #### setAutopaging

          public void setAutopaging​(boolean autopaging)

      Sets whether the auto-paging facility is turned on when mold is "paging". If it is set to true, the `setPageSize(int)` is ignored; rather, the page size is automatically determined by the height of the Listbox dynamically. Note: Due to performance concern, Autopaging functionality does not support `Detail` components.
      Parameters:
        `autopaging` - true to turn on the auto-paging facility.
      Since:
        5.0.2

    - #### isAutopaging

          public boolean isAutopaging()

      Returns whether the auto-paging facility is turned on when mold is "paging". If it is set to true, the `setPageSize(int)` is ignored; rather, the page size is automatically determined by the height of the Listbox dynamically.
      Returns:
        whether the "autopaging" facility is turned on.
      Since:
        5.0.2

    - #### setPagingPosition

          public void setPagingPosition​(java.lang.String pagingPosition)

      Sets how to position the paging of mesh element at the client screen. It is meaningless if the mold is not in "paging".
      Parameters:
        `pagingPosition` - how to position. It can only be "bottom" (the default), or "top", or "both".
      Since:
        3.0.4

    - #### isAutohidePaging

          protected abstract boolean isAutohidePaging()

    - #### getPagingPosition

          public java.lang.String getPagingPosition()

      Returns how to position the paging of mesh element at the client screen. It is meaningless if the mold is not in "paging".
      Specified by:
        `getPagingPosition` in interface `Paginated`
      Since:
        3.0.4

    - #### pgi

          protected abstract Paginal pgi()

      Returns the instance of the @{link Paginal}

    - #### getPageSize

          public int getPageSize()

      Returns the page size, a.k.a., the number rows per page.
      Throws:
        `java.lang.IllegalStateException` - if `pgi()` returns null, i.e., mold is not "paging" and no external controller is specified.

    - #### setPageSize

          public void setPageSize​(int pgsz)
                           throws WrongValueException

      Sets the page size, a.k.a., the number rows per page.
      Throws:
        `java.lang.IllegalStateException` - if `pgi()` returns null, i.e., mold is not "paging" and no external controller is specified.
        `WrongValueException`

    - #### getPageCount

          public int getPageCount()

      Returns the number of pages. Note: there is at least one page even no item at all.
      Since:
        3.0.4

    - #### getActivePage

          public int getActivePage()

      Returns the active page (starting from 0).
      Since:
        3.0.4

    - #### setActivePage

          public void setActivePage​(int pg)
                             throws WrongValueException

      Sets the active page (starting from 0).
      Throws:
        `WrongValueException`
      Since:
        3.0.4

    - #### isPagingDisabled

          public boolean isPagingDisabled()

      Description copied from interface: `Paginated`
      Returns whether the Paging component of this component is disabled.

      Default: false.

      Specified by:
        `isPagingDisabled` in interface `Paginated`
      Returns:
        whether the paging component of this component is disabled
      Since:
        8.0.3

    - #### setPagingDisabled

          public void setPagingDisabled​(boolean pagingDisabled)

      Sets whether to disable the Paging component of this component
      Specified by:
        `setPagingDisabled` in interface `Paginated`
      Parameters:
        `pagingDisabled` -
      Since:
        8.0.3

    - #### checkBeforeSetRows

          protected void checkBeforeSetRows()
                                     throws UiException

      Internal check if there is any use of vflex and height before setRows
      Throws:
        `UiException`

    - #### renderProperties

          protected void renderProperties​(ContentRenderer renderer)
                                   throws java.io.IOException

      Description copied from class: `HtmlBasedComponent`
      Renders the content of this component, excluding the enclosing tags and children.

      See also ZK Client-side Reference: Property Rendering

      Overrides:
        `renderProperties` in class `XulElement`
      Throws:
        `java.io.IOException`

    - #### evalCSSFlex

          public boolean evalCSSFlex()

      Description copied from class: `HtmlBasedComponent`
      Get whether css flex is enabled or not
      Overrides:
        `evalCSSFlex` in class `HtmlBasedComponent`
      Returns:
        css flex is enabled