diff options
author | Andrew Dolgov <[email protected]> | 2012-08-14 18:59:10 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2012-08-14 18:59:18 +0400 |
commit | 1354d17270961fff662d40f90521223f8fd0d73b (patch) | |
tree | e9266be71587e47c800303446e968a6d3565e2cf /lib/dijit/form/MultiSelect.js | |
parent | d04f8c826f5283765f52cf6b98b42a1ed8f2d6bc (diff) |
update dojo to 1.7.3
Diffstat (limited to 'lib/dijit/form/MultiSelect.js')
-rw-r--r-- | lib/dijit/form/MultiSelect.js | 121 |
1 files changed, 2 insertions, 119 deletions
diff --git a/lib/dijit/form/MultiSelect.js b/lib/dijit/form/MultiSelect.js index 12f3b40e7..da76fed00 100644 --- a/lib/dijit/form/MultiSelect.js +++ b/lib/dijit/form/MultiSelect.js @@ -1,119 +1,2 @@ -/* - Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved. - Available via Academic Free License >= 2.1 OR the modified BSD license. - see: http://dojotoolkit.org/license for details -*/ - - -if(!dojo._hasResource["dijit.form.MultiSelect"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dijit.form.MultiSelect"] = true; -dojo.provide("dijit.form.MultiSelect"); -dojo.require("dijit.form._FormWidget"); - - -dojo.declare("dijit.form.MultiSelect", dijit.form._FormValueWidget, { - // summary: - // Widget version of a <select multiple=true> element, - // for selecting multiple options. - - // size: Number - // Number of elements to display on a page - // NOTE: may be removed in version 2.0, since elements may have variable height; - // set the size via style="..." or CSS class names instead. - size: 7, - - templateString: "<select multiple='true' ${!nameAttrSetting} dojoAttachPoint='containerNode,focusNode' dojoAttachEvent='onchange: _onChange'></select>", - - attributeMap: dojo.delegate(dijit.form._FormWidget.prototype.attributeMap, { - size: "focusNode" - }), - - reset: function(){ - // summary: - // Reset the widget's value to what it was at initialization time - - // TODO: once we inherit from FormValueWidget this won't be needed - this._hasBeenBlurred = false; - this._setValueAttr(this._resetValue, true); - }, - - addSelected: function(/*dijit.form.MultiSelect*/ select){ - // summary: - // Move the selected nodes of a passed Select widget - // instance to this Select widget. - // - // example: - // | // move all the selected values from "bar" to "foo" - // | dijit.byId("foo").addSelected(dijit.byId("bar")); - - select.getSelected().forEach(function(n){ - this.containerNode.appendChild(n); - // scroll to bottom to see item - // cannot use scrollIntoView since <option> tags don't support all attributes - // does not work on IE due to a bug where <select> always shows scrollTop = 0 - this.domNode.scrollTop = this.domNode.offsetHeight; // overshoot will be ignored - // scrolling the source select is trickier esp. on safari who forgets to change the scrollbar size - var oldscroll = select.domNode.scrollTop; - select.domNode.scrollTop = 0; - select.domNode.scrollTop = oldscroll; - },this); - }, - - getSelected: function(){ - // summary: - // Access the NodeList of the selected options directly - return dojo.query("option",this.containerNode).filter(function(n){ - return n.selected; // Boolean - }); // dojo.NodeList - }, - - _getValueAttr: function(){ - // summary: - // Hook so get('value') works. - // description: - // Returns an array of the selected options' values. - return this.getSelected().map(function(n){ - return n.value; - }); - }, - - multiple: true, // for Form - - _setValueAttr: function(/*Array*/ values){ - // summary: - // Hook so set('value', values) works. - // description: - // Set the value(s) of this Select based on passed values - dojo.query("option",this.containerNode).forEach(function(n){ - n.selected = (dojo.indexOf(values,n.value) != -1); - }); - }, - - invertSelection: function(onChange){ - // summary: - // Invert the selection - // onChange: Boolean - // If null, onChange is not fired. - dojo.query("option",this.containerNode).forEach(function(n){ - n.selected = !n.selected; - }); - this._handleOnChange(this.get('value'), onChange == true); - }, - - _onChange: function(/*Event*/ e){ - this._handleOnChange(this.get('value'), true); - }, - - // for layout widgets: - resize: function(/*Object*/ size){ - if(size){ - dojo.marginBox(this.domNode, size); - } - }, - - postCreate: function(){ - this._onChange(); - } -}); - -} +//>>built +define("dijit/form/MultiSelect",["dojo/_base/array","dojo/_base/declare","dojo/dom-geometry","dojo/query","./_FormValueWidget"],function(_1,_2,_3,_4,_5){return _2("dijit.form.MultiSelect",_5,{size:7,templateString:"<select multiple='true' ${!nameAttrSetting} data-dojo-attach-point='containerNode,focusNode' data-dojo-attach-event='onchange: _onChange'></select>",addSelected:function(_6){_6.getSelected().forEach(function(n){this.containerNode.appendChild(n);this.domNode.scrollTop=this.domNode.offsetHeight;var _7=_6.domNode.scrollTop;_6.domNode.scrollTop=0;_6.domNode.scrollTop=_7;},this);this._set("value",this.get("value"));},getSelected:function(){return _4("option",this.containerNode).filter(function(n){return n.selected;});},_getValueAttr:function(){return _1.map(this.getSelected(),function(n){return n.value;});},multiple:true,_setValueAttr:function(_8,_9){_4("option",this.containerNode).forEach(function(n){n.selected=(_1.indexOf(_8,n.value)!=-1);});this.inherited(arguments);},invertSelection:function(_a){var _b=[];_4("option",this.containerNode).forEach(function(n){if(!n.selected){_b.push(n.value);}});this._setValueAttr(_b,!(_a===false||_a==null));},_onChange:function(){this._handleOnChange(this.get("value"),true);},resize:function(_c){if(_c){_3.setMarginBox(this.domNode,_c);}},postCreate:function(){this._set("value",this.get("value"));this.inherited(arguments);}});});
\ No newline at end of file |