The goog.ui.PopupBase Class

goog.ui.PopupBase
> goog.events.EventTarget
> goog.Disposable

goog.ui.PopupBase(opt_element, opt_type)

The PopupBase class provides functionality for showing and hiding a generic container element. It also provides the option for hiding the popup element if the user clicks outside the popup or the popup loses focus.

opt_element {Element=}
A DOM element for the popup.
opt_type {goog.ui.PopupBase.Type=}
Type of popup.

.DEBOUNCE_DELAY_MS {number}

A time in ms used to debounce events that happen right after each other. A note about why this is necessary. There are two cases to consider. First case, a popup will usually see a focus event right after it's launched because it's typical for it to be launched in a mouse-down event which will then move focus to the launching button. We don't want to think this is a separate user action moving focus. Second case, a user clicks on the launcher button to close the menu. In that case, we'll close the menu in the focus event and then show it again because of the mouse down event, even though the intention is to just close the menu. This workaround appears to be the least intrusive fix.

The goog.ui.PopupBase.EventType Enum

Constants for event type fired by Popup … more

The goog.ui.PopupBase.Type Enum

Constants for type of Popup … more

.addEventListener(type, handler, opt_capture, opt_handlerScope)

Inherited from goog.events.EventTarget .

Adds an event listener to the event target. The same handler can only be added once per the type. Even if you add the same handler multiple times using the same type then it will only be called once when the event is dispatched. Supported for legacy but use goog.events.listen(src, type, handler) instead.

type {string}
The type of the event to listen for.
handler {Function|Object}
The function to handle the event. The handler can also be an object that implements the handleEvent method which takes the event object as argument.
opt_capture {boolean=}
In DOM-compliant browsers, this determines whether the listener is fired during the capture or bubble phase of the event.
opt_handlerScope {Object=}
Object in whose scope to call the listener.

.addOnDisposeCallback(callback, opt_scope)

Inherited from goog.Disposable .

Invokes a callback function when this object is disposed. Callbacks are invoked in the order in which they were added.

callback {!Function}
The callback function.
opt_scope {Object=}
An optional scope to call the callback in.

.creationStack {string}

Inherited from goog.Disposable .

If monitoring the goog.Disposable instances is enabled, stores the creation stack trace of the Disposable instance.

.dispatchEvent(e)

Inherited from goog.events.EventTarget .

Dispatches an event (or event like object) and calls all listeners listening for events of this type. The type of the event is decided by the type property on the event object. If any of the listeners returns false OR calls preventDefault then this function will return false. If one of the capture listeners calls stopPropagation, then the bubble listeners won't fire.

e {string|Object|goog.events.Event}
Event object.
returns {boolean}
If anyone called preventDefault on the event object (or if any of the handlers returns false this will also return false.

.dispose()

Inherited from goog.Disposable .

Disposes of the object. If the object hasn't already been disposed of, calls {@link #disposeInternal}. Classes that extend {@code goog.Disposable} should override {@link #disposeInternal} in order to delete references to COM objects, DOM nodes, and other disposable objects. Reentrant.

returns {void}
Nothing.

.getAutoHide()

Returns whether the Popup dismisses itself when the user clicks outside of it.

returns {boolean}
Whether the Popup autohides on an external click.

.getAutoHideRegion()

Returns the region inside which the Popup dismisses itself when the user clicks, or null if it's the entire document.

returns {Element}
The DOM element for autohide, or null if it hasn't been set.

.getElement()

Returns the dom element that should be used for the popup.

returns {Element}
The popup element.

.getEnableCrossIframeDismissal()

returns {boolean}
Whether cross iframe dismissal is enabled.

.getHideOnEscape()

returns {boolean}
Whether the Popup autohides on the escape key.

.getLastHideTime()

Returns the time when the popup was last hidden.

returns {number}
time in ms since epoch when the popup was last hidden, or -1 if the popup was never hidden or is currently showing.

.getLastShowTime()

Returns the time when the popup was last shown.

returns {number}
time in ms since epoch when the popup was last shown, or -1 if the popup was never shown.

.getParentEventTarget()

Inherited from goog.events.EventTarget .

Returns the parent of this event target to use for bubbling.

returns {goog.events.EventTarget}
The parent EventTarget or null if there is no parent.

.getType()

returns {goog.ui.PopupBase.Type}
The type of popup this is.

.isDisposed()

Inherited from goog.Disposable .

returns {boolean}
Whether the object has been disposed of.

.isOrWasRecentlyVisible()

Returns whether the popup is currently visible or was visible within about 150 ms ago. This is used by clients to handle a very specific, but common, popup scenario. The button that launches the popup should close the popup on mouse down if the popup is alrady open. The problem is that the popup closes itself during the capture phase of the mouse down and thus the button thinks it's hidden and this should show it again. This method provides a good heuristic for clients. Typically in their event handler they will have code that is: if (menu.isOrWasRecentlyVisible()) { menu.setVisible(false); } else { ... // code to position menu and initialize other state menu.setVisible(true); }

returns {boolean}
Whether the popup is currently visible or was visible within about 150 ms ago.

.isVisible()

Returns whether the popup is currently visible.

returns {boolean}
whether the popup is currently visible.

.registerDisposable(disposable)

Inherited from goog.Disposable .

Associates a disposable object with this object so that they will be disposed together.

disposable {goog.disposable.IDisposable}
that will be disposed when this object is disposed.

.removeEventListener(type, handler, opt_capture, opt_handlerScope)

Inherited from goog.events.EventTarget .

Removes an event listener from the event target. The handler must be the same object as the one added. If the handler has not been added then nothing is done.

type {string}
The type of the event to listen for.
handler {Function|Object}
The function to handle the event. The handler can also be an object that implements the handleEvent method which takes the event object as argument.
opt_capture {boolean=}
In DOM-compliant browsers, this determines whether the listener is fired during the capture or bubble phase of the event.
opt_handlerScope {Object=}
Object in whose scope to call the listener.

.reposition

Repositions the popup according to the current state. Should be overriden by subclases.

.setAutoHide(autoHide)

Sets whether the Popup dismisses itself when the user clicks outside of it.

autoHide {boolean}
Whether to autohide on an external click.

.setAutoHideRegion(element)

Sets the region inside which the Popup dismisses itself when the user clicks.

element {Element}
The DOM element for autohide.

.setElement(elt)

Specifies the dom element that should be used for the popup.

elt {Element}
A DOM element for the popup.

.setEnableCrossIframeDismissal(enable)

Sets whether clicks in other iframes should dismiss this popup. In some cases it should be disabled, because it can cause spurious

enable {boolean}
Whether to enable cross iframe dismissal.

.setHideOnEscape(hideOnEscape)

Sets whether the Popup dismisses itself on the escape key.

hideOnEscape {boolean}
Whether to autohide on the escape key.

.setParentEventTarget(parent)

Inherited from goog.events.EventTarget .

Sets the parent of this event target to use for bubbling.

parent {goog.events.EventTarget?}
Parent EventTarget (null if none).

.setShouldHideAsync(b)

Sets whether the popup should hide itself asynchronously using a timeout instead of synchronously.

b {boolean}
Whether to hide async.

.setTransition(opt_showTransition, opt_hideTransition)

Sets transition animation on showing and hiding the popup.

opt_showTransition {goog.fx.Transition=}
Transition to play on showing the popup.
opt_hideTransition {goog.fx.Transition=}
Transition to play on hiding the popup.

.setType(type)

Specifies the type of popup to use.

type {goog.ui.PopupBase.Type}
Type of popup.

.setVisible(visible)

Sets whether the popup should be visible. After this method returns, isVisible() will always return the new state, even if there is a transition.

visible {boolean}
Desired visibility state.

.shouldHideAsync()

Returns whether the popup should hide itself asynchronously using a timeout instead of synchronously.

returns {boolean}
Whether to hide async.