Package org.zkoss.zul

## Class Columns

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

- All Implemented Interfaces:
    `java.io.Serializable`, `java.lang.Cloneable`, `Component`, `Scope`, `ComponentCtrl`

      public class Columns
      extends HeadersElement

  Defines the columns of a grid. Each child of a columns element should be a `Column` element.

  Default `getZclass()`: z-columns.(since 3.5.0)

  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_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
    --- | ---
    `Columns()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `beforeChildAdded​(Component child, Component refChild)` | Default: does nothing.
    `void` | `beforeParentChanged​(Component parent)` | Default: If parent is null, execute the @Destroy method if any.
    `Grid` | `getGrid()` | Returns the grid that it belongs to.
    `java.lang.String` | `getMenupopup()` | Returns the ID of the Menupopup (`Menupopup`) that should appear when the user clicks on the element.
    `<T> T` | `getValue()` | Returns the value.
    `java.lang.String` | `getZclass()` | Returns the ZK Cascading Style class for this component.
    `boolean` | `isColumnsgroup()` | Returns whether to enable grouping of columns with the header context menu.
    `boolean` | `isColumnshide()` | Returns whether to enable hiding of columns with the header context menu.
    `protected void` | `renderProperties​(ContentRenderer renderer)` | Renders the content of this component, excluding the enclosing tags and children.
    `void` | `setColumnsgroup​(boolean columnsgroup)` | Sets whether to enable grouping of columns with the header context menu.
    `void` | `setColumnshide​(boolean columnshide)` | Sets whether to enable hiding of columns with the header context menu.
    `void` | `setHflex​(java.lang.String flex)` | Deprecated. as of release 6.0.0.
    `void` | `setMenupopup​(java.lang.String mpop)` | Sets the ID of the menupopup (`Menupopup`) that should appear when the user clicks on the element of each column.
    `<T> void` | `setValue​(T value)` | Sets the value.
    `void` | `setWidth​(java.lang.String width)` | Deprecated. as of release 6.0.0.

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

      `evalCSSFlex, isSizable, service, setSizable`

    - ### 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, getZindex, getZIndex, removeSclass, removeSclass, setAction, setClass, setClientAction, setDraggable, setDroppable, setFocus, setHeight, setHeight0, setHeightDirectly, setHflex0, setHflexDirectly, setLeft, setLeftDirectly, setRenderdefer, setSclass, setStyle, setTabindex, setTabindex, setTooltiptext, setTop, setTopDirectly, setVflex, setVflex0, setVflexDirectly, 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, 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`

