[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
xampp182
/
htdocs
/
simpeg
/
zapatec
/
zpgrid
/
zpgrid
/
jsdocs
/
[
Home
]
File: overview-summary-zpgrid-convert.js.html
<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd"> <html> <head> <title> Zapatec Grid Overview </title> <link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style"> <script> function asd() { parent.document.title="zpgrid-convert.js Overview"; } </script> </head> <body bgcolor="white" onload="asd();"> <!-- ========== START OF NAVBAR ========== --> <a name="navbar_top"><!-- --></a> <table border="0" width="100%" cellpadding="1" cellspacing="0"> <tr> <td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1"> <a name="navbar_top_firstrow"><!-- --></a> <table border="0" cellpadding="0" cellspacing="3"> <tr align="center" valign="top"> <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td> <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> <font class="NavBarFont1Rev"><b>File</b></font> </td> <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td> <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td> <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td> <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td> </tr> </table> </td> <td bgcolor="#EEEEFF" align="right" valign="top"> <em> <b>Zapatec Grid</b></em> </td> </tr> <tr> <td bgcolor="white" class="NavBarCell2"><font size="-2"> PREV NEXT</font></td> <td bgcolor="white" class="NavBarCell2"><font size="-2"> <a href="index.html" target="_top"><b>FRAMES</b></a> <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a> <script> <!-- if(window==top) { document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>'); } //--> </script> <noscript> <a href="allclasses-noframe.html" target=""><b>All Classes</b></a> </noscript> </font></td> </tr> </table> <!-- =========== END OF NAVBAR =========== --> <hr> <center> <h2>zpgrid-convert.js</h2> </center> <h4>Summary</h4> <p> Plugin for Zapatec Grid to provide different data types for cells. <pre> Copyright (c) 2004-2006 by Zapatec, Inc. http://www.zapatec.com 1700 MLK Way, Berkeley, California, 94709, U.S.A. All rights reserved. </pre><BR/><BR/> </p> <hr> <!-- ========== METHOD SUMMARY =========== --> <!-- ========== END METHOD SUMMARY =========== --> <pre class="sourceview"><span class="comment">/** * <span class="attrib">@fileoverview</span> Plugin for Zapatec Grid to provide different data types for * cells. * * <pre> * Copyright (c) 2004-2006 by Zapatec, Inc. * http://www.zapatec.com * 1700 MLK Way, Berkeley, California, * 94709, U.S.A. * All rights reserved. * </pre> */</span> <span class="comment">/* $Id: zpgrid-convert.js 7586 2007-07-20 12:46:16Z alex $ */</span> <span class="comment">/** * Converts cell to string data type. * * <span class="attrib">@param</span> {object} oCell Cell object * <span class="attrib">@return</span> Converted cell object * <span class="attrib">@type</span> object */</span> Zapatec.Grid.<span class="reserved">prototype</span>.convertString = <span class="reserved">function</span>(oCell) { <span class="reserved">if</span> (!(oCell instanceof Object)) { oCell = {}; } <span class="comment">// Convert to string</span> oCell.v += <span class="literal">''</span>; <span class="comment">// Remove multiple whitespaces</span> oCell.v = oCell.v.replace(/\s+/g, <span class="literal">' '</span>); <span class="comment">// Remove leading and trailing space</span> oCell.v = oCell.v.replace(/^\s/, <span class="literal">''</span>).replace(/\s$/, <span class="literal">''</span>); oCell.c = oCell.o = oCell.v; <span class="comment">// Remove HTML tags</span> oCell.c = oCell.c.replace(/<[^>]*>/g, <span class="literal">''</span>); <span class="reserved">return</span> oCell; }; <span class="comment">/** * Converts cell to insensitive string data type. * * <span class="attrib">@param</span> {object} oCell Cell object * <span class="attrib">@return</span> Converted cell object * <span class="attrib">@type</span> object */</span> Zapatec.Grid.<span class="reserved">prototype</span>.convertInsensitiveString = <span class="reserved">function</span>(oCell) { oCell = <span class="reserved">this</span>.convertString(oCell); oCell.c = oCell.c.toUpperCase(); <span class="reserved">return</span> oCell; }; <span class="comment">/** * Searches specified value in the specified cell of insensitive string data * type. * * <pre> * Arguments format: * { * cell: [object] cell object, * searchValue: [string] value to search for * } * </pre> * * <span class="attrib">@param</span> {object} oArg Arguments * <span class="attrib">@return</span> The index within the cell string representation of the first * occurrence of the specified value, or -1 if the value is not found, or * undefined in case of invalid arguments * <span class="attrib">@type</span> number */</span> Zapatec.Grid.<span class="reserved">prototype</span>.searchInsensitiveString = <span class="reserved">function</span>(oArg) { <span class="reserved">if</span> (!oArg) { <span class="reserved">return</span>; } var oCell = oArg.cell; <span class="comment">// Get string to search in</span> var sText = <span class="reserved">this</span>.getCellValueString(oCell); <span class="comment">// Remove HTML tags</span> sText = sText.replace(/<[^>]*>/g, <span class="literal">''</span>); <span class="comment">// Search</span> <span class="reserved">return</span> sText.search(new RegExp(Zapatec.Utils.escapeRegExp(oArg.searchValue), <span class="literal">'i'</span>)); }; <span class="comment">/** * Converts cell to integer data type. * * <span class="attrib">@param</span> {object} oCell Cell object * <span class="attrib">@return</span> Converted cell object * <span class="attrib">@type</span> object */</span> Zapatec.Grid.<span class="reserved">prototype</span>.convertInteger = <span class="reserved">function</span>(oCell) { <span class="reserved">if</span> (oCell && (oCell.v == Infinity || oCell.v == -Infinity)) { <span class="reserved">return</span> oCell; } oCell = <span class="reserved">this</span>.convertString(oCell); <span class="comment">// Get only numbers and decimal</span> oCell.c = oCell.c.replace(/[^0-9\.\-]/g, <span class="literal">''</span>); <span class="comment">// Ignore any chars after decimal, no rounding</span> oCell.c = oCell.c.replace(/\..*/g, <span class="literal">''</span>); <span class="comment">// Convert to integer</span> oCell.c = parseInt(oCell.c); <span class="reserved">if</span> (isNaN(oCell.c)) { oCell.c = 0; } <span class="reserved">return</span> oCell; }; <span class="comment">/** * Converts cell containing number in German format to integer data type. * * <span class="attrib">@param</span> {object} oCell Cell object * <span class="attrib">@return</span> Converted cell object * <span class="attrib">@type</span> object */</span> Zapatec.Grid.<span class="reserved">prototype</span>.convertIntegerGerman = <span class="reserved">function</span>(oCell) { <span class="reserved">if</span> (oCell && (oCell.v == Infinity || oCell.v == -Infinity)) { <span class="reserved">return</span> oCell; } oCell = <span class="reserved">this</span>.convertString(oCell); <span class="comment">// Get only numbers and decimal</span> oCell.c = oCell.c.replace(/[^0-9,\-]/g, <span class="literal">''</span>); <span class="comment">// Ignore any chars after decimal, no rounding</span> oCell.c = oCell.c.replace(/,.*/g, <span class="literal">''</span>); <span class="comment">// Convert to integer</span> oCell.c = parseInt(oCell.c); <span class="reserved">if</span> (isNaN(oCell.c)) { oCell.c = 0; } <span class="reserved">return</span> oCell; }; <span class="comment">/** * Converts cell to float data type. * * <span class="attrib">@param</span> {object} oCell Cell object * <span class="attrib">@return</span> Converted cell object * <span class="attrib">@type</span> object */</span> Zapatec.Grid.<span class="reserved">prototype</span>.convertFloat = <span class="reserved">function</span>(oCell) { <span class="reserved">if</span> (oCell && (oCell.v == Infinity || oCell.v == -Infinity)) { <span class="reserved">return</span> oCell; } oCell = <span class="reserved">this</span>.convertString(oCell); <span class="comment">// Get only numbers and decimal</span> oCell.c = oCell.c.replace(/[^0-9\.\-]/g, <span class="literal">''</span>); <span class="comment">// Convert to float</span> oCell.c = parseFloat(oCell.c); <span class="reserved">if</span> (isNaN(oCell.c)) { oCell.c = 0; } <span class="reserved">return</span> oCell; }; <span class="comment">/** * Converts cell containing number in German format to float data type. * * <span class="attrib">@param</span> {object} oCell Cell object * <span class="attrib">@return</span> Converted cell object * <span class="attrib">@type</span> object */</span> Zapatec.Grid.<span class="reserved">prototype</span>.convertFloatGerman = <span class="reserved">function</span>(oCell) { <span class="reserved">if</span> (oCell && (oCell.v == Infinity || oCell.v == -Infinity)) { <span class="reserved">return</span> oCell; } oCell = <span class="reserved">this</span>.convertString(oCell); <span class="comment">// Get only numbers and decimal</span> oCell.c = oCell.c.replace(/[^0-9,\-]/g, <span class="literal">''</span>); oCell.c = oCell.c.replace(/,/g, <span class="literal">'.'</span>); <span class="comment">// Convert to float</span> oCell.c = parseFloat(oCell.c); <span class="reserved">if</span> (isNaN(oCell.c)) { oCell.c = 0; } <span class="reserved">return</span> oCell; }; <span class="comment">/** * Converts cell to date data type. * * <span class="attrib">@param</span> {object} oCell Cell object * <span class="attrib">@return</span> Converted cell object * <span class="attrib">@type</span> object */</span> Zapatec.Grid.<span class="reserved">prototype</span>.convertDate = <span class="reserved">function</span>(oCell) { oCell = <span class="reserved">this</span>.convertString(oCell); oCell.c = Date.parse(oCell.c); <span class="reserved">return</span> oCell; }; <span class="comment">/** * Converts cell to time data type. * * <pre> * Following time formats are recognized: * 1) HH:MM:SS * 2) HH:MM:SS AM/PM * 3) HH:MM * 4) HH:MM AM/PM * 5) HHMMSS * 6) HHMMSS AM/PM * 7) HHMM * 8) HHMM AM/PM * * Any type of separator can be used. * * Examples: 1.40AM, 05-06-02, 3:8:1, 0205[PM], etc. * </pre> * * <span class="attrib">@param</span> {object} oCell Cell object * <span class="attrib">@return</span> Converted cell object * <span class="attrib">@type</span> object */</span> Zapatec.Grid.<span class="reserved">prototype</span>.convertTime = <span class="reserved">function</span>(oCell) { oCell = <span class="reserved">this</span>.convertString(oCell); <span class="comment">// Parse value</span> var aMatches = oCell.c.match(/(\d{1,2})\D+(\d{1,2})(\D+(\d{1,2}))?\W*(AM|PM|A|P)?/i); <span class="reserved">if</span> (!aMatches) { <span class="comment">// Try without separator</span> aMatches = oCell.c.match(/(\d{2})(\d{2})((\d{2}))?\W*(AM|PM|A|P)?/i); } <span class="comment">// Get compare value</span> <span class="reserved">if</span> (aMatches && aMatches[1] && aMatches[2]) { <span class="comment">// Get hour</span> var hour = aMatches[1] * 1; <span class="comment">// Correct hour</span> <span class="reserved">if</span> (aMatches[5]) { var sAmPm = aMatches[5].toUpperCase(); <span class="reserved">if</span> (sAmPm == <span class="literal">'PM'</span> || sAmPm == <span class="literal">'P'</span>) { <span class="reserved">if</span> (hour < 12) { hour += 12; } } <span class="reserved">else</span> { <span class="comment">// AM</span> <span class="reserved">if</span> (hour == 12) { hour = 0; } } } <span class="reserved">if</span> (hour < 10) { hour = <span class="literal">'0'</span> + hour; } <span class="comment">// Get minute</span> var minute = aMatches[2] * 1; <span class="comment">// Correct minute</span> <span class="reserved">if</span> (minute < 10) { minute = <span class="literal">'0'</span> + minute; } <span class="comment">// Get second</span> var second = 0; <span class="reserved">if</span> (aMatches[4]) { second = aMatches[4] * 1; } <span class="comment">// Correct second</span> <span class="reserved">if</span> (second < 10) { second = <span class="literal">'0'</span> + second; } <span class="comment">// Get time</span> oCell.c = hour + <span class="literal">':'</span> + minute + <span class="literal">':'</span> + second; } <span class="reserved">return</span> oCell; }; <span class="comment">/** * Converts cell to UNIX timestamp data type. * * <span class="attrib">@param</span> {object} oCell Cell object * <span class="attrib">@return</span> Converted cell object * <span class="attrib">@type</span> object */</span> Zapatec.Grid.<span class="reserved">prototype</span>.convertTimestampLocale = <span class="reserved">function</span>(oCell) { oCell = <span class="reserved">this</span>.convertString(oCell); oCell.v = (new Date(parseInt(oCell.v) * 1000)).toLocaleString(); <span class="reserved">return</span> oCell; }; <span class="comment">/** * Converts cell to UNIX timestamp data type. Value displayed in MM/DD/YYYY * format. * * <span class="attrib">@param</span> {object} oCell Cell object * <span class="attrib">@return</span> Converted cell object * <span class="attrib">@type</span> object */</span> Zapatec.Grid.<span class="reserved">prototype</span>.convertTimestampMMDDYYYY = <span class="reserved">function</span>(oCell) { oCell = <span class="reserved">this</span>.convertString(oCell); var oDate = new Date(parseInt(oCell.v) * 1000); var sMonth = oDate.getMonth() + 1; <span class="reserved">if</span> (sMonth < 10) { sMonth = <span class="literal">'0'</span> + sMonth; } var sDay = oDate.getDate(); <span class="reserved">if</span> (sDay < 10) { sDay = <span class="literal">'0'</span> + sDay; } var sYear = oDate.getYear(); <span class="reserved">if</span> (sYear < 1900) { sYear += 1900; } oCell.v = sMonth + <span class="literal">'/'</span> + sDay + <span class="literal">'/'</span> + sYear; <span class="reserved">return</span> oCell; }; <span class="comment">/** * Converts cell to UNIX timestamp data type. Value displayed in DD/MM/YYYY * format. * * <span class="attrib">@param</span> {object} oCell Cell object * <span class="attrib">@return</span> Converted cell object * <span class="attrib">@type</span> object */</span> Zapatec.Grid.<span class="reserved">prototype</span>.convertTimestampDDMMYYYY = <span class="reserved">function</span>(oCell) { oCell = <span class="reserved">this</span>.convertString(oCell); var oDate = new Date(parseInt(oCell.v) * 1000); var sMonth = oDate.getMonth() + 1; <span class="reserved">if</span> (sMonth < 10) { sMonth = <span class="literal">'0'</span> + sMonth; } var sDay = oDate.getDate(); <span class="reserved">if</span> (sDay < 10) { sDay = <span class="literal">'0'</span> + sDay; } var sYear = oDate.getYear(); <span class="reserved">if</span> (sYear < 1900) { sYear += 1900; } oCell.v = sDay + <span class="literal">'/'</span> + sMonth + <span class="literal">'/'</span> + sYear; <span class="reserved">return</span> oCell; }; <span class="comment">/** * Converts cell to UNIX timestamp data type. Value displayed in YYYY/MM/DD * format. * * <span class="attrib">@param</span> {object} oCell Cell object * <span class="attrib">@return</span> Converted cell object * <span class="attrib">@type</span> object */</span> Zapatec.Grid.<span class="reserved">prototype</span>.convertTimestampYYYYMMDD = <span class="reserved">function</span>(oCell) { oCell = <span class="reserved">this</span>.convertString(oCell); var oDate = new Date(parseInt(oCell.v) * 1000); var sMonth = oDate.getMonth() + 1; <span class="reserved">if</span> (sMonth < 10) { sMonth = <span class="literal">'0'</span> + sMonth; } var sDay = oDate.getDate(); <span class="reserved">if</span> (sDay < 10) { sDay = <span class="literal">'0'</span> + sDay; } var sYear = oDate.getYear(); <span class="reserved">if</span> (sYear < 1900) { sYear += 1900; } oCell.v = sYear + <span class="literal">'/'</span> + sMonth + <span class="literal">'/'</span> + sDay; <span class="reserved">return</span> oCell; }; <span class="comment">/** * Converts cell to boolean data type. * * <span class="attrib">@param</span> {object} oCell Cell object * <span class="attrib">@return</span> Converted cell object * <span class="attrib">@type</span> object */</span> Zapatec.Grid.<span class="reserved">prototype</span>.convertBoolean = <span class="reserved">function</span>(oCell) { oCell = <span class="reserved">this</span>.convertString(oCell); switch (oCell.c.toUpperCase()) { case <span class="literal">'0'</span>: case <span class="literal">'F'</span>: case <span class="literal">'FALSE'</span>: case <span class="literal">'N'</span>: case <span class="literal">'NO'</span>: case Zapatec.Grid.booleanValues[0].toUpperCase(): oCell.c = 0; break; default: oCell.c = 1; } oCell.v = Zapatec.Grid.booleanValues[oCell.c]; <span class="reserved">return</span> oCell; }; <span class="comment">/** * Display values for boolean data type. Since this is static variable, * external application is able to substitute it with other values, * e.g. ['Non', 'Oui']. * <span class="attrib">@private</span> */</span> Zapatec.Grid.booleanValues = [<span class="literal">'No'</span>, <span class="literal">'Yes'</span>]; <span class="comment">/** * Sets display values for boolean data type. * * <span class="attrib">@param</span> {string} sNo Replacement for "No" * <span class="attrib">@param</span> {string} sYes Replacement for "Yes" */</span> Zapatec.Grid.<span class="reserved">prototype</span>.setBooleanValues = <span class="reserved">function</span>(sNo, sYes) { <span class="reserved">if</span> (typeof sNo == <span class="literal">'string'</span>) { Zapatec.Grid.booleanValues[0] = sNo; } <span class="reserved">if</span> (typeof sYes == <span class="literal">'string'</span>) { Zapatec.Grid.booleanValues[1] = sYes; } }; <span class="comment">/** * Converts cell to boolean data type. * * <span class="attrib">@param</span> {object} oCell Cell object * <span class="attrib">@return</span> Converted cell object * <span class="attrib">@type</span> object */</span> Zapatec.Grid.<span class="reserved">prototype</span>.convertBooleanTF = <span class="reserved">function</span>(oCell) { oCell = <span class="reserved">this</span>.convertString(oCell); switch (oCell.c.toUpperCase()) { case <span class="literal">'0'</span>: case <span class="literal">'F'</span>: case <span class="literal">'FALSE'</span>: case <span class="literal">'N'</span>: case <span class="literal">'NO'</span>: case Zapatec.Grid.booleanTFValues[0].toUpperCase(): oCell.c = 0; break; default: oCell.c = 1; } oCell.v = Zapatec.Grid.booleanTFValues[oCell.c]; <span class="reserved">return</span> oCell; }; <span class="comment">/** * Display values for booleanTF data type. * <span class="attrib">@private</span> */</span> Zapatec.Grid.booleanTFValues = [<span class="literal">'False'</span>, <span class="literal">'True'</span>]; <span class="comment">/** * Sets display values for booleanTF data type. * * <span class="attrib">@param</span> {string} sFalse Replacement for "False" * <span class="attrib">@param</span> {string} sTrue Replacement for "True" */</span> Zapatec.Grid.<span class="reserved">prototype</span>.setBooleanTFValues = <span class="reserved">function</span>(sFalse, sTrue) { <span class="reserved">if</span> (typeof sFalse == <span class="literal">'string'</span>) { Zapatec.Grid.booleanTFValues[0] = sFalse; } <span class="reserved">if</span> (typeof sTrue == <span class="literal">'string'</span>) { Zapatec.Grid.booleanTFValues[1] = sTrue; } }; <span class="comment">/** * Associative array to access conversion method by data type name. * <span class="attrib">@private</span> */</span> Zapatec.Grid.convertByType = { <span class="literal">'string'</span>: <span class="literal">'convertString'</span>, <span class="literal">'istring'</span>: <span class="literal">'convertInsensitiveString'</span>, <span class="literal">'int'</span>: <span class="literal">'convertInteger'</span>, <span class="literal">'intGerman'</span>: <span class="literal">'convertIntegerGerman'</span>, <span class="literal">'integer'</span>: <span class="literal">'convertInteger'</span>, <span class="literal">'integerGerman'</span>: <span class="literal">'convertIntegerGerman'</span>, <span class="literal">'float'</span>: <span class="literal">'convertFloat'</span>, <span class="literal">'floatGerman'</span>: <span class="literal">'convertFloatGerman'</span>, <span class="literal">'date'</span>: <span class="literal">'convertDate'</span>, <span class="literal">'time'</span>: <span class="literal">'convertTime'</span>, <span class="literal">'timestamp'</span>: <span class="literal">'convertTimestampLocale'</span>, <span class="literal">'timestampMMDDYYYY'</span>: <span class="literal">'convertTimestampMMDDYYYY'</span>, <span class="literal">'timestampDDMMYYYY'</span>: <span class="literal">'convertTimestampDDMMYYYY'</span>, <span class="literal">'timestampYYYYMMDD'</span>: <span class="literal">'convertTimestampYYYYMMDD'</span>, <span class="literal">'boolean'</span>: <span class="literal">'convertBoolean'</span>, <span class="literal">'booleanTF'</span>: <span class="literal">'convertBooleanTF'</span> }; <span class="comment">/** * Returns name of convert method corresponding to data type. * * <span class="attrib">@param</span> {string} sType Data type * <span class="attrib">@return</span> Convert method name or undefined if not found * <span class="attrib">@type</span> string */</span> Zapatec.Grid.<span class="reserved">prototype</span>.getConvertByType = <span class="reserved">function</span>(sType) { <span class="reserved">return</span> Zapatec.Grid.convertByType[sType]; }; <span class="comment">/** * Associative array to get class name by data type. * <span class="attrib">@private</span> */</span> Zapatec.Grid.classByType = { <span class="literal">'string'</span>: <span class="literal">'zpGridTypeString'</span>, <span class="literal">'istring'</span>: <span class="literal">'zpGridTypeStringInsensitive'</span>, <span class="literal">'int'</span>: <span class="literal">'zpGridTypeInt'</span>, <span class="literal">'intGerman'</span>: <span class="literal">'zpGridTypeIntGerman'</span>, <span class="literal">'integer'</span>: <span class="literal">'zpGridTypeInt'</span>, <span class="literal">'integerGerman'</span>: <span class="literal">'zpGridTypeIntGerman'</span>, <span class="literal">'float'</span>: <span class="literal">'zpGridTypeFloat'</span>, <span class="literal">'floatGerman'</span>: <span class="literal">'zpGridTypeFloatGerman'</span>, <span class="literal">'date'</span>: <span class="literal">'zpGridTypeDate'</span>, <span class="literal">'time'</span>: <span class="literal">'zpGridTypeTime'</span>, <span class="literal">'timestamp'</span>: <span class="literal">'zpGridTypeTimestampLocale'</span>, <span class="literal">'timestampMMDDYYYY'</span>: <span class="literal">'zpGridTypeTimestampMMDDYYYY'</span>, <span class="literal">'timestampDDMMYYYY'</span>: <span class="literal">'zpGridTypeTimestampDDMMYYYY'</span>, <span class="literal">'timestampYYYYMMDD'</span>: <span class="literal">'zpGridTypeTimestampYYYYMMDD'</span>, <span class="literal">'boolean'</span>: <span class="literal">'zpGridTypeBoolean'</span>, <span class="literal">'booleanTF'</span>: <span class="literal">'zpGridTypeBooleanTF'</span> }; <span class="comment">/** * Returns class name corresponding to data type. * * <span class="attrib">@param</span> {string} sType Data type * <span class="attrib">@return</span> Class name or undefined if not found * <span class="attrib">@type</span> string */</span> Zapatec.Grid.<span class="reserved">prototype</span>.getClassByType = <span class="reserved">function</span>(sType) { <span class="reserved">return</span> Zapatec.Grid.classByType[sType]; }; <span class="comment">/** * Associative array to get data type by class name. * <span class="attrib">@private</span> */</span> Zapatec.Grid.typeByClass = { <span class="literal">'zpGridTypeString'</span>: <span class="literal">'string'</span>, <span class="literal">'zpGridTypeStringInsensitive'</span>: <span class="literal">'istring'</span>, <span class="literal">'zpGridTypeInt'</span>: <span class="literal">'int'</span>, <span class="literal">'zpGridTypeIntGerman'</span>: <span class="literal">'intGerman'</span>, <span class="literal">'zpGridTypeFloat'</span>: <span class="literal">'float'</span>, <span class="literal">'zpGridTypeFloatGerman'</span>: <span class="literal">'floatGerman'</span>, <span class="literal">'zpGridTypeDate'</span>: <span class="literal">'date'</span>, <span class="literal">'zpGridTypeTime'</span>: <span class="literal">'time'</span>, <span class="literal">'zpGridTypeTimestampLocale'</span>: <span class="literal">'timestamp'</span>, <span class="literal">'zpGridTypeTimestampMMDDYYYY'</span>: <span class="literal">'timestampMMDDYYYY'</span>, <span class="literal">'zpGridTypeTimestampDDMMYYYY'</span>: <span class="literal">'timestampDDMMYYYY'</span>, <span class="literal">'zpGridTypeTimestampYYYYMMDD'</span>: <span class="literal">'timestampYYYYMMDD'</span>, <span class="literal">'zpGridTypeBoolean'</span>: <span class="literal">'boolean'</span>, <span class="literal">'zpGridTypeBooleanTF'</span>: <span class="literal">'booleanTF'</span> }; <span class="comment">/** * Returns data type corresponding to class name. Default is "string". * * <span class="attrib">@param</span> {string} sClass className attribute value * <span class="attrib">@return</span> Data type * <span class="attrib">@type</span> string */</span> Zapatec.Grid.<span class="reserved">prototype</span>.getTypeByClass = <span class="reserved">function</span>(sClass) { <span class="comment">// className may contain several classes</span> var aClasses = sClass.split(/\s+/); <span class="comment">// Search first applicable class</span> <span class="reserved">for</span> (var iClass = 0; iClass < aClasses.length; iClass++) { var sType = Zapatec.Grid.typeByClass[aClasses[iClass]]; <span class="reserved">if</span> (typeof sType != <span class="literal">'undefined'</span>) { <span class="reserved">return</span> sType; } } <span class="comment">// Default is "string"</span> <span class="reserved">return</span> <span class="literal">'string'</span>; }; <span class="comment">/** * Creates custom data type. * * <span class="attrib">@param</span> {function} funcConvert Function that converts cell value * <span class="attrib">@param</span> {string} sTypeName Type name * <span class="attrib">@param</span> {string} sTypeClass Optional. Class name */</span> Zapatec.Grid.createType = <span class="reserved">function</span>(funcConvert, sTypeName, sTypeClass) { <span class="comment">// Check arguments</span> <span class="reserved">if</span> (typeof funcConvert != <span class="literal">'function'</span> || typeof sTypeName != <span class="literal">'string'</span> || !sTypeName.length) { <span class="reserved">return</span>; } <span class="comment">// Form method name</span> var sFuncName = <span class="literal">'convertCustom'</span> + sTypeName.charAt(0).toUpperCase() + sTypeName.substr(1); <span class="comment">// Add method</span> Zapatec.Grid.<span class="reserved">prototype</span>[sFuncName] = funcConvert; <span class="comment">// Add type</span> Zapatec.Grid.convertByType[sTypeName] = sFuncName; <span class="comment">// Add class</span> <span class="reserved">if</span> (typeof sTypeClass == <span class="literal">'string'</span> && sTypeClass.length) { Zapatec.Grid.classByType[sTypeName] = sTypeClass; Zapatec.Grid.typeByClass[sTypeClass] = sTypeName; } }; <span class="comment">/** * Associative array to get search method by data type. * <span class="attrib">@private</span> */</span> Zapatec.Grid.searchByType = { <span class="literal">'istring'</span>: <span class="literal">'searchInsensitiveString'</span> }; <span class="comment">/** * Returns search method name corresponding to data type. * * <span class="attrib">@param</span> {string} sType Data type * <span class="attrib">@return</span> Search method name or undefined if not found * <span class="attrib">@type</span> string */</span> Zapatec.Grid.<span class="reserved">prototype</span>.getSearchByType = <span class="reserved">function</span>(sType) { <span class="reserved">return</span> Zapatec.Grid.searchByType[sType]; }; </pre> <hr> <!-- ========== START OF NAVBAR ========== --> <a name="navbar_top"><!-- --></a> <table border="0" width="100%" cellpadding="1" cellspacing="0"> <tr> <td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1"> <a name="navbar_top_firstrow"><!-- --></a> <table border="0" cellpadding="0" cellspacing="3"> <tr align="center" valign="top"> <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td> <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> <font class="NavBarFont1Rev"><b>File</b></font> </td> <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td> <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td> <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td> <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td> </tr> </table> </td> <td bgcolor="#EEEEFF" align="right" valign="top"><em> <b>Zapatec Grid</b></em> </td> </tr> <tr> <td bgcolor="white" class="NavBarCell2"><font size="-2"> PREV NEXT</font></td> <td bgcolor="white" class="NavBarCell2"><font size="-2"> <a href="index.html" target="_top"><b>FRAMES</b></a> <a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a> <script> <!-- if(window==top) { document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>'); } //--> </script> <noscript> <a href="allclasses-noframe.html" target=""><b>All Classes</b></a> </noscript> </font></td> </tr> </table> <!-- =========== END OF NAVBAR =========== --> <hr> <font size="-1"> </font> <div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Thu Aug 16 12:18:56 2007</div> </body> </html>