add an override to setValue within the ext spinner extension so setValue amounts are run through the strategy

This commit is contained in:
Damien Churchill 2009-08-03 22:26:18 +00:00
parent f216ffe54e
commit fa2dedda73

View File

@ -30,6 +30,7 @@ Ext.ux.form.Spinner = function(config){
'spinup' : true, 'spinup' : true,
'spindown' : true 'spindown' : true
}); });
this.initStrategy();
} }
Ext.extend(Ext.ux.form.Spinner, Ext.form.TriggerField, { Ext.extend(Ext.ux.form.Spinner, Ext.form.TriggerField, {
@ -103,30 +104,32 @@ Ext.extend(Ext.ux.form.Spinner, Ext.form.TriggerField, {
this.dd.endDrag = this.endDrag.createDelegate(this); this.dd.endDrag = this.endDrag.createDelegate(this);
this.dd.startDrag = this.startDrag.createDelegate(this); this.dd.startDrag = this.startDrag.createDelegate(this);
this.dd.onDrag = this.onDrag.createDelegate(this); this.dd.onDrag = this.onDrag.createDelegate(this);
},
/* initStrategy: function() {
jsakalos suggestion /*
http://extjs.com/forum/showthread.php?p=121850#post121850 */ jsakalos suggestion
if('object' == typeof this.strategy && this.strategy.xtype) { http://extjs.com/forum/showthread.php?p=121850#post121850 */
switch(this.strategy.xtype) { if('object' == typeof this.strategy && this.strategy.xtype) {
case 'number': switch(this.strategy.xtype) {
this.strategy = new Ext.ux.form.Spinner.NumberStrategy(this.strategy); case 'number':
break; this.strategy = new Ext.ux.form.Spinner.NumberStrategy(this.strategy);
break;
case 'date': case 'date':
this.strategy = new Ext.ux.form.Spinner.DateStrategy(this.strategy); this.strategy = new Ext.ux.form.Spinner.DateStrategy(this.strategy);
break; break;
case 'time': case 'time':
this.strategy = new Ext.ux.form.Spinner.TimeStrategy(this.strategy); this.strategy = new Ext.ux.form.Spinner.TimeStrategy(this.strategy);
break; break;
default: default:
delete(this.strategy); delete(this.strategy);
break; break;
} }
delete(this.strategy.xtype); delete(this.strategy.xtype);
} }
if(this.strategy == undefined){ if(this.strategy == undefined){
this.strategy = new Ext.ux.form.Spinner.NumberStrategy(); this.strategy = new Ext.ux.form.Spinner.NumberStrategy();
@ -299,6 +302,11 @@ Ext.extend(Ext.ux.form.Spinner, Ext.form.TriggerField, {
this.fireEvent("spin", this); this.fireEvent("spin", this);
this.fireEvent("spindown", this); this.fireEvent("spindown", this);
this.fireEvent("change", this); this.fireEvent("change", this);
},
setValue: function(value) {
value = this.strategy.fixBoundries(value);
this.setRawValue(value);
} }
}); });