Package org.zkoss.zul

## Class Popup

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

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

      public class Popup
      extends XulElement

  A container that is displayed as a popup. The popup window does not have any special frame. Popups can be displayed when an element is clicked by assigning the id of the popup to either the `XulElement.setPopup(java.lang.String)`, `XulElement.setContext(java.lang.String)` or `XulElement.setTooltip(java.lang.String)` attribute of the element.

  Default `getZclass()`: z-popup.(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
    Modifier | Constructor | Description
    --- | --- | ---
    `` | `Popup()` |
    `protected` | `Popup​(boolean visible)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `close()` | Closes this popup at the client.
    `java.lang.String` | `getZclass()` | Returns the ZK Cascading Style class for this component.
    `void` | `open​(int x, int y)` | Opens this popup to the specified location at the client.
    `void` | `open​(java.lang.String x, java.lang.String y)` | Opens this popup to the specified location at the client.
    `void` | `open​(Component ref)` | Opens this popup right below the specified component at the client.
    `void` | `open​(Component ref, java.lang.String position)` | Opens this popup right below the specified component at the client.
    `void` | `service​(AuRequest request, boolean everError)` | Processes an AU request.
    `boolean` | `setVisible​(boolean visible)` | Not allowed.

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

      `clone, getContext, getCtrlKeys, getPopup, getPropertyAccess, getTooltip, renderProperties, 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, 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, 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

    - #### Popup

          public Popup()

    - #### Popup

          protected Popup​(boolean visible)

  - ### Method Detail

    - #### open

          public void open​(java.lang.String x,
                           java.lang.String y)

      Opens this popup to the specified location at the client.

      In most cases, the popup is shown automatically when specified in the tooltip, popup and context properties (`XulElement.setTooltip(java.lang.String)`, `XulElement.setPopup(java.lang.String)`, and `XulElement.setContext(java.lang.String)`). However, if you want to show it manually, you can invoke this method directly.

      Parameters:
        `x` - the X coordinate
        `y` - the Y coordinate
      Since:
        3.0.0

    - #### open

          public void open​(int x,
                           int y)

      Opens this popup to the specified location at the client.

      In most cases, the popup is shown automatically when specified in the tooltip, popup and context properties (`XulElement.setTooltip(java.lang.String)`, `XulElement.setPopup(java.lang.String)`, and `XulElement.setContext(java.lang.String)`). However, if you want to show it manually, you can invoke this method directly.

      Parameters:
        `x` - the X coordinate
        `y` - the Y coordinate
      Since:
        3.0.0

    - #### open

          public void open​(Component ref)

      Opens this popup right below the specified component at the client.

      By default the position "at_pointer" is assumed.(since 5.0.0)

      Parameters:
        `ref` - the reference component to position the popup. It cannot be null.
      Since:
        3.0.0
      See Also:
        `open(Component, String)`

    - #### open

          public void open​(Component ref,
                           java.lang.String position)

      Opens this popup right below the specified component at the client.

      In most cases, the popup is shown automatically when specified in the tooltip, popup and context properties (`XulElement.setTooltip(java.lang.String)`, `XulElement.setPopup(java.lang.String)`, and `XulElement.setContext(java.lang.String)`). However, if you want to show it manually, you can invoke this method directly.

      Possible values for the position attribute are:

      - before_start
        the popup appears above the anchor, aligned to the left.
      - before_center
        the popup appears above the anchor, aligned to the center.
      - before_end
        the popup appears above the anchor, aligned to the right.
      - after_start
        the popup appears below the anchor, aligned to the left.
      - after_center
        the popup appears below the anchor, aligned to the center.
      - after_end
        the popup appears below the anchor, aligned to the right.
      - start_before
        the popup appears to the left of the anchor, aligned to the top.
      - start_center
        the popup appears to the left of the anchor, aligned to the middle.
      - start_after
        the popup appears to the left of the anchor, aligned to the bottom.
      - end_before
        the popup appears to the right of the anchor, aligned to the top.
      - end_center
        the popup appears to the right of the anchor, aligned to the middle.
      - end_after
        the popup appears to the right of the anchor, aligned to the bottom.
      - overlap/top_left
        the popup overlaps the anchor, with anchor and popup aligned at top-left.
      - top_center
        the popup overlaps the anchor, with anchor and popup aligned at top-center.
      - overlap_end/top_right
        the popup overlaps the anchor, with anchor and popup aligned at top-right.
      - middle_left
        the popup overlaps the anchor, with anchor and popup aligned at middle-left.
      - middle_center
        the popup overlaps the anchor, with anchor and popup aligned at middle-center.
      - middle_right
        the popup overlaps the anchor, with anchor and popup aligned at middle-right.
      - overlap_before/bottom_left
        the popup overlaps the anchor, with anchor and popup aligned at bottom-left.
      - bottom_center
        the popup overlaps the anchor, with anchor and popup aligned at bottom-center.
      - overlap_after/bottom_right
        the popup overlaps the anchor, with anchor and popup aligned at bottom-right.
      - at_pointer
        the popup appears with the upper-left aligned with the mouse cursor.
      - after_pointer
        the popup appears with the top aligned with the bottom of the mouse cursor, with the left side of the popup at the horizontal position of the mouse cursor.
      Parameters:
        `ref` - the reference component to position the popup. It cannot be null.
        `position` - the descriptions above are for a locale where the UI is displayed left to right and top to bottom. In this case, before is the top, after is the bottom, start is the left and end is the right. For right to left locales, start is the right and end is the left.
      Since:
        3.6.1

    - #### close

          public void close()

      Closes this popup at the client.

      In most cases, the popup is closed automatically when the user clicks outside of the popup.

      Since:
        3.0.0

    - #### setVisible

          public boolean setVisible​(boolean visible)

      Not allowed. Use `open(java.lang.String, java.lang.String)` to open, and `close()` to close.
      Specified by:
        `setVisible` in interface `Component`
      Overrides:
        `setVisible` in class `AbstractComponent`
      Returns:
        the previous visibility

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

    - #### service

          public void service​(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 `ComponentCtrl`
      Overrides:
        `service` in class `HtmlBasedComponent`
        `everError` - whether any error ever occurred before processing this request.
      Since:
        5.0.0
      See Also:
        `AbstractComponent.setAuService(org.zkoss.zk.au.AuService)`