- - ### Constructor Detail

    - #### Columns

          public Columns()

  - ### Method Detail

    - #### getGrid

          public Grid getGrid()

      Returns the grid that it belongs to.

      It is the same as `AbstractComponent.getParent()`.

    - #### setColumnshide

          public void setColumnshide​(boolean columnshide)

      Sets whether to enable hiding of columns with the header context menu.

      Note that it is only applied when `getMenupopup()` is auto.

      Since:
        3.5.0

    - #### isColumnshide

          public boolean isColumnshide()

      Returns whether to enable hiding of columns with the header context menu.

      Default: true.

      Since:
        3.5.0

    - #### setColumnsgroup

          public void setColumnsgroup​(boolean columnsgroup)

      Sets whether to enable grouping of columns with the header context menu.

      Note that it is only applied when `getMenupopup()` is auto.

      Since:
        3.5.0

    - #### isColumnsgroup

          public boolean isColumnsgroup()

      Returns whether to enable grouping of columns with the header context menu.

      Default: true.

      Since:
        3.5.0

    - #### getMenupopup

          public java.lang.String getMenupopup()

      Returns the ID of the Menupopup (`Menupopup`) that should appear when the user clicks on the element.

      Default: none (a default menupopup).

      Since:
        3.5.0

    - #### setMenupopup

          public void setMenupopup​(java.lang.String mpop)

      Sets the ID of the menupopup (`Menupopup`) that should appear when the user clicks on the element of each column.

      An onOpen event is sent to the popup menu if it is going to appear. Therefore, developers can manipulate it dynamically (perhaps based on OpenEvent.getReference) by listening to the onOpen event.

      Note: To simplify the use, it ignores the ID space when locating the component at the client. In other words, it searches for the first component with the specified ID, no matter it is in the same ID space or not.

      If there are two components with the same ID (of course, in different ID spaces), you can specify the UUID with the following format:
      `uuid(comp_uuid)`

      Parameters:
        `mpop` - an ID of the menupopup component, "none", or "auto". "none" is assumed by default, "auto" means the menupopup component is created automatically.
      Since:
        3.5.0
      See Also:
        `setMenupopup(String)`

    - #### 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 `HeadersElement`
      Throws:
        `java.io.IOException`

    - #### getValue

          public <T> T getValue()

      Returns the value.

      Default: null.

      Note: the value is application dependent, you can place whatever value you want.

      Since:
        3.6.0

    - #### setValue

          public <T> void setValue​(T value)

      Sets the value.
      Parameters:
        `value` - the value.

        Note: the value is application dependent, you can place whatever value you want.

      Since:
        3.6.0

    - #### setWidth

          public void setWidth​(java.lang.String width)

      Deprecated.
      as of release 6.0.0. To control the size of Grid related components, please refer to `Grid` and `Column` instead.
      Description copied from class: `HtmlBasedComponent`
      Sets the width. If null, the best fit is used.
      Overrides:
        `setWidth` in class `HtmlBasedComponent`
      See Also:
        `HtmlBasedComponent.setWidthDirectly(java.lang.String)`, `AbstractComponent.disableClientUpdate(boolean)`

    - #### setHflex

          public void setHflex​(java.lang.String flex)

      Deprecated.
      as of release 6.0.0. To control the size of Grid related components, please refer to `Grid` and `Column` instead.
      Description copied from class: `HtmlBasedComponent`
      Sets horizontal flex hint of this component.

      Number flex indicates how this component's container distributes remaining empty space among its children horizontally. Flexible component grow and shrink to fit their given space. Flexible components with larger flex values will be made larger than components with lower flex values, at the ratio determined by all flexible components. The actual flex value is not relevant unless there are other flexible components within the same container. Once the default sizes of components in a container are calculated, the remaining space in the container is divided among the flexible components, according to their flex ratios.

      Specify a flex value of negative value, 0, or "false" has the same effect as leaving the flex attribute out entirely. Specify a flex value of "true" has the same effect as a flex value of 1.

      Special flex hint, "min", indicates that the minimum space shall be given to this flexible component to enclose all of its children components. That is, the flexible component grow and shrink to fit its children components.

      Overrides:
        `setHflex` in class `HtmlBasedComponent`
      Parameters:
        `flex` - horizontal flex hint of this component.
      See Also:
        `HtmlBasedComponent.setVflex(java.lang.String)`, `HtmlBasedComponent.getHflex()`

    - #### getZclass

          public java.lang.String getZclass()

      Description copied from class: `HtmlBasedComponent`
      Returns 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 of `HtmlBasedComponent.getZclass()`. Once it is changed, the default style won't be applied at all. If you want to perform small adjustments, use `HtmlBasedComponent.setSclass(java.lang.String)` instead.

      Overrides:
        `getZclass` in class `HtmlBasedComponent`
      See Also:
        `HtmlBasedComponent.getSclass()`

    - #### beforeParentChanged

          public void beforeParentChanged​(Component parent)

      Description copied from class: `AbstractComponent`
      Default: If parent is null, execute the @Destroy method if any.
      Specified by:
        `beforeParentChanged` in interface `ComponentCtrl`
      Overrides:
        `beforeParentChanged` in class `AbstractComponent`
      Parameters:
        `parent` - the new parent. If null, it means detachment.
      See Also:
        `ComponentCtrl.beforeParentChanged(org.zkoss.zk.ui.Component)`

    - #### beforeChildAdded

          public void beforeChildAdded​(Component child,
                                       Component refChild)

      Description copied from class: `AbstractComponent`
      Default: does nothing.
      Specified by:
        `beforeChildAdded` in interface `ComponentCtrl`
      Overrides:
        `beforeChildAdded` in class `AbstractComponent`
      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)`