/*! * Ext JS Library 3.4.0 * Copyright(c) 2006-2011 Sencha Inc. * licensing@sencha.com * http://www.sencha.com/license */ /** * @class Ext.data.Types *
This is s static class containing the system-supplied data types which may be given to a {@link Ext.data.Field Field}.
*The properties in this class are used as type indicators in the {@link Ext.data.Field Field} class, so to * test whether a Field is of a certain type, compare the {@link Ext.data.Field#type type} property against properties * of this class.
*Developers may add their own application-specific data types to this class. Definition names must be UPPERCASE. * each type definition must contain three properties:
*convert
: FunctionsortType
: Function type
: String For example, to create a VELatLong field (See the Microsoft Bing Mapping API) containing the latitude/longitude value of a datapoint on a map from a JsonReader data block
* which contained the properties lat
and long
, you would define a new data type like this:
// Add a new Field data type which stores a VELatLong object in the Record.
Ext.data.Types.VELATLONG = {
convert: function(v, data) {
return new VELatLong(data.lat, data.long);
},
sortType: function(v) {
return v.Latitude; // When sorting, order by latitude
},
type: 'VELatLong'
};
* Then, when declaring a Record, use
var types = Ext.data.Types; // allow shorthand type access
UnitRecord = Ext.data.Record.create([
{ name: 'unitName', mapping: 'UnitName' },
{ name: 'curSpeed', mapping: 'CurSpeed', type: types.INT },
{ name: 'latitude', mapping: 'lat', type: types.FLOAT },
{ name: 'latitude', mapping: 'lat', type: types.FLOAT },
{ name: 'position', type: types.VELATLONG }
]);
* @singleton
*/
Ext.data.Types = new function(){
var st = Ext.data.SortTypes;
Ext.apply(this, {
/**
* @type Regexp
* @property stripRe
* A regular expression for stripping non-numeric characters from a numeric value. Defaults to /[\$,%]/g.
* This should be overridden for localization.
*/
stripRe: /[\$,%]/g,
/**
* @type Object.
* @property AUTO
* This data type means that no conversion is applied to the raw data before it is placed into a Record.
*/
AUTO: {
convert: function(v){ return v; },
sortType: st.none,
type: 'auto'
},
/**
* @type Object.
* @property STRING
* This data type means that the raw data is converted into a String before it is placed into a Record.
*/
STRING: {
convert: function(v){ return (v === undefined || v === null) ? '' : String(v); },
sortType: st.asUCString,
type: 'string'
},
/**
* @type Object.
* @property INT
* This data type means that the raw data is converted into an integer before it is placed into a Record.
* The synonym INTEGER
is equivalent.
The synonym NUMBER
is equivalent.
This data type means that the raw data is converted into a boolean before it is placed into
* a Record. The string "true" and the number 1 are converted to boolean true
.
The synonym BOOLEAN
is equivalent.
This data type means that the raw data is converted into a boolean before it is placed into
* a Record. The string "true" and the number 1 are converted to boolean true
.
The synonym BOOL
is equivalent.
The synonym INT
is equivalent.
The synonym FLOAT
is equivalent.