Package org.zkoss.zkmax.zul

## Class GoldenLayout

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

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

      public class GoldenLayout
      extends XulElement

  A docker type layout component. `GoldenPanel` is the only child that could be added to.
  Since:
    8.6.0
  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
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `REGION_EAST` |
    `static java.lang.String` | `REGION_NORTH` |
    `static java.lang.String` | `REGION_SOUTH` |
    `static java.lang.String` | `REGION_STACK` |
    `static java.lang.String` | `REGION_WEST` |
    `static java.lang.String` | `TARGET_ROOT` |

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addPanel​(GoldenPanel goldenPanel, int col, int row, java.lang.String region)` | Adds an GoldenPanel to the region of the GoldenPanel at the specified location.
    `void` | `addPanel​(GoldenPanel goldenPanel, java.lang.String area, java.lang.String region)` | Adds an GoldenPanel to the region of the specified area GoldenPanel.
    `void` | `addPanel​(GoldenPanel goldenPanel, GoldenPanel targetGoldenPanel, java.lang.String region)` | Adds an GoldenPanel to the region of the specified area GoldenPanel.
    `void` | `addPanelToRoot​(GoldenPanel goldenPanel, java.lang.String region)` | Adds an GoldenPanel to the region of the GoldenLayout.
    `void` | `beforeChildAdded​(Component child, Component refChild)` | Default: does nothing.
    `void` | `deletePanels​(java.lang.String area)` | Deletes the GoldenPanels of this name.
    `java.lang.String` | `getAreas()` | Gets the current areas template as String.
    `protected java.util.List<java.util.List<java.lang.String>>` | `getAreasMatrix()` |
    `java.util.Set<java.lang.String>` | `getAreasNames()` |
    `java.lang.Integer` | `getColumnsSize()` |
    `java.lang.String` | `getOrient()` |
    `protected GoldenPanel` | `getPanel​(int col, int row)` |
    `protected GoldenPanel` | `getPanel​(java.lang.String area)` |
    `java.util.List<GoldenPanel>` | `getPanels​(int col, int row)` | Get the panels on the specified location.
    `java.util.List<GoldenPanel>` | `getPanels​(java.lang.String area)` | Get the GoldenPanels of the specified area name.
    `java.lang.Integer` | `getRowsSize()` |
    `boolean` | `insertBefore​(Component newChild, Component refChild)` | Inserts a child before the reference child.
    `void` | `movePanel​(GoldenPanel goldenPanel, int col, int row, java.lang.String region)` | Moves an existing goldenpanel child of this goldenlayout to a specific location by col and row indexes.
    `void` | `movePanel​(GoldenPanel goldenPanel, java.lang.String area, java.lang.String region)` | Moves an existing goldenpanel child of this goldenlayout to a specific region of an area.
    `void` | `movePanel​(GoldenPanel goldenPanel, GoldenPanel targetGoldenPanel, java.lang.String region)` | Moves an existing goldenpanel child of this goldenlayout to a specific region of an area.
    `void` | `movePanelToRoot​(GoldenPanel goldenPanel, java.lang.String region)` | Moves an GoldenPanel to the region of the GoldenLayout.
    `void` | `onChildAdded​(Component child)` | Default: handles special event listeners.
    `void` | `onCreate​(Event evt)` | Internal use only
    `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` | `setAreas​(java.lang.String areas)` | Sets a matrix-like areas template, supports only on initial rendering.
    `void` | `setOrient​(java.lang.String orient)` | Sets the initial dividing orientation.
    `protected java.lang.String` | `updateInitialMatrix​(GoldenPanel dropTarget, java.lang.String region, java.lang.String area)` |

    - ### 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, evalCSSFlex, focus, getAction, getClientAction, getDraggable, getDroppable, getExtraCtrl, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getStyle, getTabindex, getTabindexInteger, getTooltiptext, getTop, getVflex, getWidth, getZclass, 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, 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, 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

    - #### REGION_NORTH

          public static final java.lang.String REGION_NORTH

      See Also:
        Constant Field Values

    - #### REGION_SOUTH

          public static final java.lang.String REGION_SOUTH

      See Also:
        Constant Field Values

    - #### REGION_EAST

          public static final java.lang.String REGION_EAST

      See Also:
        Constant Field Values

    - #### REGION_WEST

          public static final java.lang.String REGION_WEST

      See Also:
        Constant Field Values

    - #### REGION_STACK

          public static final java.lang.String REGION_STACK

      See Also:
        Constant Field Values

    - #### TARGET_ROOT

          public static final java.lang.String TARGET_ROOT

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### GoldenLayout

          public GoldenLayout()

  - ### Method Detail

    - #### getAreas

          public java.lang.String getAreas()

      Gets the current areas template as String.
      Returns:
        the current areas template as String.

    - #### setAreas

          public void setAreas​(java.lang.String areas)

      Sets a matrix-like areas template, supports only on initial rendering. Notice that areas is only supported for the initial rendering.
      Parameters:
        `areas` - the template of the goldenlayout.

    - #### getOrient

          public java.lang.String getOrient()

      Returns:
        the layout dividing orientation.

    - #### setOrient

          public void setOrient​(java.lang.String orient)

      Sets the initial dividing orientation. vertical: divides to rows to layout vertically first

      horizontal: divides to columns to layout horizontally first

      Parameters:
        `orient` - "vertical" or "horizontal"

    - #### getAreasNames

          public java.util.Set<java.lang.String> getAreasNames()

      Returns:
        the current used areas template names.

    - #### getColumnsSize

          public java.lang.Integer getColumnsSize()

      Returns:
        the size of columns of the areas.

    - #### getRowsSize

          public java.lang.Integer getRowsSize()

      Returns:
        the size of the rows of the areas.

    - #### getPanels

          public java.util.List<GoldenPanel> getPanels​(int col,
                                                       int row)

      Get the panels on the specified location.
      Parameters:
        `col` - the index of column of areas
        `row` - the index of row of areas
      Returns:
        the GoldenPanels that is on this location. Note that if the index is larger than the maximum index, it will be set to the maximum index.

    - #### getPanels

          public java.util.List<GoldenPanel> getPanels​(java.lang.String area)

      Get the GoldenPanels of the specified area name.
      Parameters:
        `area` - of the GoldenPanels
      Returns:
        GoldenPanels that has the specified name.

    - #### getPanel

          protected GoldenPanel getPanel​(int col,
                                         int row)

    - #### getPanel

          protected GoldenPanel getPanel​(java.lang.String area)

    - #### deletePanels

          public void deletePanels​(java.lang.String area)

      Deletes the GoldenPanels of this name.
      Parameters:
        `area` - of the panels to delete.

    - #### addPanel

          public void addPanel​(GoldenPanel goldenPanel,
                               int col,
                               int row,
                               java.lang.String region)

      Adds an GoldenPanel to the region of the GoldenPanel at the specified location. col = -1, or row = -1 means add to the region of the whole GoldenLayout. If no GoldenPanel found at the specified location, will append to the specified region of the whole GoldenLayout. If no region specified, or region not found, will append to region east.
      Parameters:
        `goldenPanel` - the GoldenPanel that will be added.
        `col` - the index of column of areas
        `row` - the index of row of areas
        `region` - north, south, east, west, stack

    - #### addPanel

          public void addPanel​(GoldenPanel goldenPanel,
                               java.lang.String area,
                               java.lang.String region)

      Adds an GoldenPanel to the region of the specified area GoldenPanel. If no GoldenPanel found with the specified area argument, will append to the specified region of the whole GoldenLayout. If no region specified, or region not found, will append to region east.
      Parameters:
        `goldenPanel` - the GoldenPanel that will be added.
        `area` - the area name that will be moved to.
        `region` - north, south, east, west, stack

    - #### addPanel

          public void addPanel​(GoldenPanel goldenPanel,
                               GoldenPanel targetGoldenPanel,
                               java.lang.String region)

      Adds an GoldenPanel to the region of the specified area GoldenPanel. If no region specified, or region not found, will append to region east.
      Parameters:
        `goldenPanel` - the GoldenPanel that will be added.
        `targetGoldenPanel` - the target GoldenPanel to be dropped to.
        `region` - north, south, east, west, stack

    - #### addPanelToRoot

          public void addPanelToRoot​(GoldenPanel goldenPanel,
                                     java.lang.String region)

      Adds an GoldenPanel to the region of the GoldenLayout. This adds the GoldenPanel to the specified region of the whole GoldenLayout.
      Parameters:
        `goldenPanel` - the GoldenPanel that will be added.
        `region` - north, south, east, west

    - #### movePanel

          public void movePanel​(GoldenPanel goldenPanel,
                                int col,
                                int row,
                                java.lang.String region)

      Moves an existing goldenpanel child of this goldenlayout to a specific location by col and row indexes. If no GoldenPanel found at the specified location, will move to the specified region of the whole GoldenLayout. If no region specified, or region not found, will move to region east.
      Parameters:
        `goldenPanel` - the GoldenPanel that will be moved.
        `col` - the col index of the location.
        `row` - the row index of the location.
        `region` - north, south, east, west, stack

    - #### movePanel

          public void movePanel​(GoldenPanel goldenPanel,
                                java.lang.String area,
                                java.lang.String region)

      Moves an existing goldenpanel child of this goldenlayout to a specific region of an area. If no GoldenPanel found with the specified area argument, will move to the specified region of the whole GoldenLayout. If no region specified, or region not found, will move to region east.
      Parameters:
        `goldenPanel` - the GoldenPanel that will be moved.
        `area` - the area name that will be moved to.
        `region` - north, south, east, west, stack

    - #### movePanel

          public void movePanel​(GoldenPanel goldenPanel,
                                GoldenPanel targetGoldenPanel,
                                java.lang.String region)

      Moves an existing goldenpanel child of this goldenlayout to a specific region of an area. If no region specified, or region not found, will move to region east.
      Parameters:
        `goldenPanel` - the GoldenPanel that will be moved.
        `targetGoldenPanel` - the target GoldenPanel to be dropped to.
        `region` - north, south, east, west, stack

    - #### movePanelToRoot

          public void movePanelToRoot​(GoldenPanel goldenPanel,
                                      java.lang.String region)

      Moves an GoldenPanel to the region of the GoldenLayout. This moves the GoldenPanel to the specified region of the whole GoldenLayout.
      Parameters:
        `goldenPanel` -
        `region` -

    - #### getAreasMatrix

          protected java.util.List<java.util.List<java.lang.String>> getAreasMatrix()

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

    - #### onChildAdded

          public void onChildAdded​(Component child)

      Description copied from class: `AbstractComponent`
      Default: handles special event listeners.
      Specified by:
        `onChildAdded` in interface `ComponentCtrl`
      Overrides:
        `onChildAdded` in class `AbstractComponent`
      See Also:
        `ComponentCtrl.onChildAdded(org.zkoss.zk.ui.Component)`

    - #### insertBefore

          public boolean insertBefore​(Component newChild,
                                      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:
        `newChild` - 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.

    - #### onCreate

          public void onCreate​(Event evt)

      Internal use only
      Since:
        8.6.0

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

      Description copied from class: `HtmlBasedComponent`
      Processes an AU request.

      Default: it handles onClick, onDoubleClick, onRightClick onMove, onSize, onZIndex.

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

    - #### updateInitialMatrix

          protected java.lang.String updateInitialMatrix​(GoldenPanel dropTarget,
                                                         java.lang.String region,
                                                         java.lang.String area)