From 2f01fe57a8d37767827d6db42850aef86a767c53 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 15 Nov 2010 10:39:52 +0300 Subject: add dijit/dojo stuff; initial ui mockup --- lib/dijit/form/MultiSelect.js | 49 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 lib/dijit/form/MultiSelect.js (limited to 'lib/dijit/form/MultiSelect.js') 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:"",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(); +}}); +} -- cgit v1.2.3