Objectgoog.Disposable
goog.events.EventTarget
goog.ui.Component
goog.ui.Control
content
: goog.ui.ControlContent
Text caption or DOM structure to display as the content of the component (if any).
|
opt_renderer
:
Renderer used to render or decorate the component; defaults to {@link goog.ui.ControlRenderer}.
|
opt_domHelper
:
Optional DOM helper, used for document interaction.
|
![]()
Adds the given class name to the list of classes to be applied to the
component's root element.
Arguments:
|
code » | |||
Returns true if the given element can be decorated by this component.
Overrides {@link goog.ui.Component#canDecorate}.
|
code » | |||
![]()
Creates the control's DOM. Overrides {@link goog.ui.Component#createDom} by
delegating DOM manipulation to the control's renderer.
|
code » | |||
![]()
Decorates the given element with this component. Overrides {@link
goog.ui.Component#decorateInternal} by delegating DOM manipulation
to the control's renderer.
Arguments:
|
code » | |||
![]()
No description.
|
code » | |||
![]()
Adds or removes the given class name to/from the list of classes to be
applied to the component's root element.
|
code » | |||
![]()
Enables or disables mouse event handling on the control.
Arguments:
|
code » | |||
![]()
Configures the component after its DOM has been rendered, and sets up event
handling. Overrides {@link goog.ui.Component#enterDocument}.
|
code » | |||
![]()
Cleans up the component before its DOM is removed from the document, and
removes event handlers. Overrides {@link goog.ui.Component#exitDocument}
by making sure that components that are removed from the document aren't
focusable (i.e. have no tab index).
|
code » | |||
Returns the text caption of the component.
Returns:
Text caption of the component (null if none).
|
code » | |||
![]() goog.ui.ControlContent
Returns the text caption or DOM structure displayed in the component.
Returns:
goog.ui.ControlContent
Text caption or DOM structure comprising the component's contents.
|
code » | |||
Returns the DOM element into which child components are to be rendered,
or null if the control itself hasn't been rendered yet. Overrides
{@link goog.ui.Component#getContentElement} by delegating to the renderer.
Returns:
Element to contain child elements (null if none).
|
code » | |||
Returns any additional class name(s) to be applied to the component's
root element, or null if no extra class names are needed.
|
code » | |||
Returns the DOM element on which the control is listening for keyboard
events (null if none).
Returns:
Element on which the control is listening for key events.
|
code » | |||
Returns the keyboard event handler for this component, lazily created the
first time this method is called. Considered protected; should only be
used within this package and by subclasses.
Returns:
Keyboard event handler for this component.
|
code » | |||
Returns the renderer used by this component to render itself or to decorate
an existing element.
Returns:
Renderer used by the component (undefined if none).
|
code » | |||
Returns the component's state as a bit mask of {@link
goog.ui.Component.State}s.
Returns:
Bit mask representing component state.
|
code » | |||
![]()
Handles blur events on the component's key event target element. Always
deactivates the component. In addition, if the component is focusable,
updates its state and styling to indicate that it no longer has keyboard
focus. Considered protected; should only be used within this package and
by subclasses. Warning: IE dispatches focus and blur events
asynchronously!
Arguments:
|
code » | |||
![]()
Handles dblclick events. Should only be registered if the user agent is
IE. If the component is enabled, performs its associated action by calling
{@link performActionInternal}. This is used to allow more performant
buttons in IE. In IE, no mousedown event is fired when that mousedown will
trigger a dblclick event. Because of this, a user clicking quickly will
only cause ACTION events to fire on every other click. This is a workaround
to generate ACTION events for every click. Unfortunately, this workaround
won't ever trigger the ACTIVE state. This is roughly the same behaviour as
if this were a 'button' element with a listener on mouseup. Considered
protected; should only be used within this package and by subclasses.
Arguments:
|
code » | |||
![]()
Handles focus events on the component's key event target element. If the
component is focusable, updates its state and styling to indicate that it
now has keyboard focus. Considered protected; should only be used within
this package and by subclasses. Warning: IE dispatches focus and
blur events asynchronously!
Arguments:
|
code » | |||
Attempts to handle a keyboard event, if the component is enabled and visible,
by calling {@link handleKeyEventInternal}. Considered protected; should only
be used within this package and by subclasses.
Arguments:
Returns:
Whether the key event was handled.
|
code » | |||
Attempts to handle a keyboard event; returns true if the event was handled,
false otherwise. Considered protected; should only be used within this
package and by subclasses.
Arguments:
Returns:
Whether the key event was handled.
|
code » | |||
![]()
Handles mousedown events. If the component is enabled, highlights and
activates it. If the component isn't configured for keyboard access,
prevents it from receiving keyboard focus. Considered protected; should
only be used within this package andy by subclasses.
Arguments:
|
code » | |||
![]()
Handles mouseout events. Dispatches a LEAVE event; if the event isn't
canceled, and the component supports auto-highlighting, deactivates and
un-highlights the component. Considered protected; should only be used
within this package and by subclasses.
Arguments:
|
code » | |||
![]()
Handles mouseover events. Dispatches an ENTER event; if the event isn't
canceled, the component is enabled, and it supports auto-highlighting,
highlights the component. Considered protected; should only be used
within this package and by subclasses.
Arguments:
|
code » | |||
![]()
Handles mouseup events. If the component is enabled, highlights it. If
the component has previously been activated, performs its associated action
by calling {@link performActionInternal}, then deactivates it. Considered
protected; should only be used within this package and by subclasses.
Arguments:
|
code » | |||
Returns true if the component is in the specified state, false otherwise.
Arguments:
Returns:
Whether the component is in the given state.
|
code » | |||
Returns true if the component is active (pressed), false otherwise.
Returns:
Whether the component is active.
|
code » | |||
Returns true if the control allows text selection within its DOM, false
otherwise. Controls that disallow text selection have the appropriate
unselectable styling applied to their elements. Note that controls hosted
in containers will report that they allow text selection even if their
container disallows text selection.
Returns:
Whether the control allows text selection.
|
code » | |||
Returns true if the component provides default event handling for the state,
false otherwise.
Arguments:
Returns:
Whether the component provides default event handling for the state.
|
code » | |||
Returns true if the component is checked, false otherwise.
Returns:
Whether the component is checked.
|
code » | |||
Returns true if the component is set to dispatch transition events for the
given state, false otherwise.
Arguments:
Returns:
Whether the component dispatches transition events for the state.
|
code » | |||
Returns true if the component is enabled, false otherwise.
Returns:
Whether the component is enabled.
|
code » | |||
Returns true if the component is styled to indicate that it has keyboard
focus, false otherwise. Note that {@code isFocused()} returning true
doesn't guarantee that the component's key event target has keyborad focus,
only that it is styled as such.
Returns:
Whether the component is styled to indicate as having keyboard focus.
|
code » | |||
Returns true if the control is configured to handle its own mouse events,
false otherwise. Controls not hosted in {@link goog.ui.Container}s have
to handle their own mouse events, but controls hosted in containers may
allow their parent to handle mouse events on their behalf. Considered
protected; should only be used within this package and by subclasses.
Returns:
Whether the control handles its own mouse events.
|
code » | |||
Returns true if the component is currently highlighted, false otherwise.
Returns:
Whether the component is highlighted.
|
code » | |||
Returns true if the component is open (expanded), false otherwise.
Returns:
Whether the component is open.
|
code » | |||
Returns true if the control has a parent that is itself disabled, false
otherwise.
Returns:
Whether the component is hosted in a disabled container.
|
code » | |||
Returns true if the component is selected, false otherwise.
Returns:
Whether the component is selected.
|
code » | |||
Returns true if the component supports the specified state, false otherwise.
Arguments:
Returns:
Whether the component supports the given state.
|
code » | |||
Returns true if the transition into or out of the given state is allowed to
proceed, false otherwise. A state transition is allowed under the following
conditions:
|
code » | |||
Returns true if the component's visibility is set to visible, false if
it is set to hidden. A component that is set to hidden is guaranteed
to be hidden from the user, but the reverse isn't necessarily true.
A component may be set to visible but can otherwise be obscured by another
element, rendered off-screen, or hidden using direct CSS manipulation.
Returns:
Whether the component is visible.
|
code » | |||
Performs the appropriate action when the control is activated by the user.
The default implementation first updates the checked and selected state of
controls that support them, then dispatches an ACTION event. Considered
protected; should only be used within this package and by subclasses.
Arguments:
Returns:
Whether the action is allowed to proceed.
|
code » | |||
![]()
Removes the given class name from the list of classes to be applied to
the component's root element.
Arguments:
|
code » | |||
![]()
Activates or deactivates the component. Does nothing if this state
transition is disallowed.
Arguments:
|
code » | |||
![]()
Allows or disallows text selection within the control's DOM.
Arguments:
|
code » | |||
![]()
Enables or disables automatic event handling for the given state(s).
|
code » | |||
![]()
Sets the text caption of the component.
Arguments:
|
code » | |||
![]()
Checks or unchecks the component. Does nothing if this state transition
is disallowed.
Arguments:
|
code » | |||
![]()
Sets the component's content to the given text caption, element, or array of
nodes. (If the argument is an array of nodes, it must be an actual array,
not an array-like object.)
Arguments:
|
code » | |||
![]()
Sets the component's content to the given text caption, element, or array
of nodes. Unlike {@link #setContent}, doesn't modify the component's DOM.
Called by renderers during element decoration. Considered protected; should
only be used within this package and by subclasses.
Arguments:
|
code » | |||
![]()
Enables or disables transition events for the given state(s). Controls
handle state transitions internally by default, and only dispatch state
transition events if explicitly requested to do so by calling this mentod.
|
code » | |||
![]()
Enables or disables the component. Does nothing if this state transition
is disallowed. If the component is both visible and focusable, updates its
focused state and tab index as needed. If the component is being disabled,
ensures that it is also deactivated and un-highlighted first. Note that the
component's enabled/disabled state is "locked" as long as it is hosted in a
{@link goog.ui.Container} that is itself disabled; this is to prevent clients
from accidentally re-enabling a control that is in a disabled container.
Arguments:
|
code » | |||
![]()
Applies or removes styling indicating that the component has keyboard focus.
Note that unlike the other "set" methods, this method is called as a result
of the component's element having received or lost keyboard focus, not the
other way around, so calling {@code setFocused(true)} doesn't guarantee that
the component's key event target has keyboard focus, only that it is styled
as such.
Arguments:
|
code » | |||
![]()
Enables or disables mouse event handling for the control. Containers may
use this method to disable mouse event handling in their child controls.
Considered protected; should only be used within this package and by
subclasses.
Arguments:
|
code » | |||
![]()
Highlights or unhighlights the component. Does nothing if this state
transition is disallowed.
Arguments:
|
code » | |||
![]()
Opens (expands) or closes (collapses) the component. Does nothing if this
state transition is disallowed.
Arguments:
|
code » | |||
![]()
Registers the given renderer with the component. Changing renderers after
the component has entered the document is an error.
Arguments:
|
code » | |||
![]()
No description.
Arguments:
|
code » | |||
![]()
Selects or unselects the component. Does nothing if this state transition
is disallowed.
Arguments:
|
code » | |||
![]()
Sets or clears the given state on the component, and updates its styling
accordingly. Does nothing if the component is already in the correct state
or if it doesn't support the specified state. Doesn't dispatch any state
transition events; use advisedly.
Arguments:
|
code » | |||
![]()
Sets the component's state to the state represented by a bit mask of
{@link goog.ui.Component.State}s. Unlike {@link #setState}, doesn't
update the component's styling, and doesn't reject unsupported states.
Called by renderers during element decoration. Considered protected;
should only be used within this package and by subclasses.
Arguments:
|
code » | |||
![]()
Enables or disables support for the given state. Disabling support
for a state while the component is in that state is an error.
Arguments:
|
code » | |||
Shows or hides the component. Does nothing if the component already has
the requested visibility. Otherwise, dispatches a SHOW or HIDE event as
appropriate, giving listeners a chance to prevent the visibility change.
When showing a component that is both enabled and focusable, ensures that
its key target has a tab index. When hiding a component that is enabled
and focusable, blurs its key target and removes its tab index.
|
code » |
![]()
Adds the specified component as the last child of this component. See
{@link goog.ui.Component#addChildAt} for detailed semantics.
Arguments:
|
code » | ||||
![]()
Adds the specified component as a child of this component at the given
0-based index.
Both {@code addChild} and {@code addChildAt} assume the following contract
between parent and child components:
Arguments:
|
code » | ||||
Determines if a given element can be decorated by this type of component.
This method should be overridden by inheriting objects.
|
code » | ||||
![]()
No description.
|
code » | ||||
![]()
Decorates the element for the UI component.
Arguments:
|
code » | ||||
![]()
Actually decorates the element. Should be overridden by inheriting objects.
This method can assume there are checks to ensure the component has not
already been rendered have occurred and that enter document will be called
afterwards. This method is considered protected.
Arguments:
|
code » | ||||
![]()
Disposes of the component. Calls {@code exitDocument}, which is expected to
remove event handlers and clean up the component. Propagates the call to
the component's children, if any. Removes the component's DOM from the
document unless it was decorated.
|
code » | ||||
![]()
No description.
|
code » | ||||
![]()
No description.
|
code » | ||||
![]()
Calls the given function on each of this component's children in order. If
{@code opt_obj} is provided, it will be used as the 'this' object in the
function when called. The function should take two arguments: the child
component and its 0-based index. The return value is ignored.
|
code » | ||||
Returns the child with the given ID, or null if no such child exists.
Arguments:
Returns:
The child with the given ID; null if none.
|
code » | ||||
Returns the child at the given index, or null if the index is out of bounds.
Arguments:
Returns:
The child at the given index; null if none.
|
code » | ||||
Returns the number of children of this component.
Returns:
The number of children.
|
code » | ||||
Returns an array containing the IDs of the children of this component, or an
empty array if the component has no children.
|
code » | ||||
Returns the DOM element into which child components are to be rendered,
or null if the component itself hasn't been rendered yet. This default
implementation returns the component's root element. Subclasses with
complex DOM structures must override this method.
Returns:
Element to contain child elements (null if none).
|
code » | ||||
Returns the dom helper that is being used on this component.
Returns:
The dom helper used on this component.
|
code » | ||||
Gets the component's element.
Returns:
The element for the component.
|
code » | ||||
Helper function for returning an element in the document with a unique id
generated using makeId().
|
code » | ||||
Helper function for returning the fragment portion of an id generated using
makeId().
|
code » | ||||
Returns the event handler for this component, lazily created the first time
this method is called.
Returns:
Event handler for this component.
|
code » | ||||
Gets the unique ID for the instance of this component. If the instance
doesn't already have an ID, generates one on the fly.
Returns:
Unique component ID.
|
code » | ||||
![]() *
Returns the model associated with the UI component.
Returns:
*
The model.
|
code » | ||||
Returns the component's parent, if any.
Returns:
The parent component.
|
code » | ||||
Returns true if the component has children.
Returns:
True if the component has children.
|
code » | ||||
Returns the 0-based index of the given child component, or -1 if no such
child is found.
Arguments:
Returns:
0-based index of the child component; -1 if not found.
|
code » | ||||
Determines whether the component has been added to the document.
Returns:
TRUE if rendered. Otherwise, FALSE.
|
code » | ||||
Returns true if the component is rendered right-to-left, false otherwise.
The first time this function is invoked, the right-to-left rendering property
is set if it has not been already.
Returns:
Whether the control is rendered right-to-left.
|
code » | ||||
Helper function for subclasses that gets a unique id for a given fragment,
this can be used by components to
generate unique string ids for DOM elements
|
code » | ||||
Removes the given child from this component, and returns it. Throws an error
if the argument is invalid or if the specified child isn't found in the
parent component. The argument can either be a string (interpreted as the
ID of the child component to remove) or the child component itself.
If {@code opt_unrender} is true, calls {@link goog.ui.component#exitDocument}
on the removed child, and subsequently detaches the child's DOM from the
document. Otherwise it is the caller's responsibility to clean up the child
component's DOM.
Arguments:
Returns:
The removed component, if any.
|
code » | ||||
Removes the child at the given index from this component, and returns it.
Throws an error if the argument is out of bounds, or if the specified child
isn't found in the parent. See {@link goog.ui.Component#removeChild} for
detailed semantics.
Arguments:
Returns:
The removed component, if any.
|
code » | ||||
![]()
Removes every child component attached to this one.
Arguments:
|
code » | ||||
![]()
Renders the component. If a parent element is supplied, it should already be
in the document and then the component's element will be appended to it. If
there is no optional parent element and the element doesn't have a parentNode
then it will be appended to the document body.
Throws an Error if the component is already rendered.
Arguments:
|
code » | ||||
![]()
Renders the component before another element. The other element should be in
the document already.
Throws an Error if the component is already rendered.
Arguments:
|
code » | ||||
![]()
Renders the component. If a parent element is supplied, it should already be
in the document and then the component's element will be appended to it. If
there is no optional parent element and the element doesn't have a parentNode
then it will be appended to the document body.
Throws an Error if the component is already rendered.
|
code » | ||||
![]()
Sets the component's root element to the given element. Considered
protected and final.
Arguments:
|
code » | ||||
![]()
Assigns an ID to this component instance. It is the caller's responsibility
to guarantee that the ID is unique. If the component is a child of a parent
component, then the parent component's child index is updated to reflect the
new ID; this may throw an error if the parent already has a child with an ID
that conflicts with the new ID.
Arguments:
|
code » | ||||
![]()
Sets the model associated with the UI component.
Arguments:
|
code » | ||||
![]()
Sets the parent of this component to use for event bubbling. Throws an error
if the component already has a parent or if an attempt is made to add a
component to itself as a child. Callers must use {@code removeChild}
or {@code removeChildAt} to remove components from their containers before
calling this method.
Arguments:
|
code » | ||||
![]()
Overrides {@link goog.events.EventTarget#setParentEventTarget} to throw an
error if the parent component is set, and the argument is not the parent.
Arguments:
|
code » | ||||
![]()
Set is right-to-left. This function should be used if the component needs
to know the rendering direction during dom creation (i.e. before
{@link #enterDocument} is called and is right-to-left is set).
Arguments:
|
code » | ||||
No description.
Returns:
Whether the component was decorated.
|
code » |
![]()
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.
Arguments:
|
code » | |||||
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.
Arguments:
Returns:
If anyone called preventDefault on the event object (or if any of the handlers returns false this will also return false.
|
code » | |||||
![]()
Unattach listeners from this object. Classes that extend EventTarget may
need to override this method in order to remove references to DOM Elements
and additional listeners, it should be something like this:
MyClass.prototype.disposeInternal = function() { MyClass.superClass_.disposeInternal.call(this); // Dispose logic for MyClass }; |
code » | |||||
Returns the parent of this event target to use for bubbling.
Returns:
The parent EventTarget or null if there is no parent.
|
code » | |||||
![]()
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.
Arguments:
|
code » | |||||
![]()
Sets the parent of this event target to use for bubbling.
Arguments:
|
code » |
![]()
No description.
|
code » | |
![]()
Deletes or nulls out any references to COM objects, DOM nodes, or other
disposable objects. Classes that extend {@code goog.Disposable} should
override this method. For example:
mypackage.MyClass = function() { goog.Disposable.call(this); // Constructor logic specific to MyClass. ... }; goog.inherits(mypackage.MyClass, goog.Disposable); mypackage.MyClass.prototype.disposeInternal = function() { mypackage.MyClass.superClass_.disposeInternal.call(this); // Dispose logic specific to MyClass. ... }; |
code » | |
No description.
Returns:
Whether the object has been disposed of.
|
code » | |
No description.
Returns:
Whether the object has been disposed of.
|
code » |
Whether the control allows text selection within its DOM. Defaults to false.
|
Code » | |
A bit mask of {@link goog.ui.Component.State}s for which this component
provides default event handling. For example, a component that handles
the HOVER state automatically will highlight itself on mouseover, whereas
a component that doesn't handle HOVER automatically will only dispatch
ENTER and LEAVE events but not call {@link setHighlighted} on itself.
By default, components provide default event handling for all states.
Controls hosted in containers (e.g. menu items in a menu, or buttons in a
toolbar) will typically want to have their container manage their highlight
state. Selectable controls managed by a selection model will also typically
want their selection state to be managed by the model.
|
Code » | |
![]() goog.ui.ControlContent
Text caption or DOM structure displayed in the component.
|
Code » | |
Additional class name(s) to apply to the control's root element, if any.
|
Code » | |
Whether the control should listen for and handle mouse events; defaults to
true.
|
Code » | |
Current component state; a bit mask of {@link goog.ui.Component.State}s.
|
Code » | |
A bit mask of {@link goog.ui.Component.State}s for which this component
dispatches state transition events. Because events are expensive, the
default behavior is to not dispatch any state transition events at all.
Use the {@link #setDispatchTransitionEvents} API to request transition
events as needed. Subclasses may enable transition events by default.
Controls hosted in containers or managed by a selection model will typically
want to dispatch transition events.
|
Code » | |
A bit mask of {@link goog.ui.Component.State}s this component supports.
|
Code » | |
Component visibility.
|
Code » |
Map of child component IDs to child components. Used for constant-time
random access to child components by ID. Lazily initialized on first use.
Must be kept in sync with {@code children_}. This property is strictly
private and must not be accessed directly outside of this class!
We use a plain Object, not a {@link goog.structs.Map}, for simplicity.
This means components can't have children with IDs such as 'constructor' or
'valueOf', but this shouldn't really be an issue in practice, and if it is,
we can always fix it later without changing the API.
|
Code » | |
Array of child components. Lazily initialized on first use. Must be kept in
sync with {@code childIndex_}. This property is strictly private and must
not be accessed directly outside of this class!
|
Code » | |
DomHelper used to interact with the document, allowing components to be
created in a different window.
|
Code » | |
The DOM element for the component.
|
Code » | |
Generator for unique IDs.
|
Code » | |
Unique ID of the component, lazily initialized in {@link
goog.ui.Component#getId} if needed. This property is strictly private and
must not be accessed directly outside of this class!
|
Code » | |
Whether the component is in the document.
|
Code » | |
Parent component to which events will be propagated. This property is
strictly private and must not be accessed directly outside of this class!
|
Code » | |
Whether the component is rendered right-to-left. Right-to-left is set
lazily when {@link #isRightToLeft} is called the first time, unless it has
been set by calling {@link #setRightToLeft} explicitly.
|
Code » | |
Flag used to keep track of whether a component decorated an already existing
element or whether it created the DOM itself. If an element was decorated
dispose will remove the node from the document, it is left up to the app.
|
Code » |
Takes an element, and decorates it with a {@link goog.ui.Control} instance
if a suitable decorator is found.
Returns:
New control instance that decorates the element (null if none).
|
code » | |
Takes an element and returns a new instance of {@link goog.ui.Control}
or a subclass, suitable to decorate it (based on the element's CSS class).
Returns:
New control instance to decorate the element (null if none).
|
code » | |
![]()
Maps a CSS class name to a function that returns a new instance of
{@link goog.ui.Control} or a subclass thereof, suitable to decorate
an element that has the specified CSS class. UI components that extend
{@link goog.ui.Control} and want {@link goog.ui.Container}s to be able
to discover and decorate elements using them should register a factory
function via this API.
|
code » |