Path: blob/trunk/third_party/closure/goog/ui/separator.js
4506 views
/**1* @license2* Copyright The Closure Library Authors.3* SPDX-License-Identifier: Apache-2.04*/56/**7* @fileoverview A class for representing a separator, with renderers for both8* horizontal (menu) and vertical (toolbar) separators.9*/1011goog.provide('goog.ui.Separator');1213goog.require('goog.a11y.aria');14goog.require('goog.asserts');15goog.require('goog.ui.Component');16goog.require('goog.ui.Control');17goog.require('goog.ui.MenuSeparatorRenderer');18goog.require('goog.ui.registry');19goog.requireType('goog.dom.DomHelper');20212223/**24* Class representing a separator. Although it extends {@link goog.ui.Control},25* the Separator class doesn't allocate any event handlers, nor does it change26* its appearance on mouseover, etc.27* @param {goog.ui.MenuSeparatorRenderer=} opt_renderer Renderer to render or28* decorate the separator; defaults to {@link goog.ui.MenuSeparatorRenderer}.29* @param {goog.dom.DomHelper=} opt_domHelper Optional DOM helper, used for30* document interaction.31* @constructor32* @extends {goog.ui.Control}33*/34goog.ui.Separator = function(opt_renderer, opt_domHelper) {35'use strict';36goog.ui.Control.call(37this, null, opt_renderer || goog.ui.MenuSeparatorRenderer.getInstance(),38opt_domHelper);3940this.setSupportedState(goog.ui.Component.State.DISABLED, false);41this.setSupportedState(goog.ui.Component.State.HOVER, false);42this.setSupportedState(goog.ui.Component.State.ACTIVE, false);43this.setSupportedState(goog.ui.Component.State.FOCUSED, false);4445// Separators are always considered disabled.46this.setStateInternal(goog.ui.Component.State.DISABLED);47};48goog.inherits(goog.ui.Separator, goog.ui.Control);495051/**52* Configures the component after its DOM has been rendered. Overrides53* {@link goog.ui.Control#enterDocument} by making sure no event handler54* is allocated.55* @override56*/57goog.ui.Separator.prototype.enterDocument = function() {58'use strict';59goog.ui.Separator.superClass_.enterDocument.call(this);60var element = this.getElement();61goog.asserts.assert(62element, 'The DOM element for the separator cannot be null.');63goog.a11y.aria.setRole(element, 'separator');64};656667// Register a decorator factory function for goog.ui.MenuSeparators.68goog.ui.registry.setDecoratorByClassName(69goog.ui.MenuSeparatorRenderer.CSS_CLASS, function() {70'use strict';71// Separator defaults to using MenuSeparatorRenderer.72return new goog.ui.Separator();73});747576