From f0cfe83e3725f9a3928da97a6e3085e79cb25309 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 18 Mar 2013 10:26:24 +0400 Subject: upgrade dojo to 1.8.3 (refs #570) --- lib/dijit/layout/TabController.js.uncompressed.js | 171 ++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 lib/dijit/layout/TabController.js.uncompressed.js (limited to 'lib/dijit/layout/TabController.js.uncompressed.js') diff --git a/lib/dijit/layout/TabController.js.uncompressed.js b/lib/dijit/layout/TabController.js.uncompressed.js new file mode 100644 index 000000000..fd061540e --- /dev/null +++ b/lib/dijit/layout/TabController.js.uncompressed.js @@ -0,0 +1,171 @@ +require({cache:{ +'url:dijit/layout/templates/_TabButton.html':"
\n\t\"\"\n\t\n\t\n\t\t[x]\n
\n"}}); +define("dijit/layout/TabController", [ + "dojo/_base/declare", // declare + "dojo/dom", // dom.setSelectable + "dojo/dom-attr", // domAttr.attr + "dojo/dom-class", // domClass.toggle + "dojo/i18n", // i18n.getLocalization + "dojo/_base/lang", // lang.hitch lang.trim + "./StackController", + "../registry", + "../Menu", + "../MenuItem", + "dojo/text!./templates/_TabButton.html", + "dojo/i18n!../nls/common" +], function(declare, dom, domAttr, domClass, i18n, lang, StackController, registry, Menu, MenuItem, template){ + + // module: + // dijit/layout/TabController + + var TabButton = declare("dijit.layout._TabButton", StackController.StackButton, { + // summary: + // A tab (the thing you click to select a pane). + // description: + // Contains the title of the pane, and optionally a close-button to destroy the pane. + // This is an internal widget and should not be instantiated directly. + // tags: + // private + + // baseClass: String + // The CSS class applied to the domNode. + baseClass: "dijitTab", + + // Apply dijitTabCloseButtonHover when close button is hovered + cssStateNodes: { + closeNode: "dijitTabCloseButton" + }, + + templateString: template, + + // Override _FormWidget.scrollOnFocus. + // Don't scroll the whole tab container into view when the button is focused. + scrollOnFocus: false, + + buildRendering: function(){ + this.inherited(arguments); + + dom.setSelectable(this.containerNode, false); + }, + + startup: function(){ + this.inherited(arguments); + var n = this.domNode; + + // Required to give IE6 a kick, as it initially hides the + // tabs until they are focused on. + this.defer(function(){ + n.className = n.className; + }, 1); + }, + + _setCloseButtonAttr: function(/*Boolean*/ disp){ + // summary: + // Hide/show close button + this._set("closeButton", disp); + domClass.toggle(this.domNode, "dijitClosable", disp); + this.closeNode.style.display = disp ? "" : "none"; + if(disp){ + var _nlsResources = i18n.getLocalization("dijit", "common"); + if(this.closeNode){ + domAttr.set(this.closeNode, "title", _nlsResources.itemClose); + } + } + }, + + _setDisabledAttr: function(/*Boolean*/ disabled){ + // summary: + // Make tab selected/unselectable + + this.inherited(arguments); + + // Don't show tooltip for close button when tab is disabled + if(this.closeNode){ + if(disabled){ + domAttr.remove(this.closeNode, "title"); + }else{ + var _nlsResources = i18n.getLocalization("dijit", "common"); + domAttr.set(this.closeNode, "title", _nlsResources.itemClose); + } + } + }, + + _setLabelAttr: function(/*String*/ content){ + // summary: + // Hook for set('label', ...) to work. + // description: + // takes an HTML string. + // Inherited ToggleButton implementation will Set the label (text) of the button; + // Need to set the alt attribute of icon on tab buttons if no label displayed + this.inherited(arguments); + if(!this.showLabel && !this.params.title){ + this.iconNode.alt = lang.trim(this.containerNode.innerText || this.containerNode.textContent || ''); + } + } + }); + + var TabController = declare("dijit.layout.TabController", StackController, { + // summary: + // Set of tabs (the things with titles and a close button, that you click to show a tab panel). + // Used internally by `dijit/layout/TabContainer`. + // description: + // Lets the user select the currently shown pane in a TabContainer or StackContainer. + // TabController also monitors the TabContainer, and whenever a pane is + // added or deleted updates itself accordingly. + // tags: + // private + + baseClass: "dijitTabController", + + templateString: "
", + + // tabPosition: String + // Defines where tabs go relative to the content. + // "top", "bottom", "left-h", "right-h" + tabPosition: "top", + + // buttonWidget: Constructor + // The tab widget to create to correspond to each page + buttonWidget: TabButton, + + // buttonWidgetCloseClass: String + // Class of [x] close icon, used by event delegation code to tell when close button was clicked + buttonWidgetCloseClass: "dijitTabCloseButton", + + postCreate: function(){ + this.inherited(arguments); + + // Setup a close menu to be shared between all the closable tabs (excluding disabled tabs) + var closeMenu = new Menu({ + id: this.id+"_Menu", + ownerDocument: this.ownerDocument, + dir: this.dir, + lang: this.lang, + textDir: this.textDir, + targetNodeIds: [this.domNode], + selector: function(node){ + return domClass.contains(node, "dijitClosable") && !domClass.contains(node, "dijitTabDisabled"); + } + }); + this.own(closeMenu); + + var _nlsResources = i18n.getLocalization("dijit", "common"), + controller = this; + closeMenu.addChild(new MenuItem({ + label: _nlsResources.itemClose, + ownerDocument: this.ownerDocument, + dir: this.dir, + lang: this.lang, + textDir: this.textDir, + onClick: function(evt){ + var button = registry.byNode(this.getParent().currentTarget); + controller.onCloseButtonClick(button.page); + } + })); + } + }); + + TabController.TabButton = TabButton; // for monkey patching + + return TabController; +}); -- cgit v1.2.3