summaryrefslogtreecommitdiff
path: root/lib/dijit/form/MultiSelect.js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2010-11-15 10:39:52 +0300
committerAndrew Dolgov <[email protected]>2010-11-15 10:39:52 +0300
commit2f01fe57a8d37767827d6db42850aef86a767c53 (patch)
tree516a95ffce2fc2435aed8d9976e444dbcba7dce3 /lib/dijit/form/MultiSelect.js
parent951906dcecb1d3c7bcf751976a03e0c196ca6db0 (diff)
add dijit/dojo stuff; initial ui mockup
Diffstat (limited to 'lib/dijit/form/MultiSelect.js')
-rw-r--r--lib/dijit/form/MultiSelect.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/lib/dijit/form/MultiSelect.js b/lib/dijit/form/MultiSelect.js
new file mode 100644
index 000000000..8aacb4148
--- /dev/null
+++ b/lib/dijit/form/MultiSelect.js
@@ -0,0 +1,49 @@
+/*
+ Copyright (c) 2004-2010, 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"]){
+dojo._hasResource["dijit.form.MultiSelect"]=true;
+dojo.provide("dijit.form.MultiSelect");
+dojo.require("dijit.form._FormWidget");
+dojo.declare("dijit.form.MultiSelect",dijit.form._FormValueWidget,{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(){
+this._hasBeenBlurred=false;
+this._setValueAttr(this._resetValue,true);
+},addSelected:function(_1){
+_1.getSelected().forEach(function(n){
+this.containerNode.appendChild(n);
+this.domNode.scrollTop=this.domNode.offsetHeight;
+var _2=_1.domNode.scrollTop;
+_1.domNode.scrollTop=0;
+_1.domNode.scrollTop=_2;
+},this);
+},getSelected:function(){
+return dojo.query("option",this.containerNode).filter(function(n){
+return n.selected;
+});
+},_getValueAttr:function(){
+return this.getSelected().map(function(n){
+return n.value;
+});
+},multiple:true,_setValueAttr:function(_3){
+dojo.query("option",this.containerNode).forEach(function(n){
+n.selected=(dojo.indexOf(_3,n.value)!=-1);
+});
+},invertSelection:function(_4){
+dojo.query("option",this.containerNode).forEach(function(n){
+n.selected=!n.selected;
+});
+this._handleOnChange(this.get("value"),_4==true);
+},_onChange:function(e){
+this._handleOnChange(this.get("value"),true);
+},resize:function(_5){
+if(_5){
+dojo.marginBox(this.domNode,_5);
+}
+},postCreate:function(){
+this._onChange();
+}});
+}