Upgrade to ExtJS 4.0.7 - Released 10/19/2011
[extjs.git] / docs / source / SortTypes.html
index 7cb1c36..6171d7a 100644 (file)
-<html>\r
-<head>\r
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    \r
-  <title>The source code</title>\r
-    <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
-    <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
-</head>\r
-<body  onload="prettyPrint();">\r
-    <pre class="prettyprint lang-js">\r
-<div id="cls-Ext.data.SortTypes"></div>/**\r
- * @class Ext.data.SortTypes\r
- * @singleton\r
- * Defines the default sorting (casting?) comparison functions used when sorting data.\r
- */\r
-Ext.data.SortTypes = {\r
-    <div id="method-Ext.data.SortTypes-none"></div>/**\r
-     * Default sort that does nothing\r
-     * @param {Mixed} s The value being converted\r
-     * @return {Mixed} The comparison value\r
-     */\r
-    none : function(s){\r
-        return s;\r
-    },\r
-    \r
-    <div id="prop-Ext.data.SortTypes-stripTagsRE"></div>/**\r
-     * The regular expression used to strip tags\r
-     * @type {RegExp}\r
-     * @property\r
-     */\r
-    stripTagsRE : /<\/?[^>]+>/gi,\r
-    \r
-    <div id="method-Ext.data.SortTypes-asText"></div>/**\r
-     * Strips all HTML tags to sort on text only\r
-     * @param {Mixed} s The value being converted\r
-     * @return {String} The comparison value\r
-     */\r
-    asText : function(s){\r
-        return String(s).replace(this.stripTagsRE, "");\r
-    },\r
-    \r
-    <div id="method-Ext.data.SortTypes-asUCText"></div>/**\r
-     * Strips all HTML tags to sort on text only - Case insensitive\r
-     * @param {Mixed} s The value being converted\r
-     * @return {String} The comparison value\r
-     */\r
-    asUCText : function(s){\r
-        return String(s).toUpperCase().replace(this.stripTagsRE, "");\r
-    },\r
-    \r
-    <div id="method-Ext.data.SortTypes-asUCString"></div>/**\r
-     * Case insensitive string\r
-     * @param {Mixed} s The value being converted\r
-     * @return {String} The comparison value\r
-     */\r
-    asUCString : function(s) {\r
-       return String(s).toUpperCase();\r
-    },\r
-    \r
-    <div id="method-Ext.data.SortTypes-asDate"></div>/**\r
-     * Date sorting\r
-     * @param {Mixed} s The value being converted\r
-     * @return {Number} The comparison value\r
-     */\r
-    asDate : function(s) {\r
-        if(!s){\r
-            return 0;\r
-        }\r
-        if(Ext.isDate(s)){\r
-            return s.getTime();\r
-        }\r
-       return Date.parse(String(s));\r
-    },\r
-    \r
-    <div id="method-Ext.data.SortTypes-asFloat"></div>/**\r
-     * Float sorting\r
-     * @param {Mixed} s The value being converted\r
-     * @return {Float} The comparison value\r
-     */\r
-    asFloat : function(s) {\r
-       var val = parseFloat(String(s).replace(/,/g, ""));\r
-       return isNaN(val) ? 0 : val;\r
-    },\r
-    \r
-    <div id="method-Ext.data.SortTypes-asInt"></div>/**\r
-     * Integer sorting\r
-     * @param {Mixed} s The value being converted\r
-     * @return {Number} The comparison value\r
-     */\r
-    asInt : function(s) {\r
-        var val = parseInt(String(s).replace(/,/g, ""), 10);\r
-        return isNaN(val) ? 0 : val;\r
-    }\r
-};</pre>    \r
-</body>\r
-</html>
\ No newline at end of file
+<!DOCTYPE html>
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>The source code</title>
+  <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
+  <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
+  <style type="text/css">
+    .highlight { display: block; background-color: #ddd; }
+  </style>
+  <script type="text/javascript">
+    function highlight() {
+      document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
+    }
+  </script>
+</head>
+<body onload="prettyPrint(); highlight();">
+  <pre class="prettyprint lang-js"><span id='Ext-data-SortTypes'>/**
+</span> * @class Ext.data.SortTypes
+ * This class defines a series of static methods that are used on a
+ * {@link Ext.data.Field} for performing sorting. The methods cast the 
+ * underlying values into a data type that is appropriate for sorting on
+ * that particular field.  If a {@link Ext.data.Field#type} is specified, 
+ * the sortType will be set to a sane default if the sortType is not 
+ * explicitly defined on the field. The sortType will make any necessary
+ * modifications to the value and return it.
+ * &lt;ul&gt;
+ * &lt;li&gt;&lt;b&gt;asText&lt;/b&gt; - Removes any tags and converts the value to a string&lt;/li&gt;
+ * &lt;li&gt;&lt;b&gt;asUCText&lt;/b&gt; - Removes any tags and converts the value to an uppercase string&lt;/li&gt;
+ * &lt;li&gt;&lt;b&gt;asUCText&lt;/b&gt; - Converts the value to an uppercase string&lt;/li&gt;
+ * &lt;li&gt;&lt;b&gt;asDate&lt;/b&gt; - Converts the value into Unix epoch time&lt;/li&gt;
+ * &lt;li&gt;&lt;b&gt;asFloat&lt;/b&gt; - Converts the value to a floating point number&lt;/li&gt;
+ * &lt;li&gt;&lt;b&gt;asInt&lt;/b&gt; - Converts the value to an integer number&lt;/li&gt;
+ * &lt;/ul&gt;
+ * &lt;p&gt;
+ * It is also possible to create a custom sortType that can be used throughout
+ * an application.
+ * &lt;pre&gt;&lt;code&gt;
+Ext.apply(Ext.data.SortTypes, {
+    asPerson: function(person){
+        // expects an object with a first and last name property
+        return person.lastName.toUpperCase() + person.firstName.toLowerCase();
+    }    
+});
+
+Ext.define('Employee', {
+    extend: 'Ext.data.Model',
+    fields: [{
+        name: 'person',
+        sortType: 'asPerson'
+    }, {
+        name: 'salary',
+        type: 'float' // sortType set to asFloat
+    }]
+});
+ * &lt;/code&gt;&lt;/pre&gt;
+ * &lt;/p&gt;
+ * @singleton
+ * @docauthor Evan Trimboli &lt;evan@sencha.com&gt;
+ */
+Ext.define('Ext.data.SortTypes', {
+    
+    singleton: true,
+    
+<span id='Ext-data-SortTypes-method-none'>    /**
+</span>     * Default sort that does nothing
+     * @param {Object} s The value being converted
+     * @return {Object} The comparison value
+     */
+    none : function(s) {
+        return s;
+    },
+
+<span id='Ext-data-SortTypes-property-stripTagsRE'>    /**
+</span>     * The regular expression used to strip tags
+     * @type {RegExp}
+     * @property
+     */
+    stripTagsRE : /&lt;\/?[^&gt;]+&gt;/gi,
+
+<span id='Ext-data-SortTypes-method-asText'>    /**
+</span>     * Strips all HTML tags to sort on text only
+     * @param {Object} s The value being converted
+     * @return {String} The comparison value
+     */
+    asText : function(s) {
+        return String(s).replace(this.stripTagsRE, &quot;&quot;);
+    },
+
+<span id='Ext-data-SortTypes-method-asUCText'>    /**
+</span>     * Strips all HTML tags to sort on text only - Case insensitive
+     * @param {Object} s The value being converted
+     * @return {String} The comparison value
+     */
+    asUCText : function(s) {
+        return String(s).toUpperCase().replace(this.stripTagsRE, &quot;&quot;);
+    },
+
+<span id='Ext-data-SortTypes-method-asUCString'>    /**
+</span>     * Case insensitive string
+     * @param {Object} s The value being converted
+     * @return {String} The comparison value
+     */
+    asUCString : function(s) {
+        return String(s).toUpperCase();
+    },
+
+<span id='Ext-data-SortTypes-method-asDate'>    /**
+</span>     * Date sorting
+     * @param {Object} s The value being converted
+     * @return {Number} The comparison value
+     */
+    asDate : function(s) {
+        if(!s){
+            return 0;
+        }
+        if(Ext.isDate(s)){
+            return s.getTime();
+        }
+        return Date.parse(String(s));
+    },
+
+<span id='Ext-data-SortTypes-method-asFloat'>    /**
+</span>     * Float sorting
+     * @param {Object} s The value being converted
+     * @return {Number} The comparison value
+     */
+    asFloat : function(s) {
+        var val = parseFloat(String(s).replace(/,/g, &quot;&quot;));
+        return isNaN(val) ? 0 : val;
+    },
+
+<span id='Ext-data-SortTypes-method-asInt'>    /**
+</span>     * Integer sorting
+     * @param {Object} s The value being converted
+     * @return {Number} The comparison value
+     */
+    asInt : function(s) {
+        var val = parseInt(String(s).replace(/,/g, &quot;&quot;), 10);
+        return isNaN(val) ? 0 : val;
+    }
+});</pre>
+</body>
+</html>