]> git.wh0rd.org - tt-rss.git/blob - lib/dijit/_PaletteMixin.js
add dijit/dojo stuff; initial ui mockup
[tt-rss.git] / lib / dijit / _PaletteMixin.js
1 /*
2 Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
3 Available via Academic Free License >= 2.1 OR the modified BSD license.
4 see: http://dojotoolkit.org/license for details
5 */
6
7
8 if(!dojo._hasResource["dijit._PaletteMixin"]){
9 dojo._hasResource["dijit._PaletteMixin"]=true;
10 dojo.provide("dijit._PaletteMixin");
11 dojo.require("dijit._CssStateMixin");
12 dojo.declare("dijit._PaletteMixin",[dijit._CssStateMixin],{defaultTimeout:500,timeoutChangeRate:0.9,value:null,_selectedCell:-1,tabIndex:"0",cellClass:"dijitPaletteCell",dyeClass:"",_preparePalette:function(_1,_2){
13 this._cells=[];
14 var _3=this._blankGif;
15 var _4=dojo.getObject(this.dyeClass);
16 for(var _5=0;_5<_1.length;_5++){
17 var _6=dojo.create("tr",{tabIndex:"-1"},this.gridNode);
18 for(var _7=0;_7<_1[_5].length;_7++){
19 var _8=_1[_5][_7];
20 if(_8){
21 var _9=new _4(_8);
22 var _a=dojo.create("td",{"class":this.cellClass,tabIndex:"-1",title:_2[_8]});
23 _9.fillCell(_a,_3);
24 this.connect(_a,"ondijitclick","_onCellClick");
25 this._trackMouseState(_a,this.cellClass);
26 dojo.place(_a,_6);
27 _a.index=this._cells.length;
28 this._cells.push({node:_a,dye:_9});
29 }
30 }
31 }
32 this._xDim=_1[0].length;
33 this._yDim=_1.length;
34 var _b={UP_ARROW:-this._xDim,DOWN_ARROW:this._xDim,RIGHT_ARROW:this.isLeftToRight()?1:-1,LEFT_ARROW:this.isLeftToRight()?-1:1};
35 for(var _c in _b){
36 this._connects.push(dijit.typematic.addKeyListener(this.domNode,{charOrCode:dojo.keys[_c],ctrlKey:false,altKey:false,shiftKey:false},this,function(){
37 var _d=_b[_c];
38 return function(_e){
39 this._navigateByKey(_d,_e);
40 };
41 }(),this.timeoutChangeRate,this.defaultTimeout));
42 }
43 },postCreate:function(){
44 this.inherited(arguments);
45 this._setCurrent(this._cells[0].node);
46 },focus:function(){
47 dijit.focus(this._currentFocus);
48 },_onCellClick:function(_f){
49 var _10=_f.currentTarget,_11=this._getDye(_10).getValue();
50 this._setCurrent(_10);
51 setTimeout(dojo.hitch(this,function(){
52 dijit.focus(_10);
53 this._setValueAttr(_11,true);
54 }));
55 dojo.removeClass(_10,"dijitPaletteCellHover");
56 dojo.stopEvent(_f);
57 },_setCurrent:function(_12){
58 if("_currentFocus" in this){
59 dojo.attr(this._currentFocus,"tabIndex","-1");
60 }
61 this._currentFocus=_12;
62 if(_12){
63 dojo.attr(_12,"tabIndex",this.tabIndex);
64 }
65 },_setValueAttr:function(_13,_14){
66 this.value=null;
67 if(this._selectedCell>=0){
68 dojo.removeClass(this._cells[this._selectedCell].node,"dijitPaletteCellSelected");
69 }
70 this._selectedCell=-1;
71 if(_13){
72 for(var i=0;i<this._cells.length;i++){
73 if(_13==this._cells[i].dye.getValue()){
74 this._selectedCell=i;
75 this.value=_13;
76 dojo.addClass(this._cells[i].node,"dijitPaletteCellSelected");
77 if(_14||_14===undefined){
78 this.onChange(_13);
79 }
80 break;
81 }
82 }
83 }
84 },onChange:function(_15){
85 },_navigateByKey:function(_16,_17){
86 if(_17==-1){
87 return;
88 }
89 var _18=this._currentFocus.index+_16;
90 if(_18<this._cells.length&&_18>-1){
91 var _19=this._cells[_18].node;
92 this._setCurrent(_19);
93 setTimeout(dojo.hitch(dijit,"focus",_19),0);
94 }
95 },_getDye:function(_1a){
96 return this._cells[_1a.index].dye;
97 }});
98 }