]> git.wh0rd.org - tt-rss.git/blob - lib/dijit/form/NumberTextBox.js
add dijit/dojo stuff; initial ui mockup
[tt-rss.git] / lib / dijit / form / NumberTextBox.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.form.NumberTextBox"]){
9 dojo._hasResource["dijit.form.NumberTextBox"]=true;
10 dojo.provide("dijit.form.NumberTextBox");
11 dojo.require("dijit.form.ValidationTextBox");
12 dojo.require("dojo.number");
13 dojo.declare("dijit.form.NumberTextBoxMixin",null,{regExpGen:dojo.number.regexp,value:NaN,editOptions:{pattern:"#.######"},_formatter:dojo.number.format,_setConstraintsAttr:function(_1){
14 var _2=typeof _1.places=="number"?_1.places:0;
15 if(_2){
16 _2++;
17 }
18 if(typeof _1.max!="number"){
19 _1.max=9*Math.pow(10,15-_2);
20 }
21 if(typeof _1.min!="number"){
22 _1.min=-9*Math.pow(10,15-_2);
23 }
24 this.inherited(arguments,[_1]);
25 if(this.focusNode&&this.focusNode.value&&!isNaN(this.value)){
26 this.set("value",this.value);
27 }
28 },_onFocus:function(){
29 if(this.disabled){
30 return;
31 }
32 var _3=this.get("value");
33 if(typeof _3=="number"&&!isNaN(_3)){
34 var _4=this.format(_3,this.constraints);
35 if(_4!==undefined){
36 this.textbox.value=_4;
37 }
38 }
39 this.inherited(arguments);
40 },format:function(_5,_6){
41 var _7=String(_5);
42 if(typeof _5!="number"){
43 return _7;
44 }
45 if(isNaN(_5)){
46 return "";
47 }
48 if(!("rangeCheck" in this&&this.rangeCheck(_5,_6))&&_6.exponent!==false&&/\de[-+]?\d/i.test(_7)){
49 return _7;
50 }
51 if(this.editOptions&&this._focused){
52 _6=dojo.mixin({},_6,this.editOptions);
53 }
54 return this._formatter(_5,_6);
55 },parse:dojo.number.parse,_getDisplayedValueAttr:function(){
56 var v=this.inherited(arguments);
57 return isNaN(v)?this.textbox.value:v;
58 },filter:function(_8){
59 return (_8===null||_8===""||_8===undefined)?NaN:this.inherited(arguments);
60 },serialize:function(_9,_a){
61 return (typeof _9!="number"||isNaN(_9))?"":this.inherited(arguments);
62 },_setValueAttr:function(_b,_c,_d){
63 if(_b!==undefined&&_d===undefined){
64 _d=String(_b);
65 if(typeof _b=="number"){
66 if(isNaN(_b)){
67 _d="";
68 }else{
69 if(("rangeCheck" in this&&this.rangeCheck(_b,this.constraints))||this.constraints.exponent===false||!/\de[-+]?\d/i.test(_d)){
70 _d=undefined;
71 }
72 }
73 }else{
74 if(!_b){
75 _d="";
76 _b=NaN;
77 }else{
78 _b=undefined;
79 }
80 }
81 }
82 this.inherited(arguments,[_b,_c,_d]);
83 },_getValueAttr:function(){
84 var v=this.inherited(arguments);
85 if(isNaN(v)&&this.textbox.value!==""){
86 if(this.constraints.exponent!==false&&/\de[-+]?\d/i.test(this.textbox.value)&&(new RegExp("^"+dojo.number._realNumberRegexp(dojo.mixin({},this.constraints))+"$").test(this.textbox.value))){
87 var n=Number(this.textbox.value);
88 return isNaN(n)?undefined:n;
89 }else{
90 return undefined;
91 }
92 }else{
93 return v;
94 }
95 },isValid:function(_e){
96 if(!this._focused||this._isEmpty(this.textbox.value)){
97 return this.inherited(arguments);
98 }else{
99 var v=this.get("value");
100 if(!isNaN(v)&&this.rangeCheck(v,this.constraints)){
101 if(this.constraints.exponent!==false&&/\de[-+]?\d/i.test(this.textbox.value)){
102 return true;
103 }else{
104 return this.inherited(arguments);
105 }
106 }else{
107 return false;
108 }
109 }
110 }});
111 dojo.declare("dijit.form.NumberTextBox",[dijit.form.RangeBoundTextBox,dijit.form.NumberTextBoxMixin],{});
112 }