Package org.zkoss.zul

Class Panel

java.lang.Object
org.zkoss.zk.ui.AbstractComponent
org.zkoss.zk.ui.HtmlBasedComponent
org.zkoss.zul.impl.XulElement
org.zkoss.zul.Panel
All Implemented Interfaces:
Serializable, Cloneable, org.zkoss.zk.ui.Component, org.zkoss.zk.ui.ext.Scope, org.zkoss.zk.ui.sys.ComponentCtrl, Framable

public class Panel extends XulElement implements Framable
Panel is a container that has specific functionality and structural components that make it the perfect building block for application-oriented user interfaces. The Panel contains bottom, top, and foot toolbars, along with separate header, footer and body sections. It also provides built-in collapsible, closable, maximizable, and minimizable behavior, along with a variety of pre-built tool buttons that can be wired up to provide other customized behavior. Panels can be easily embedded into any kind of ZUL component that is allowed to have children or layout component. Panels also provide specific features like float and move. Unlike Window, Panels can only be floated and moved inside its parent node, which is not using zk.setVParent() function at client side. In other words, if Panel's parent node is an relative position, the floated panel is only inside its parent, not the whole page. The second difference of Window is that Panel is not an independent ID space (by implementing IdSpace), so the ID of each child can be used throughout the panel.

Events:
onMove, onOpen, onZIndex, onMaximize, onMinimize, and onClose.

Default getZclass(): z-panel.

