aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/ui/submenurenderer.js
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/ui/submenurenderer.js')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/ui/submenurenderer.js228
1 files changed, 0 insertions, 228 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/ui/submenurenderer.js b/contexts/data/lib/closure-library/closure/goog/ui/submenurenderer.js
deleted file mode 100644
index 05da52b..0000000
--- a/contexts/data/lib/closure-library/closure/goog/ui/submenurenderer.js
+++ /dev/null
@@ -1,228 +0,0 @@
-// Copyright 2008 The Closure Library Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS-IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-/**
- * @fileoverview Renderer for {@link goog.ui.SubMenu}s.
- *
- */
-
-goog.provide('goog.ui.SubMenuRenderer');
-
-goog.require('goog.dom');
-goog.require('goog.dom.a11y');
-goog.require('goog.dom.a11y.State');
-goog.require('goog.dom.classes');
-goog.require('goog.style');
-goog.require('goog.ui.Menu');
-goog.require('goog.ui.MenuItemRenderer');
-
-
-
-/**
- * Default renderer for {@link goog.ui.SubMenu}s. Each item has the following
- * structure:
- * <div class="goog-submenu">
- * ...(menuitem content)...
- * <div class="goog-menu">
- * ... (submenu content) ...
- * </div>
- * </div>
- * @constructor
- * @extends {goog.ui.MenuItemRenderer}
- */
-goog.ui.SubMenuRenderer = function() {
- goog.ui.MenuItemRenderer.call(this);
-};
-goog.inherits(goog.ui.SubMenuRenderer, goog.ui.MenuItemRenderer);
-goog.addSingletonGetter(goog.ui.SubMenuRenderer);
-
-
-/**
- * Default CSS class to be applied to the root element of components rendered
- * by this renderer.
- * @type {string}
- */
-goog.ui.SubMenuRenderer.CSS_CLASS = goog.getCssName('goog-submenu');
-
-
-/**
- * The CSS class for submenus that displays the submenu arrow.
- * @type {string}
- * @private
- */
-goog.ui.SubMenuRenderer.CSS_CLASS_SUBMENU_ =
- goog.getCssName('goog-submenu-arrow');
-
-
-/**
- * Overrides {@link goog.ui.MenuItemRenderer#createDom} by adding
- * the additional class 'goog-submenu' to the created element,
- * and passes the element to {@link goog.ui.SubMenuItemRenderer#addArrow_}
- * to add an child element that can be styled to show an arrow.
- * @param {goog.ui.Control} control goog.ui.SubMenu to render.
- * @return {Element} Root element for the item.
- * @override
- */
-goog.ui.SubMenuRenderer.prototype.createDom = function(control) {
- var subMenu = /** @type {goog.ui.SubMenu} */ (control);
- var element = goog.ui.SubMenuRenderer.superClass_.createDom.call(this,
- subMenu);
- goog.dom.classes.add(element, goog.ui.SubMenuRenderer.CSS_CLASS);
- this.addArrow_(subMenu, element);
- return element;
-};
-
-
-/**
- * Overrides {@link goog.ui.MenuItemRenderer#decorate} by adding
- * the additional class 'goog-submenu' to the decorated element,
- * and passing the element to {@link goog.ui.SubMenuItemRenderer#addArrow_}
- * to add a child element that can be styled to show an arrow.
- * Also searches the element for a child with the class goog-menu. If a
- * matching child element is found, creates a goog.ui.Menu, uses it to
- * decorate the child element, and passes that menu to subMenu.setMenu.
- * @param {goog.ui.Control} control goog.ui.SubMenu to render.
- * @param {Element} element Element to decorate.
- * @return {Element} Root element for the item.
- * @override
- */
-goog.ui.SubMenuRenderer.prototype.decorate = function(control, element) {
- var subMenu = /** @type {goog.ui.SubMenu} */ (control);
- element = goog.ui.SubMenuRenderer.superClass_.decorate.call(
- this, subMenu, element);
- goog.dom.classes.add(element, goog.ui.SubMenuRenderer.CSS_CLASS);
- this.addArrow_(subMenu, element);
-
- // Search for a child menu and decorate it.
- var childMenuEls = goog.dom.getElementsByTagNameAndClass(
- 'div', goog.getCssName('goog-menu'), element);
- if (childMenuEls.length) {
- var childMenu = new goog.ui.Menu(subMenu.getDomHelper());
- var childMenuEl = childMenuEls[0];
- // Hide the menu element before attaching it to the document body; see
- // bug 1089244.
- goog.style.showElement(childMenuEl, false);
- subMenu.getDomHelper().getDocument().body.appendChild(childMenuEl);
- childMenu.decorate(childMenuEl);
- subMenu.setMenu(childMenu, true);
- }
- return element;
-};
-
-
-/**
- * Takes a menu item's root element, and sets its content to the given text
- * caption or DOM structure. Overrides the superclass immplementation by
- * making sure that the submenu arrow structure is preserved.
- * @param {Element} element The item's root element.
- * @param {goog.ui.ControlContent} content Text caption or DOM structure to be
- * set as the item's content.
- * @override
- */
-goog.ui.SubMenuRenderer.prototype.setContent = function(element, content) {
- // Save the submenu arrow element, if present.
- var contentElement = this.getContentElement(element);
- var arrowElement = contentElement && contentElement.lastChild;
- goog.ui.SubMenuRenderer.superClass_.setContent.call(this, element, content);
- // If the arrowElement was there, is no longer there, and really was an arrow,
- // reappend it.
- if (arrowElement &&
- contentElement.lastChild != arrowElement &&
- goog.dom.classes.has(arrowElement,
- goog.ui.SubMenuRenderer.CSS_CLASS_SUBMENU_)) {
- contentElement.appendChild(arrowElement);
- }
-};
-
-
-/**
- * Overrides {@link goog.ui.MenuItemRenderer#initializeDom} to tweak
- * the DOM structure for the span.goog-submenu-arrow element
- * depending on the text direction (LTR or RTL). When the SubMenu is RTL
- * the arrow will be given the additional class of goog-submenu-arrow-rtl,
- * and the arrow will be moved up to be the first child in the SubMenu's
- * element. Otherwise the arrow will have the class goog-submenu-arrow-ltr,
- * and be kept as the last child of the SubMenu's element.
- * @param {goog.ui.Control} control goog.ui.SubMenu whose DOM is to be
- * initialized as it enters the document.
- * @override
- */
-goog.ui.SubMenuRenderer.prototype.initializeDom = function(control) {
- var subMenu = /** @type {goog.ui.SubMenu} */ (control);
- goog.ui.SubMenuRenderer.superClass_.initializeDom.call(this, subMenu);
- var element = subMenu.getContentElement();
- var arrow = subMenu.getDomHelper().getElementsByTagNameAndClass(
- 'span', goog.ui.SubMenuRenderer.CSS_CLASS_SUBMENU_, element)[0];
- goog.ui.SubMenuRenderer.setArrowTextContent_(subMenu, arrow);
- if (arrow != element.lastChild) {
- element.appendChild(arrow);
- }
- goog.dom.a11y.setState(subMenu.getElement(), goog.dom.a11y.State.HASPOPUP,
- 'true');
-};
-
-
-/**
- * Appends a child node with the class goog.getCssName('goog-submenu-arrow') or
- * 'goog-submenu-arrow-rtl' which can be styled to show an arrow.
- * @param {goog.ui.SubMenu} subMenu SubMenu to render.
- * @param {Element} element Element to decorate.
- * @private
- */
-goog.ui.SubMenuRenderer.prototype.addArrow_ = function(subMenu, element) {
- var arrow = subMenu.getDomHelper().createDom('span');
- arrow.className = goog.ui.SubMenuRenderer.CSS_CLASS_SUBMENU_;
- goog.ui.SubMenuRenderer.setArrowTextContent_(subMenu, arrow);
- this.getContentElement(element).appendChild(arrow);
-};
-
-
-/**
- * The unicode char for a left arrow.
- * @type {string}
- * @private
- */
-goog.ui.SubMenuRenderer.LEFT_ARROW_ = '\u25C4';
-
-
-/**
- * The unicode char for a right arrow.
- * @type {string}
- * @private
- */
-goog.ui.SubMenuRenderer.RIGHT_ARROW_ = '\u25BA';
-
-
-/**
- * Set the text content of an arrow.
- * @param {goog.ui.SubMenu} subMenu The sub menu that owns the arrow.
- * @param {Element} arrow The arrow element.
- * @private
- */
-goog.ui.SubMenuRenderer.setArrowTextContent_ = function(subMenu, arrow) {
- // Fix arrow rtl
- var leftArrow = goog.ui.SubMenuRenderer.LEFT_ARROW_;
- var rightArrow = goog.ui.SubMenuRenderer.RIGHT_ARROW_;
- if (subMenu.isRightToLeft()) {
- goog.dom.classes.add(arrow, goog.getCssName('goog-submenu-arrow-rtl'));
- // Unicode character - Black left-pointing pointer iff aligned to end.
- goog.dom.setTextContent(arrow, subMenu.isAlignedToEnd() ?
- leftArrow : rightArrow);
- } else {
- goog.dom.classes.remove(arrow, goog.getCssName('goog-submenu-arrow-rtl'));
- // Unicode character - Black right-pointing pointer iff aligned to end.
- goog.dom.setTextContent(arrow, subMenu.isAlignedToEnd() ?
- rightArrow : leftArrow);
- }
-};