Package org.zkoss.zul

## Class LayoutRegion

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

- All Implemented Interfaces:
    `java.io.Serializable`, `java.lang.Cloneable`, `Component`, `Scope`, `ComponentCtrl`
  Direct Known Subclasses:
    `Center`, `East`, `North`, `South`, `West`

      public abstract class LayoutRegion
      extends XulElement

  A layout region in a border layout.

  Events:
  onOpen, onSize, onSlide.

  ### Support Caption component

  [ZK EE] [Since 6.5.0]
  Since:
    5.0.0
  Author:
    jumperchen
  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
    --- | ---
    `LayoutRegion()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete 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.
    `java.lang.Object` | `clone()` | Clones the component.
    `java.lang.String` | `getBorder()` | Returns the border.
    `Caption` | `getCaption()` | Returns the caption of this region.
    `java.lang.String` | `getCmargins()` | Returns the collapsed margins, which is a list of numbers separated by comma.
    `protected abstract int[]` | `getDefaultCmargins()` | Returns the default collapsed margin.
    `java.lang.String` | `getMargins()` | Returns the margins, which is a list of numbers separated by comma.
    `int` | `getMaxsize()` | Returns the maximum size of the resizing element.
    `int` | `getMinsize()` | Returns the minimum size of the resizing element.
    `abstract java.lang.String` | `getPosition()` | Returns this regions position (north/south/east/west/center).
    `abstract java.lang.String` | `getSize()` | Returns the size of this region.
    `java.lang.String` | `getTitle()` | Returns the title.
    `java.lang.String` | `getZclass()` | Returns the ZK Cascading Style class for this component.
    `boolean` | `insertBefore​(Component child, Component refChild)` | Inserts a child before the reference child.
    `boolean` | `isAutoscroll()` | Returns whether enable overflow scrolling.
    `boolean` | `isClosable()` | Returns whether users can open or close the region.
    `boolean` | `isCollapsible()` | Returns whether set the initial display to collapse.
    `boolean` | `isOpen()` | Returns whether it is open (i.e., not collapsed.
    `boolean` | `isSlidable()` | Returns whether users can slide (preview) the region when clicked on a collapsed region.
    `boolean` | `isSlide()` | Returns whether it is slide down.
    `boolean` | `isSplittable()` | Returns whether enable the split functionality.
    `void` | `onChildRemoved​(Component child)` | Default: handles special event listeners.
    `protected void` | `renderProperties​(ContentRenderer renderer)` | Renders the content of this component, excluding the enclosing tags and children.
    `void` | `service​(AuRequest request, boolean everError)` | Processes an AU request.
    `void` | `setAutoscroll​(boolean autoscroll)` | Sets whether enable overflow scrolling.
    `void` | `setBorder​(java.lang.String border)` | Sets the border (either none or normal).
    `void` | `setClosable​(boolean closable)` | Sets whether users can open or close the region.
    `void` | `setCmargins​(java.lang.String cmargins)` | Sets the collapsed margins for the element "0,1,2,3" that direction is "top,left,right,bottom"
    `void` | `setCollapsible​(boolean collapsible)` | Sets whether set the initial display to collapse.
    `void` | `setMargins​(java.lang.String margins)` | Sets margins for the element "0,1,2,3" that direction is "top,left,right,bottom"
    `void` | `setMaxsize​(int maxsize)` | Sets the maximum size of the resizing element.
    `void` | `setMinsize​(int minsize)` | Sets the minimum size of the resizing element.
    `void` | `setOpen​(boolean open)` | Opens or collapses the splitter.
    `abstract void` | `setSize​(java.lang.String size)` | Sets the size of this region.
    `void` | `setSlidable​(boolean slidable)` | Sets whether users can slide (preview) the region when clicked on a collapsed region.
    `void` | `setSlide​(boolean slide)` | Slides down or up the region.
    `void` | `setSplittable​(boolean splittable)` | Sets whether enable the split functionality.
    `void` | `setTitle​(java.lang.String title)` | Sets the title.

    - ### 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, 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, 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, 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

    - #### LayoutRegion

          public LayoutRegion()

  - ### Method Detail

    - #### getCaption

          public Caption getCaption()

      Returns the caption of this region.
      Since:
        6.5.0

    - #### getBorder

          public java.lang.String getBorder()

      Returns the border.

      The border actually controls what CSS class to use: If border is null, it implies "none".

      If you also specify the CSS class (`HtmlBasedComponent.setClass(java.lang.String)`), it overwrites whatever border you specify here.

      Default: "normal".

    - #### setBorder

          public void setBorder​(java.lang.String border)

      Sets the border (either none or normal).
      Parameters:
        `border` - the border. If null or "0", "none" is assumed.

    - #### getMargins

          public java.lang.String getMargins()

      Returns the margins, which is a list of numbers separated by comma.

      Default: "0,0,0,0".

    - #### setMargins

          public void setMargins​(java.lang.String margins)

      Sets margins for the element "0,1,2,3" that direction is "top,left,right,bottom"

    - #### isAutoscroll

          public boolean isAutoscroll()

      Returns whether enable overflow scrolling.

      Default: false.

    - #### setAutoscroll

          public void setAutoscroll​(boolean autoscroll)

      Sets whether enable overflow scrolling.

    - #### getPosition

          public abstract java.lang.String getPosition()

      Returns this regions position (north/south/east/west/center).
      See Also:
        `Borderlayout.NORTH`, `Borderlayout.SOUTH`, `Borderlayout.EAST`, `Borderlayout.WEST`, `Borderlayout.CENTER`

    - #### setSize

          public abstract void setSize​(java.lang.String size)

      Sets the size of this region. This method is shortcut for `HtmlBasedComponent.setHeight(String)` and `HtmlBasedComponent.setWidth(String)`. If this region is `North` or `South`, this method will invoke `HtmlBasedComponent.setHeight(String)`. If this region is `West` or `East`, this method will invoke `HtmlBasedComponent.setWidth(String)`. Otherwise it will throw a `UnsupportedOperationException`.

    - #### getSize

          public abstract java.lang.String getSize()

      Returns the size of this region. This method is shortcut for `HtmlBasedComponent.getHeight()` and `HtmlBasedComponent.getWidth()`. If this region is `North` or `South`, this method will invoke `HtmlBasedComponent.getHeight()`. If this region is `West` or `East`, this method will invoke `HtmlBasedComponent.getWidth()`. Otherwise it will throw a `UnsupportedOperationException`.

    - #### getTitle

          public java.lang.String getTitle()

      Returns the title.

      Default: null.

    - #### setTitle

          public void setTitle​(java.lang.String title)

      Sets the title.

    - #### isSplittable

          public boolean isSplittable()

      Returns whether enable the split functionality.

      Default: false.

    - #### setSplittable

          public void setSplittable​(boolean splittable)

      Sets whether enable the split functionality.

    - #### setMaxsize

          public void setMaxsize​(int maxsize)

      Sets the maximum size of the resizing element.

    - #### getMaxsize

          public int getMaxsize()

      Returns the maximum size of the resizing element.

      Default: 2000.

    - #### setMinsize

          public void setMinsize​(int minsize)

      Sets the minimum size of the resizing element.

    - #### getMinsize

          public int getMinsize()

      Returns the minimum size of the resizing element.

      Default: 0.

    - #### getCmargins

          public java.lang.String getCmargins()

      Returns the collapsed margins, which is a list of numbers separated by comma.
      See Also:
        `setCmargins(java.lang.String)`, `getDefaultCmargins()`

    - #### setCmargins

          public void setCmargins​(java.lang.String cmargins)

      Sets the collapsed margins for the element "0,1,2,3" that direction is "top,left,right,bottom"

      Default: "3,3,3,3" for center, "0,3,3,0" for east and west, and "3,0,0,3" for north and south.

      See Also:
        `getCmargins()`, `getDefaultCmargins()`

    - #### getDefaultCmargins

          protected abstract int[] getDefaultCmargins()

      Returns the default collapsed margin.
      Since:
        5.0.5

    - #### isCollapsible

          public boolean isCollapsible()

      Returns whether set the initial display to collapse.

      It only applied when `getTitle()` is not null. (since 3.5.0)

      Default: false.

    - #### setCollapsible

          public void setCollapsible​(boolean collapsible)

      Sets whether set the initial display to collapse.

      It only applied when `getTitle()` is not null. (since 3.5.0)

    - #### isOpen

          public boolean isOpen()

      Returns whether it is open (i.e., not collapsed. Meaningful only if `isCollapsible()` is not false).

      Default: true.

    - #### setOpen

          public void setOpen​(boolean open)

      Opens or collapses the splitter. Meaningful only if `isCollapsible()` is not false.

    - #### isSlide

          public boolean isSlide()

      Returns whether it is slide down.

      Default: false.

      Since:
        8.0.2

    - #### setSlide

          public void setSlide​(boolean slide)

      Slides down or up the region. Meaningful only if `isCollapsible()` is not false and `isOpen()` is false.
      Parameters:
        `slide` -
      Since:
        8.0.2

    - #### isSlidable

          public boolean isSlidable()

      Returns whether users can slide (preview) the region when clicked on a collapsed region. In other words, if false, clicking on a collapsed region will open it instead of sliding.

      Default: true.

      Returns:
        whether users can slide (preview) the region.
      Since:
        8.5.2

    - #### setSlidable

          public void setSlidable​(boolean slidable)

      Sets whether users can slide (preview) the region when clicked on a collapsed region. Meaningful only if `isCollapsible()` is true and `isOpen()` is false.
      Parameters:
        `slidable` - whether users can slide (preview) the region.
      Since:
        8.5.2

    - #### isClosable

          public boolean isClosable()

      Returns whether users can open or close the region. In other words, if false, users are no longer allowed to change the open status (by clicking the button on the bar).

      Default: true.

      Returns:
        whether users can open or close the region.
      Since:
        8.5.2

    - #### setClosable

          public void setClosable​(boolean closable)

      Sets whether users can open or close the region. Meaningful only if `isCollapsible()` is true.
      Parameters:
        `closable` - whether users can open or close the region.
      Since:
        8.5.2

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

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

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

    - #### insertBefore

          public boolean insertBefore​(Component child,
                                      Component refChild)

      Description copied from interface: `Component`
      Inserts a child before the reference child.

      You could use `Component.setParent(org.zkoss.zk.ui.Component)` or `Component.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 back `Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)` and/or `Component.removeChild(org.zkoss.zk.ui.Component)`, while `Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)` and `Component.removeChild(org.zkoss.zk.ui.Component)` always calls back `Component.setParent(org.zkoss.zk.ui.Component)`, if the parent is changed. Thus, you don't need to override both `Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)` and `Component.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:
        `insertBefore` in interface `Component`
      Overrides:
        `insertBefore` in class `AbstractComponent`
      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: `AbstractComponent`
      Default: handles special event listeners.
      Specified by:
        `onChildRemoved` in interface `ComponentCtrl`
      Overrides:
        `onChildRemoved` in class `AbstractComponent`
      See Also:
        `ComponentCtrl.onChildRemoved(org.zkoss.zk.ui.Component)`

    - #### 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`

    - #### service

          public void service​(AuRequest request,
                              boolean everError)

      Processes an AU request.

      Default: in addition to what are handled by `service(org.zkoss.zk.au.AuRequest, boolean)`, it also handles onOpen.

      Specified by:
        `service` in interface `ComponentCtrl`
      Overrides:
        `service` in class `HtmlBasedComponent`
        `everError` - whether any error ever occurred before processing this request.
      See Also:
        `AbstractComponent.setAuService(org.zkoss.zk.au.AuService)`

    - #### clone

          public java.lang.Object clone()

      Description copied from interface: `Component`
      Clones the component. All of its children and descendants are cloned. Also, ID are preserved.
      Specified by:
        `clone` in interface `Component`
      Overrides:
        `clone` in class `XulElement`
      Returns:
        the new component. Notice that it doesn't belong to any page, nor desktop. It doesn't have a parent, either.