123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- goog.provide('goog.ui.RoundedTabRenderer');
- goog.require('goog.dom');
- goog.require('goog.dom.TagName');
- goog.require('goog.ui.Tab');
- goog.require('goog.ui.TabBar');
- goog.require('goog.ui.TabRenderer');
- goog.require('goog.ui.registry');
- goog.ui.RoundedTabRenderer = function() {
- goog.ui.TabRenderer.call(this);
- };
- goog.inherits(goog.ui.RoundedTabRenderer, goog.ui.TabRenderer);
- goog.addSingletonGetter(goog.ui.RoundedTabRenderer);
- goog.ui.RoundedTabRenderer.CSS_CLASS = goog.getCssName('goog-rounded-tab');
- goog.ui.RoundedTabRenderer.prototype.getCssClass = function() {
- return goog.ui.RoundedTabRenderer.CSS_CLASS;
- };
- goog.ui.RoundedTabRenderer.prototype.createDom = function(tab) {
- return this.decorate(
- tab, goog.ui.RoundedTabRenderer.superClass_.createDom.call(this, tab));
- };
- goog.ui.RoundedTabRenderer.prototype.decorate = function(tab, element) {
- var tabBar = tab.getParent();
- if (!this.getContentElement(element)) {
-
-
- element.appendChild(
- this.createTab(
- tab.getDomHelper(), element.childNodes, tabBar.getLocation()));
- }
- return goog.ui.RoundedTabRenderer.superClass_.decorate.call(
- this, tab, element);
- };
- goog.ui.RoundedTabRenderer.prototype.createTab = function(
- dom, caption, location) {
- var rows = [];
- if (location != goog.ui.TabBar.Location.BOTTOM) {
-
- rows.push(this.createEdge(dom, true));
- }
- rows.push(this.createCaption(dom, caption));
- if (location != goog.ui.TabBar.Location.TOP) {
-
- rows.push(this.createEdge(dom, false));
- }
- return dom.createDom(
- goog.dom.TagName.TABLE, {
- 'cellPadding': 0,
- 'cellSpacing': 0,
- 'className': goog.getCssName(this.getStructuralCssClass(), 'table')
- },
- dom.createDom(goog.dom.TagName.TBODY, null, rows));
- };
- goog.ui.RoundedTabRenderer.prototype.createCaption = function(dom, caption) {
- var baseClass = this.getStructuralCssClass();
- return dom.createDom(
- goog.dom.TagName.TR, null,
- dom.createDom(
- goog.dom.TagName.TD, {'noWrap': true},
- dom.createDom(
- goog.dom.TagName.DIV, goog.getCssName(baseClass, 'caption'),
- caption)));
- };
- goog.ui.RoundedTabRenderer.prototype.createEdge = function(dom, isTopEdge) {
- var baseClass = this.getStructuralCssClass();
- var inner = dom.createDom(
- goog.dom.TagName.DIV, goog.getCssName(baseClass, 'inner-edge'));
- var outer = dom.createDom(
- goog.dom.TagName.DIV, goog.getCssName(baseClass, 'outer-edge'));
- return dom.createDom(
- goog.dom.TagName.TR, null,
- dom.createDom(
- goog.dom.TagName.TD, {'noWrap': true},
- isTopEdge ? [outer, inner] : [inner, outer]));
- };
- goog.ui.RoundedTabRenderer.prototype.getContentElement = function(element) {
- var baseClass = this.getStructuralCssClass();
- return element &&
- goog.dom.getElementsByTagNameAndClass(
- goog.dom.TagName.DIV, goog.getCssName(baseClass, 'caption'),
- element)[0];
- };
- goog.ui.registry.setDecoratorByClassName(
- goog.ui.RoundedTabRenderer.CSS_CLASS, function() {
- return new goog.ui.Tab(null, goog.ui.RoundedTabRenderer.getInstance());
- });
|