123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- goog.provide('goog.ui.FlatMenuButtonRenderer');
- goog.require('goog.dom');
- goog.require('goog.dom.TagName');
- goog.require('goog.style');
- goog.require('goog.ui.FlatButtonRenderer');
- goog.require('goog.ui.INLINE_BLOCK_CLASSNAME');
- goog.require('goog.ui.Menu');
- goog.require('goog.ui.MenuButton');
- goog.require('goog.ui.MenuRenderer');
- goog.require('goog.ui.registry');
- goog.ui.FlatMenuButtonRenderer = function() {
- goog.ui.FlatButtonRenderer.call(this);
- };
- goog.inherits(goog.ui.FlatMenuButtonRenderer, goog.ui.FlatButtonRenderer);
- goog.addSingletonGetter(goog.ui.FlatMenuButtonRenderer);
- goog.ui.FlatMenuButtonRenderer.CSS_CLASS =
- goog.getCssName('goog-flat-menu-button');
- goog.ui.FlatMenuButtonRenderer.prototype.createDom = function(control) {
- var button = (control);
- var classNames = this.getClassNames(button);
- var element = button.getDomHelper().createDom(
- goog.dom.TagName.DIV,
- goog.ui.INLINE_BLOCK_CLASSNAME + ' ' + classNames.join(' '), [
- this.createCaption(button.getContent(), button.getDomHelper()),
- this.createDropdown(button.getDomHelper())
- ]);
- this.setTooltip(element, (button.getTooltip()));
- return element;
- };
- goog.ui.FlatMenuButtonRenderer.prototype.getContentElement = function(element) {
- return element && (element.firstChild);
- };
- goog.ui.FlatMenuButtonRenderer.prototype.decorate = function(button, element) {
-
-
- var menuElem = goog.dom.getElementsByTagNameAndClass(
- '*', goog.ui.MenuRenderer.CSS_CLASS, element)[0];
- if (menuElem) {
-
-
- goog.style.setElementShown(menuElem, false);
- button.getDomHelper().getDocument().body.appendChild(menuElem);
-
- var menu = new goog.ui.Menu();
- menu.decorate(menuElem);
- button.setMenu(menu);
- }
-
- var captionElem = goog.dom.getElementsByTagNameAndClass(
- '*', goog.getCssName(this.getCssClass(), 'caption'), element)[0];
- if (!captionElem) {
- element.appendChild(
- this.createCaption(element.childNodes, button.getDomHelper()));
- }
-
- var dropdownElem = goog.dom.getElementsByTagNameAndClass(
- '*', goog.getCssName(this.getCssClass(), 'dropdown'), element)[0];
- if (!dropdownElem) {
- element.appendChild(this.createDropdown(button.getDomHelper()));
- }
-
- return goog.ui.FlatMenuButtonRenderer.superClass_.decorate.call(
- this, button, element);
- };
- goog.ui.FlatMenuButtonRenderer.prototype.createCaption = function(
- content, dom) {
- return dom.createDom(
- goog.dom.TagName.DIV, goog.ui.INLINE_BLOCK_CLASSNAME + ' ' +
- goog.getCssName(this.getCssClass(), 'caption'),
- content);
- };
- goog.ui.FlatMenuButtonRenderer.prototype.createDropdown = function(dom) {
-
- return dom.createDom(
- goog.dom.TagName.DIV, {
- 'class': goog.ui.INLINE_BLOCK_CLASSNAME + ' ' +
- goog.getCssName(this.getCssClass(), 'dropdown'),
- 'aria-hidden': true
- },
- '\u00A0');
- };
- goog.ui.FlatMenuButtonRenderer.prototype.getCssClass = function() {
- return goog.ui.FlatMenuButtonRenderer.CSS_CLASS;
- };
- goog.ui.registry.setDecoratorByClassName(
- goog.ui.FlatMenuButtonRenderer.CSS_CLASS, function() {
-
- return new goog.ui.MenuButton(
- null, null, goog.ui.FlatMenuButtonRenderer.getInstance());
- });
|