Since:
3.5.0
Author:
jumperchen
See Also:
  • 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
     
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    addToolbar(String name, Toolbar toolbar)
    Adds the toolbar of the panel by these names, "tbar", "bbar", and "fbar".
    void
    beforeChildAdded(org.zkoss.zk.ui.Component newChild, org.zkoss.zk.ui.Component refChild)
     
     
    Returns the border.
    Returns the bottom toolbar of this panel.
    Returns the caption of this panel.
    Returns the foot toolbar of this panel.
    int
    Returns the minimum height.
    int
    Returns the minimum width.
    Returns the panelchildren of this panel.
    Returns the title.
    Returns the top toolbar of this panel.
     
    boolean
    insertBefore(org.zkoss.zk.ui.Component newChild, org.zkoss.zk.ui.Component refChild)
     
    boolean
    Returns whether to show a close button on the title bar.
    boolean
    Returns whether to show a toggle button on the title bar.
    boolean
    Returns whether to float the panel to display it inline where it is rendered.
    boolean
    Returns whether to display the maximizing button and allow the user to maximize the panel.
    boolean
    Returns whether the panel is maximized.
    boolean
    Returns whether to display the minimizing button and allow the user to minimize the panel.
    boolean
    Returns whether the panel is minimized.
    boolean
    Returns whether to move the panel to display it inline where it is rendered.
    boolean
    Returns whether this Panel is open.
    boolean
    Returns whether the panel is sizable.
    void
    onChildRemoved(org.zkoss.zk.ui.Component child)
     
    void
    Process the onClose event sent when the close button is pressed.
    protected void
    renderProperties(org.zkoss.zk.ui.sys.ContentRenderer renderer)
     
    void
    service(org.zkoss.zk.au.AuRequest request, boolean everError)
    Processes an AU request.
    void
    setBorder(boolean border)
    Enables or disables the border.
    void
    setBorder(String border)
    Sets the border.
    void
    setClosable(boolean closable)
    Sets whether to show a close button on the title bar.
    void
    setCollapsible(boolean collapsible)
    Sets whether to show a toggle button on the title bar.
    void
    setFloatable(boolean floatable)
    Sets whether to float the panel to display it inline where it is rendered.
    void
    setMaximizable(boolean maximizable)
    Sets whether to display the maximizing button and allow the user to maximize the panel, when a panel is maximized, the button will automatically change to a restore button with the appropriate behavior already built-in that will restore the panel to its previous size.
    void
    setMaximized(boolean maximized)
    Sets whether the panel is maximized, and then the size of the panel will depend on it to show an appropriate size.
    void
    setMinheight(int minheight)
    Sets the minimum height in pixels allowed for this panel.
    void
    setMinimizable(boolean minimizable)
    Sets whether to display the minimizing button and allow the user to minimize the panel.
    void
    setMinimized(boolean minimized)
    Sets whether the panel is minimized.
    void
    setMinwidth(int minwidth)
    Sets the minimum width in pixels allowed for this panel.
    void
    setMovable(boolean movable)
    Sets whether to move the panel to display it inline where it is rendered.
    void
    setOpen(boolean open)
    Opens or closes this Panel.
    void
    setSizable(boolean sizable)
    Sets whether the panel is sizable.
    void
    Sets the title.
    boolean
    setVisible(boolean visible)
     

    Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent

    addSclass, evalCSSFlex, focus, getAction, getClientAction, getDraggable, getDroppable, getExtraCtrl, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getSkeleton, 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, setSkeleton, 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, 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, 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 Details

    • Panel

      public Panel()
  • Method Details

    • isOpen

      public boolean isOpen()
      Returns whether this Panel is open.

      Default: true.

    • setOpen

      public void setOpen(boolean open)
      Opens or closes this Panel.
    • setMovable

      public void setMovable(boolean movable)
      Sets whether to move the panel to display it inline where it is rendered.

      Default: false;

      Note that this method only applied when isFloatable() is true.

    • isMovable

      public boolean isMovable()
      Returns whether to move the panel to display it inline where it is rendered.

      Default: false.

    • isFloatable

      public boolean isFloatable()
      Returns whether to float the panel to display it inline where it is rendered.

      Default: false.

    • setVisible

      public boolean setVisible(boolean visible)
      Specified by:
      setVisible in interface org.zkoss.zk.ui.Component
      Overrides:
      setVisible in class org.zkoss.zk.ui.AbstractComponent
    • setFloatable

      public void setFloatable(boolean floatable)
      Sets whether to float the panel to display it inline where it is rendered.

      Note that by default, setting floatable to true will cause the panel to display at default offsets, which depend on the offsets of the embedded panel from its element to document.body -- because the panel is absolute positioned, the position must be set explicitly by HtmlBasedComponent.setTop(String) and HtmlBasedComponent.setLeft(String). Also, when floatable a panel you should always assign a fixed width, otherwise it will be auto width and will expand to fill to the right edge of the viewport.

    • isMaximized

      public boolean isMaximized()
      Returns whether the panel is maximized.
      Specified by:
      isMaximized in interface Framable
    • setMaximized

      public void setMaximized(boolean maximized)
      Sets whether the panel is maximized, and then the size of the panel will depend on it to show an appropriate size. In other words, if true, the size of the panel will count on the size of its offset parent node whose position is absolute (by isFloatable()) or its parent node. Otherwise, its size will be original size. Note that the maximized effect will run at client's sizing phase not initial phase.

      Default: false.

      Throws:
      org.zkoss.zk.ui.UiException - if isMaximizable() is false.
    • isMaximizable

      public boolean isMaximizable()
      Returns whether to display the maximizing button and allow the user to maximize the panel.

      Default: false.

      Specified by:
      isMaximizable in interface Framable
    • setMaximizable

      public void setMaximizable(boolean maximizable)
      Sets whether to display the maximizing button and allow the user to maximize the panel, when a panel is maximized, the button will automatically change to a restore button with the appropriate behavior already built-in that will restore the panel to its previous size.

      Default: false.

      Note: the maximize button won't be displayed if no title or caption at all.

    • isMinimized

      public boolean isMinimized()
      Returns whether the panel is minimized.

      Default: false.

    • setMinimized

      public void setMinimized(boolean minimized)
      Sets whether the panel is minimized.

      Default: false.

      Throws:
      org.zkoss.zk.ui.UiException - if isMinimizable() is false.
    • isMinimizable

      public boolean isMinimizable()
      Returns whether to display the minimizing button and allow the user to minimize the panel.

      Default: false.

      Specified by:
      isMinimizable in interface Framable
    • setMinimizable

      public void setMinimizable(boolean minimizable)
      Sets whether to display the minimizing button and allow the user to minimize the panel. Note that this button provides no implementation -- the behavior of minimizing a panel is implementation-specific, so the MinimizeEvent event must be handled and a custom minimize behavior implemented for this option to be useful.

      Default: false.

      Note: the maximize button won't be displayed if no title or caption at all.

      See Also:
      • MinimizeEvent
    • isCollapsible

      public boolean isCollapsible()
      Returns whether to show a toggle button on the title bar.

      Default: false.

      Specified by:
      isCollapsible in interface Framable
    • setCollapsible

      public void setCollapsible(boolean collapsible)
      Sets whether to show a toggle button on the title bar.

      Default: false.

      Note: the toggle button won't be displayed if no title or caption at all.

      Note: onOpen event will be sent when you click the toggle button

    • isClosable

      public boolean isClosable()
      Returns whether to show a close button on the title bar.
      Specified by:
      isClosable in interface Framable
    • setClosable

      public void setClosable(boolean closable)
      Sets whether to show a close button on the title bar. If closable, a button is displayed and the onClose event is sent if an user clicks the button.

      Default: false.

      You can intercept the default behavior by either overriding onClose(), or listening the onClose event.

      Note: the close button won't be displayed if no title or caption at all.

    • setMinheight

      public void setMinheight(int minheight)
      Sets the minimum height in pixels allowed for this panel. If negative, 100 is assumed.

      Default: 100.

      Note: Only applies when isSizable() = true.

      Since:
      5.0.0
    • getMinheight

      public int getMinheight()
      Returns the minimum height.

      Default: 100.

      Since:
      5.0.0
    • setMinwidth

      public void setMinwidth(int minwidth)
      Sets the minimum width in pixels allowed for this panel. If negative, 200 is assumed.

      Default: 200.

      Note: Only applies when isSizable() = true.

      Since:
      5.0.0
    • getMinwidth

      public int getMinwidth()
      Returns the minimum width.

      Default: 200.

      Since:
      5.0.0
    • isSizable

      public boolean isSizable()
      Returns whether the panel is sizable.
      Since:
      5.0.0
    • setSizable

      public void setSizable(boolean sizable)
      Sets whether the panel is sizable. If true, an user can drag the border to change the panel width.

      Default: false.

      Since:
      5.0.0
    • getCaption

      public Caption getCaption()
      Returns the caption of this panel.
    • getBorder

      public String getBorder()
      Returns the border.

      Default: "none".

    • setBorder

      public void setBorder(String border)
      Sets the border. Allowed values include none (default), normal. For more information, please refer to ZK Component Reference: Panel.
      Parameters:
      border - the border. If null, "0" or "false", "none" is assumed. If "true", "normal" is assumed (since 5.0.8).
    • setBorder

      public void setBorder(boolean border)
      Enables or disables the border.
      Parameters:
      border - whether to have a border. If true is specified, it is the same as setBorder("normal").
      Since:
      5.0.8
    • getTitle

      public String getTitle()
      Returns the title. Besides this attribute, you could use Caption to define a more sophisticated caption (a.k.a., title).

      If a panel has a caption whose label (LabelElement.getLabel()) is not empty, then this attribute is ignored.

      Default: empty.

      Specified by:
      getTitle in interface Framable
    • setTitle

      public void setTitle(String title)
      Sets the title.
    • addToolbar

      public boolean addToolbar(String name, Toolbar toolbar)
      Adds the toolbar of the panel by these names, "tbar", "bbar", and "fbar". "tbar" is the name of top toolbar, and "bbar" the name of bottom toolbar, and "fbar" the name of foot toolbar.
      Parameters:
      name - "tbar", "bbar", and "fbar".
    • onClose

      public void onClose()
      Process the onClose event sent when the close button is pressed.

      Default: detach itself.

    • getTopToolbar

      public Toolbar getTopToolbar()
      Returns the top toolbar of this panel.
    • getBottomToolbar

      public Toolbar getBottomToolbar()
      Returns the bottom toolbar of this panel.
    • getFootToolbar

      public Toolbar getFootToolbar()
      Returns the foot toolbar of this panel.
    • getPanelchildren

      public Panelchildren getPanelchildren()
      Returns the panelchildren of this panel.
    • getZclass

      public String getZclass()
      Overrides:
      getZclass in class org.zkoss.zk.ui.HtmlBasedComponent
    • beforeChildAdded

      public void beforeChildAdded(org.zkoss.zk.ui.Component newChild, 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 newChild, 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
    • clone

      public 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 IOException
      Overrides:
      renderProperties in class XulElement
      Throws:
      IOException
    • service

      public void service(org.zkoss.zk.au.AuRequest request, boolean everError)
      Processes an AU request.

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

      Specified by:
      service in interface org.zkoss.zk.ui.sys.ComponentCtrl
      Overrides:
      service in class org.zkoss.zk.ui.HtmlBasedComponent
      Since:
      5.0.0