summaryrefslogtreecommitdiff
path: root/lib/dijit/_PaletteMixin.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/_PaletteMixin.js
parent951906dcecb1d3c7bcf751976a03e0c196ca6db0 (diff)
add dijit/dojo stuff; initial ui mockup
Diffstat (limited to 'lib/dijit/_PaletteMixin.js')
-rw-r--r--lib/dijit/_PaletteMixin.js98
1 files changed, 98 insertions, 0 deletions
diff --git a/lib/dijit/_PaletteMixin.js b/lib/dijit/_PaletteMixin.js
new file mode 100644
index 000000000..a12855d12
--- /dev/null
+++ b/lib/dijit/_PaletteMixin.js
@@ -0,0 +1,98 @@
+/*
+ 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._PaletteMixin"]){
+dojo._hasResource["dijit._PaletteMixin"]=true;
+dojo.provide("dijit._PaletteMixin");
+dojo.require("dijit._CssStateMixin");
+dojo.declare("dijit._PaletteMixin",[dijit._CssStateMixin],{defaultTimeout:500,timeoutChangeRate:0.9,value:null,_selectedCell:-1,tabIndex:"0",cellClass:"dijitPaletteCell",dyeClass:"",_preparePalette:function(_1,_2){
+this._cells=[];
+var _3=this._blankGif;
+var _4=dojo.getObject(this.dyeClass);
+for(var _5=0;_5<_1.length;_5++){
+var _6=dojo.create("tr",{tabIndex:"-1"},this.gridNode);
+for(var _7=0;_7<_1[_5].length;_7++){
+var _8=_1[_5][_7];
+if(_8){
+var _9=new _4(_8);
+var _a=dojo.create("td",{"class":this.cellClass,tabIndex:"-1",title:_2[_8]});
+_9.fillCell(_a,_3);
+this.connect(_a,"ondijitclick","_onCellClick");
+this._trackMouseState(_a,this.cellClass);
+dojo.place(_a,_6);
+_a.index=this._cells.length;
+this._cells.push({node:_a,dye:_9});
+}
+}
+}
+this._xDim=_1[0].length;
+this._yDim=_1.length;
+var _b={UP_ARROW:-this._xDim,DOWN_ARROW:this._xDim,RIGHT_ARROW:this.isLeftToRight()?1:-1,LEFT_ARROW:this.isLeftToRight()?-1:1};
+for(var _c in _b){
+this._connects.push(dijit.typematic.addKeyListener(this.domNode,{charOrCode:dojo.keys[_c],ctrlKey:false,altKey:false,shiftKey:false},this,function(){
+var _d=_b[_c];
+return function(_e){
+this._navigateByKey(_d,_e);
+};
+}(),this.timeoutChangeRate,this.defaultTimeout));
+}
+},postCreate:function(){
+this.inherited(arguments);
+this._setCurrent(this._cells[0].node);
+},focus:function(){
+dijit.focus(this._currentFocus);
+},_onCellClick:function(_f){
+var _10=_f.currentTarget,_11=this._getDye(_10).getValue();
+this._setCurrent(_10);
+setTimeout(dojo.hitch(this,function(){
+dijit.focus(_10);
+this._setValueAttr(_11,true);
+}));
+dojo.removeClass(_10,"dijitPaletteCellHover");
+dojo.stopEvent(_f);
+},_setCurrent:function(_12){
+if("_currentFocus" in this){
+dojo.attr(this._currentFocus,"tabIndex","-1");
+}
+this._currentFocus=_12;
+if(_12){
+dojo.attr(_12,"tabIndex",this.tabIndex);
+}
+},_setValueAttr:function(_13,_14){
+this.value=null;
+if(this._selectedCell>=0){
+dojo.removeClass(this._cells[this._selectedCell].node,"dijitPaletteCellSelected");
+}
+this._selectedCell=-1;
+if(_13){
+for(var i=0;i<this._cells.length;i++){
+if(_13==this._cells[i].dye.getValue()){
+this._selectedCell=i;
+this.value=_13;
+dojo.addClass(this._cells[i].node,"dijitPaletteCellSelected");
+if(_14||_14===undefined){
+this.onChange(_13);
+}
+break;
+}
+}
+}
+},onChange:function(_15){
+},_navigateByKey:function(_16,_17){
+if(_17==-1){
+return;
+}
+var _18=this._currentFocus.index+_16;
+if(_18<this._cells.length&&_18>-1){
+var _19=this._cells[_18].node;
+this._setCurrent(_19);
+setTimeout(dojo.hitch(dijit,"focus",_19),0);
+}
+},_getDye:function(_1a){
+return this._cells[_1a.index].dye;
+}});
+}