?? popupbutton.js
字號:
/* Copyright (c) 2004-2006, The Dojo Foundation All Rights Reserved. Licensed under the Academic Free License version 2.1 or above OR the modified BSD license. For more information on Dojo licensing, see: http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.widget.PopUpButton");dojo.provide("dojo.widget.DomPopUpButton");dojo.provide("dojo.widget.HtmlPopUpButton");dojo.deprecated("dojo.widget.PopUpButton, dojo.widget.DomPopUpButton, dojo.widget.HtmlPopUpButton", "use dojo.widget.DropDownButton", "0.4");//dojo.require("dojo.widget.Button");//dojo.require("dojo.widget.HtmlButton");dojo.require("dojo.widget.Menu");dojo.require("dojo.widget.MenuItem");dojo.require("dojo.html");dojo.widget.tags.addParseTreeHandler("dojo:PopUpButton");/* PopUpButton **************/ dojo.widget.PopUpButton = function () { dojo.widget.PopUpButton.superclass.constructor.call(this);}dojo.inherits(dojo.widget.PopUpButton, dojo.widget.Widget);dojo.lang.extend(dojo.widget.PopUpButton, { widgetType: "PopUpButton", label: ""});/* DomPopUpButton *****************/dojo.widget.DomPopUpButton = function(){ dojo.widget.DomPopUpButton.superclass.constructor.call(this);}dojo.inherits(dojo.widget.DomPopUpButton, dojo.widget.DomWidget);dojo.lang.extend(dojo.widget.DomPopUpButton, { widgetType: dojo.widget.PopUpButton.prototype.widgetType});/* HtmlPopUpButton ******************/dojo.widget.HtmlPopUpButton = function () { dojo.widget.HtmlPopUpButton.superclass.constructor.call(this);}dojo.inherits(dojo.widget.HtmlPopUpButton, dojo.widget.HtmlWidget);dojo.lang.extend(dojo.widget.HtmlPopUpButton, { widgetType: dojo.widget.PopUpButton.prototype.widgetType, templateString: null, templateCssPath: dojo.uri.dojoUri("src/widget/templates/PopUpButton.css"), buildRendering: function (args, frag) { dojo.style.insertCssFile(this.templateCssPath, null, true); this.domNode = document.createElement("a"); this.domNode.className = "PopUpButton"; dojo.event.connect(this.domNode, "onmousedown", this, "onMouseDown"); // draw the arrow var arrow = document.createElement("img"); arrow.src = dojo.uri.dojoUri("src/widget/templates/images/dropdownButtonsArrow.gif"); dojo.html.setClass(arrow, "downArrow"); this.domNode.appendChild(arrow); this.menu = dojo.widget.fromScript("Menu"); dojo.html.addClass(this.menu.domNode, "PopUpButtonMenu"); dojo.event.connect(this.menu, "onSelect", this, "onSelect"); if (frag["dojo:" + this.widgetType.toLowerCase()].nodeRef) { var node = frag["dojo:" + this.widgetType.toLowerCase()].nodeRef; var options = node.getElementsByTagName("option"); for (var i = 0; i < options.length; i++) { var properties = { title: dojo.dom.textContent(options[i]), value: options[i].value } this.addItem(dojo.widget.fromScript("MenuItem", properties)); } } }, addItem: function (item) { // TODO: should be dojo.widget.MenuItem if (item instanceof dojo.widget.html.MenuItem) { this.menu.push(item); } else { // TODO: create one var menuItem = dojo.widget.fromScript("MenuItem", {title: item}); this.menu.push(menuItem); } }, /* Enabled utility methods **************************/ _enabled: true, isEnabled: function() { return this._enabled; }, setEnabled: function(enabled, force, preventEvent) { enabled = Boolean(enabled); if (force || this._enabled != enabled) { this._enabled = enabled; if (!preventEvent) { this._fireEvent(this._enabled ? "onEnable" : "onDisable"); this._fireEvent("onChangeEnabled"); } } dojo.html[(this._enabled ? "add" : "remove") + "Class"](this.domNode, "disabled"); return this._enabled; }, enable: function(force, preventEvent) { return this.setEnabled(true, force, preventEvent); }, disable: function(force, preventEvent) { return this.setEnabled(false, force, preventEvent); }, toggleEnabled: function(force, preventEvent) { return this.setEnabled(!this._enabled, force, preventEvent); },/* Select utility methods **************************/ onSelect: function (item, e) { this.domNode.firstChild.nodeValue = item.title; }, onMouseDown: function (e) { if (!this._menuVisible) { this._showMenu(e); dojo.lang.setTimeout(dojo.event.connect, 1, document, "onmousedown", this, "_hideMenu"); } }, _fireEvent: function(evt) { if(typeof this[evt] == "function") { var args = [this]; for(var i = 1; i < arguments.length; i++) { args.push(arguments[i]); } this[evt].apply(this, args); } }, _showMenu: function (e) { if (!this._enabled) { return; } this._menuVisible = true; with (dojo.html) { var y = getAbsoluteY(this.domNode) + getInnerHeight(this.domNode); var x = getAbsoluteX(this.domNode); } document.body.appendChild(this.menu.domNode); with (this.menu.domNode.style) { top = y + "px"; left = x + "px"; } }, _hideMenu: function (e) { this.menu.domNode.parentNode.removeChild(this.menu.domNode); dojo.event.disconnect(document, "onmousedown", this, "_hideMenu"); this._menuVisible = false; }});
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -