?? toolbar.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.ToolbarContainer");dojo.provide("dojo.widget.html.ToolbarContainer");dojo.provide("dojo.widget.Toolbar");dojo.provide("dojo.widget.html.Toolbar");dojo.provide("dojo.widget.ToolbarItem");dojo.provide("dojo.widget.html.ToolbarButtonGroup");dojo.provide("dojo.widget.html.ToolbarButton");dojo.provide("dojo.widget.html.ToolbarDialog");dojo.provide("dojo.widget.html.ToolbarMenu");dojo.provide("dojo.widget.html.ToolbarSeparator");dojo.provide("dojo.widget.html.ToolbarSpace");dojo.provide("dojo.widget.Icon");dojo.require("dojo.widget.*");dojo.require("dojo.html");/* ToolbarContainer *******************/dojo.widget.tags.addParseTreeHandler("dojo:toolbarContainer");dojo.widget.html.ToolbarContainer = function() { dojo.widget.HtmlWidget.call(this);}dojo.inherits(dojo.widget.html.ToolbarContainer, dojo.widget.HtmlWidget);dojo.lang.extend(dojo.widget.html.ToolbarContainer, { widgetType: "ToolbarContainer", isContainer: true, templateString: '<div class="toolbarContainer" dojoAttachPoint="containerNode"></div>', templateCssPath: dojo.uri.dojoUri("src/widget/templates/HtmlToolbar.css"), getItem: function(name) { if(name instanceof dojo.widget.ToolbarItem) { return name; } for(var i = 0; i < this.children.length; i++) { var child = this.children[i]; if(child instanceof dojo.widget.html.Toolbar) { var item = child.getItem(name); if(item) { return item; } } } return null; }, getItems: function() { var items = []; for(var i = 0; i < this.children.length; i++) { var child = this.children[i]; if(child instanceof dojo.widget.html.Toolbar) { items = items.concat(child.getItems()); } } return items; }, enable: function() { for(var i = 0; i < this.children.length; i++) { var child = this.children[i]; if(child instanceof dojo.widget.html.Toolbar) { child.enable.apply(child, arguments); } } }, disable: function() { for(var i = 0; i < this.children.length; i++) { var child = this.children[i]; if(child instanceof dojo.widget.html.Toolbar) { child.disable.apply(child, arguments); } } }, select: function(name) { for(var i = 0; i < this.children.length; i++) { var child = this.children[i]; if(child instanceof dojo.widget.html.Toolbar) { child.select(arguments); } } }, deselect: function(name) { for(var i = 0; i < this.children.length; i++) { var child = this.children[i]; if(child instanceof dojo.widget.html.Toolbar) { child.deselect(arguments); } } }, getItemsState: function() { var values = {}; for(var i = 0; i < this.children.length; i++) { var child = this.children[i]; if(child instanceof dojo.widget.html.Toolbar) { dojo.lang.mixin(values, child.getItemsState()); } } return values; }, getItemsActiveState: function() { var values = {}; for(var i = 0; i < this.children.length; i++) { var child = this.children[i]; if(child instanceof dojo.widget.html.Toolbar) { dojo.lang.mixin(values, child.getItemsActiveState()); } } return values; }, getItemsSelectedState: function() { var values = {}; for(var i = 0; i < this.children.length; i++) { var child = this.children[i]; if(child instanceof dojo.widget.html.Toolbar) { dojo.lang.mixin(values, child.getItemsSelectedState()); } } return values; }});/* Toolbar **********/dojo.widget.tags.addParseTreeHandler("dojo:toolbar");dojo.widget.html.Toolbar = function() { dojo.widget.HtmlWidget.call(this);}dojo.inherits(dojo.widget.html.Toolbar, dojo.widget.HtmlWidget);dojo.lang.extend(dojo.widget.html.Toolbar, { widgetType: "Toolbar", isContainer: true, templateString: '<div class="toolbar" dojoAttachPoint="containerNode" unselectable="on" dojoOnMouseover="_onmouseover" dojoOnMouseout="_onmouseout" dojoOnClick="_onclick" dojoOnMousedown="_onmousedown" dojoOnMouseup="_onmouseup"></div>', //templateString: '<div class="toolbar" dojoAttachPoint="containerNode" unselectable="on"></div>', // given a node, tries to find it's toolbar item _getItem: function(node) { var start = new Date(); var widget = null; while(node && node != this.domNode) { if(dojo.html.hasClass(node, "toolbarItem")) { var widgets = dojo.widget.manager.getWidgetsByFilter(function(w) { return w.domNode == node; }); if(widgets.length == 1) { widget = widgets[0]; break; } else if(widgets.length > 1) { dojo.raise("Toolbar._getItem: More than one widget matches the node"); } } node = node.parentNode; } return widget; }, _onmouseover: function(e) { var widget = this._getItem(e.target); if(widget && widget._onmouseover) { widget._onmouseover(e); } }, _onmouseout: function(e) { var widget = this._getItem(e.target); if(widget && widget._onmouseout) { widget._onmouseout(e); } }, _onclick: function(e) { var widget = this._getItem(e.target); if(widget && widget._onclick){ widget._onclick(e); } }, _onmousedown: function(e) { var widget = this._getItem(e.target); if(widget && widget._onmousedown) { widget._onmousedown(e); } }, _onmouseup: function(e) { var widget = this._getItem(e.target); if(widget && widget._onmouseup) { widget._onmouseup(e); } }, addChild: function(item, pos, props) { var widget = dojo.widget.ToolbarItem.make(item, null, props); var ret = dojo.widget.html.Toolbar.superclass.addChild.call(this, widget, null, pos, null); return ret; }, push: function() { for(var i = 0; i < arguments.length; i++) { this.addChild(arguments[i]); } }, getItem: function(name) { if(name instanceof dojo.widget.ToolbarItem) { return name; } for(var i = 0; i < this.children.length; i++) { var child = this.children[i]; if(child instanceof dojo.widget.ToolbarItem && child._name == name) { return child; } } return null; }, getItems: function() { var items = []; for(var i = 0; i < this.children.length; i++) { var child = this.children[i]; if(child instanceof dojo.widget.ToolbarItem) { items.push(child); } } return items; }, getItemsState: function() { var values = {}; for(var i = 0; i < this.children.length; i++) { var child = this.children[i]; if(child instanceof dojo.widget.ToolbarItem) { values[child._name] = { selected: child._selected, enabled: child._enabled }; } } return values; }, getItemsActiveState: function() { var values = this.getItemsState(); for(var item in values) { values[item] = values[item].enabled; } return values; }, getItemsSelectedState: function() { var values = this.getItemsState(); for(var item in values) { values[item] = values[item].selected; } return values; }, enable: function() { var items = arguments.length ? arguments : this.children; for(var i = 0; i < items.length; i++) { var child = this.getItem(items[i]); if(child instanceof dojo.widget.ToolbarItem) { child.enable(false, true); } } }, disable: function() { var items = arguments.length ? arguments : this.children; for(var i = 0; i < items.length; i++) { var child = this.getItem(items[i]); if(child instanceof dojo.widget.ToolbarItem) { child.disable(); } } }, select: function() { for(var i = 0; i < arguments.length; i++) { var name = arguments[i]; var item = this.getItem(name); if(item) { item.select(); } } }, deselect: function() { for(var i = 0; i < arguments.length; i++) { var name = arguments[i]; var item = this.getItem(name); if(item) { item.disable(); } } }, setValue: function() { for(var i = 0; i < arguments.length; i += 2) { var name = arguments[i], value = arguments[i+1]; var item = this.getItem(name); if(item) { if(item instanceof dojo.widget.ToolbarItem) { item.setValue(value); } } } }});/* ToolbarItem hierarchy: - ToolbarItem - ToolbarButton - ToolbarDialog - ToolbarMenu - ToolbarSeparator - ToolbarSpace - ToolbarFlexibleSpace*//* ToolbarItem **************/dojo.widget.ToolbarItem = function() { dojo.widget.HtmlWidget.call(this);}dojo.inherits(dojo.widget.ToolbarItem, dojo.widget.HtmlWidget);dojo.lang.extend(dojo.widget.ToolbarItem, { templateString: '<span unselectable="on" class="toolbarItem"></span>', _name: null, getName: function() { return this._name; }, setName: function(value) { return this._name = value; }, getValue: function() { return this.getName(); }, setValue: function(value) { return this.setName(value); }, _selected: false, isSelected: function() { return this._selected; }, setSelected: function(is, force, preventEvent) { if(!this._toggleItem && !force) { return; } is = Boolean(is); if(force || this._enabled && this._selected != is) { this._selected = is; this.update(); if(!preventEvent) { this._fireEvent(is ? "onSelect" : "onDeselect"); this._fireEvent("onChangeSelect"); } } }, select: function(force, preventEvent) { return this.setSelected(true, force, preventEvent); }, deselect: function(force, preventEvent) { return this.setSelected(false, force, preventEvent); }, _toggleItem: false, isToggleItem: function() { return this._toggleItem; }, setToggleItem: function(value) { this._toggleItem = Boolean(value); }, toggleSelected: function(force) { return this.setSelected(!this._selected, force); }, _enabled: true, isEnabled: function() { return this._enabled; }, setEnabled: function(is, force, preventEvent) { is = Boolean(is); if(force || this._enabled != is) { this._enabled = is; this.update(); if(!preventEvent) { this._fireEvent(this._enabled ? "onEnable" : "onDisable"); this._fireEvent("onChangeEnabled"); } } 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); }, _icon: null, getIcon: function() { return this._icon; }, setIcon: function(value) { var icon = dojo.widget.Icon.make(value); if(this._icon) { this._icon.setIcon(icon); } else { this._icon = icon; } var iconNode = this._icon.getNode(); if(iconNode.parentNode != this.domNode) { if(this.domNode.hasChildNodes()) { this.domNode.insertBefore(iconNode, this.domNode.firstChild); } else { this.domNode.appendChild(iconNode); } } return this._icon; }, // TODO: update the label node (this.labelNode?) _label: "", getLabel: function() { return this._label; }, setLabel: function(value) { var ret = this._label = value; if(!this.labelNode) { this.labelNode = document.createElement("span"); this.domNode.appendChild(this.labelNode); } this.labelNode.innerHTML = ""; this.labelNode.appendChild(document.createTextNode(this._label)); this.update(); return ret; }, // fired from: setSelected, setEnabled, setLabel update: function() { if(this._enabled) { dojo.html.removeClass(this.domNode, "disabled"); if(this._selected) { dojo.html.addClass(this.domNode, "selected"); } else { dojo.html.removeClass(this.domNode, "selected"); } } else { this._selected = false; dojo.html.addClass(this.domNode, "disabled"); dojo.html.removeClass(this.domNode, "down"); dojo.html.removeClass(this.domNode, "hover"); } this._updateIcon(); }, _updateIcon: function() { if(this._icon) { if(this._enabled) { if(this._cssHover) { this._icon.hover(); } else if(this._selected) { this._icon.select(); } else { this._icon.enable(); } } else { this._icon.disable(); } } }, _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); } }, _onmouseover: function(e) { if(!this._enabled) { return }; dojo.html.addClass(this.domNode, "hover"); },
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -