[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
05122024
/
htdocs
/
simpeg
/
zapatec
/
zpgrid
/
zpgrid
/
jsdocs
/
[
Home
]
File: overview-summary-zpgrid-html.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-html.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-html.js</h2> </center> <h4>Summary</h4> <p> Plugin for Zapatec Grid to input grid data from HTML source. <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 input grid data from HTML source. * * <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-html.js 7649 2007-08-03 14:15:03Z alex $ */</span> <span class="comment">/** * Loads data from HTML table source. Utilizes custom "style" attributes. * * <span class="attrib">@private</span> * <span class="attrib">@param</span> {object} oSource Input HTMLElement object */</span> Zapatec.Grid.<span class="reserved">prototype</span>.loadDataHtml = <span class="reserved">function</span>(oSource) { var oTable = null; <span class="reserved">if</span> (oSource) { oTable = oSource; } <span class="reserved">else</span> <span class="reserved">if</span> (<span class="reserved">this</span>.container) { oTable = Zapatec.Utils.getFirstChild(<span class="reserved">this</span>.container, <span class="literal">'table'</span>); } <span class="reserved">if</span> (!oTable) { alert(<span class="reserved">this</span>.getMessage(<span class="literal">'errorHtmlTable'</span>)); <span class="reserved">return</span>; } <span class="comment">// If there is thead element, header will be taken from it</span> var oThead = Zapatec.Utils.getFirstChild(oTable, <span class="literal">'thead'</span>); <span class="comment">// Get tbody elements</span> var oTbodies = oTable.getElementsByTagName(<span class="literal">'tbody'</span>); <span class="reserved">if</span> (!oTbodies || !oTbodies.length) { oTbodies = [oTable]; } var oHeaderTr = Zapatec.Utils.getFirstChild(oThead || oTbodies[0], <span class="literal">'tr'</span>); <span class="reserved">if</span> (!oHeaderTr) { alert(<span class="reserved">this</span>.getMessage(<span class="literal">'errorHtmlHeader'</span>)); <span class="reserved">return</span>; } <span class="comment">// Remove old data</span> <span class="reserved">this</span>.data = <span class="reserved">this</span>.newDataHtml(oTable, oHeaderTr); <span class="reserved">this</span>.fields = <span class="reserved">this</span>.data.fields; <span class="reserved">this</span>.rows = <span class="reserved">this</span>.data.rows; <span class="reserved">this</span>.rowsIndex = []; <span class="comment">// Go to first page</span> <span class="reserved">this</span>.setCurrentPage(0); <span class="comment">// Create fields</span> var oTd = Zapatec.Utils.getFirstChild(oHeaderTr, <span class="literal">'th'</span>, <span class="literal">'td'</span>); <span class="reserved">while</span> (oTd) { <span class="comment">// Add field</span> <span class="reserved">this</span>.fields.push(<span class="reserved">this</span>.newFieldHtml(oTd)); <span class="comment">// Next field</span> oTd = Zapatec.Utils.getNextSibling(oTd, <span class="literal">'th'</span>, <span class="literal">'td'</span>); } <span class="comment">// Rowspan flags</span> var aRF = []; <span class="comment">// Create rows</span> <span class="reserved">for</span> (var iTbody = 0; iTbody < oTbodies.length; iTbody++) { <span class="comment">// Get tr elements</span> var oTrs = oTbodies[iTbody].getElementsByTagName(<span class="literal">'tr'</span>); var iTr = 0; <span class="comment">// Skip header</span> <span class="reserved">if</span> (iTbody == 0 && !oThead) { iTr++; } <span class="reserved">for</span> (; iTr < oTrs.length; iTr++) { <span class="comment">// Create row</span> var oRow = <span class="reserved">this</span>.newRowHtml(oTrs[iTr], aRF); <span class="comment">// Add row</span> <span class="reserved">this</span>.rows.push(oRow); <span class="reserved">this</span>.rowsIndex.push(oRow); } } <span class="comment">// Prepare spans</span> <span class="reserved">this</span>.prepareSpans(<span class="reserved">this</span>.rows); <span class="comment">// Build primary key</span> <span class="reserved">this</span>.primaryKeyColumn = <span class="reserved">this</span>.data.primaryKey; <span class="reserved">this</span>.buildPrimaryKey(); <span class="comment">// Show grid</span> <span class="reserved">this</span>.show(); }; <span class="comment">/** * Creates new data object from HTML source. * * <span class="attrib">@private</span> * <span class="attrib">@param</span> {object} oTable Table element * <span class="attrib">@param</span> {object} oHeaderTr First table row element in the table * <span class="attrib">@return</span> Data object * <span class="attrib">@type</span> object */</span> Zapatec.Grid.<span class="reserved">prototype</span>.newDataHtml = <span class="reserved">function</span>(oTable, oHeaderTr) { <span class="comment">// Create data object</span> var oData = { fields: [], rows: [] }; <span class="comment">// Set style</span> var sStyle = Zapatec.Widget.getStyle(oTable); <span class="reserved">if</span> (sStyle) { oData.style = sStyle; } var sHeaderStyle = Zapatec.Widget.getStyle(oHeaderTr); <span class="reserved">if</span> (sHeaderStyle) { oData.headerStyle = sHeaderStyle; } <span class="reserved">return</span> oData; }; <span class="comment">/** * Creates new field object from HTML table cell element. * * <span class="attrib">@private</span> * <span class="attrib">@param</span> {object} oTd Table cell element * <span class="attrib">@return</span> Field object * <span class="attrib">@type</span> object */</span> Zapatec.Grid.<span class="reserved">prototype</span>.newFieldHtml = <span class="reserved">function</span>(oTd) { <span class="comment">// Create field object</span> var oField = { i: <span class="reserved">this</span>.fields.length, title: oTd.innerHTML }; <span class="comment">// Set data type</span> <span class="reserved">if</span> (<span class="reserved">this</span>.getTypeByClass) { oField.dataType = <span class="reserved">this</span>.getTypeByClass(oTd.className); } <span class="comment">// Set width</span> var sWidth = oTd.getAttribute(<span class="literal">'width'</span>); <span class="reserved">if</span> (sWidth) { sWidth += <span class="literal">''</span>; <span class="comment">// Convert to string</span> <span class="reserved">if</span> (sWidth.length) { oField.columnWidth = sWidth; } } <span class="comment">// Set style</span> var sStyle = Zapatec.Widget.getStyle(oTd); <span class="reserved">if</span> (sStyle) { oField.style = sStyle; } <span class="comment">// Set span</span> var sSpan = oTd.getAttribute(<span class="literal">'span'</span>); <span class="reserved">if</span> (sSpan) { oField.span = sSpan * 1; } var sSpanTitle = oTd.getAttribute(<span class="literal">'spantitle'</span>); <span class="reserved">if</span> (!sSpanTitle) { <span class="comment">// For backward compatibility</span> sSpanTitle = oTd.getAttribute(<span class="literal">'spanTitle'</span>); } <span class="reserved">if</span> (sSpanTitle) { oField.spanTitle = sSpanTitle; } var sSpanStyle = oTd.getAttribute(<span class="literal">'spanstyle'</span>); <span class="reserved">if</span> (!sSpanStyle) { <span class="comment">// For backward compatibility</span> sSpanStyle = oTd.getAttribute(<span class="literal">'spanStyle'</span>); } <span class="reserved">if</span> (sSpanStyle) { oField.spanStyle = sSpanStyle; } <span class="comment">// Set hidden</span> var bHidden = (oTd.className.indexOf(<span class="literal">'zpGridTypeHidden'</span>) >= 0); <span class="reserved">if</span> (bHidden) { oField.hidden = bHidden; } <span class="comment">// Set nosort</span> var bNosort = (oTd.className.indexOf(<span class="literal">'zpGridTypeNosort'</span>) >= 0); <span class="reserved">if</span> (bNosort) { oField.nosort = bNosort; } <span class="comment">// Set notags</span> var bNotags = (oTd.className.indexOf(<span class="literal">'zpGridTypeNotags'</span>) >= 0); <span class="reserved">if</span> (bNotags) { oField.notags = bNotags; } <span class="comment">// Set sortByColumn</span> var aMatch = oTd.className.match(/zpGridTypeSortBy(\d+)/); <span class="reserved">if</span> (aMatch) { oField.sortByColumn = aMatch[1]; } <span class="comment">// Set primary key</span> var bPrimaryKey = (oTd.className.indexOf(<span class="literal">'zpGridTypePrimaryKey'</span>) >= 0); <span class="reserved">if</span> (bPrimaryKey) { <span class="reserved">this</span>.data.primaryKey = oField.i; } <span class="reserved">return</span> oField; }; <span class="comment">/** * Creates new row object from HTML table row element. * * <span class="attrib">@private</span> * <span class="attrib">@param</span> {object} oTr Table row element * <span class="attrib">@param</span> {object} aRF Rowspan flags * <span class="attrib">@return</span> Row object * <span class="attrib">@type</span> object */</span> Zapatec.Grid.<span class="reserved">prototype</span>.newRowHtml = <span class="reserved">function</span>(oTr, aRF) { <span class="comment">// Create new row object</span> var oRow = { i: <span class="reserved">this</span>.rowsIndex.length, cells: [] }; <span class="comment">// Set style</span> var sStyle = Zapatec.Widget.getStyle(oTr); <span class="reserved">if</span> (sStyle) { oRow.style = sStyle; } <span class="comment">// Get cells</span> var oUtils = Zapatec.Utils; var oTd = oUtils.getFirstChild(oTr, <span class="literal">'td'</span>, <span class="literal">'th'</span>); <span class="comment">// Variables used inside the loop</span> var iCols = <span class="reserved">this</span>.fields.length; var fGetNextSibling = oUtils.getNextSibling; var aCells = oRow.cells; var iCol, oCell, iRowspan, iColspan; <span class="reserved">for</span> (iCol = 0; iCol < iCols; iCol++) { <span class="reserved">if</span> (aRF[iCol]) { aRF[iCol]--; continue; } <span class="comment">// Add cell</span> oCell = <span class="reserved">this</span>.newCellHtml(oTd, oRow.i, iCol); aCells[iCol] = oCell; <span class="comment">// Consider rowspan</span> iRowspan = oCell.rowspan; <span class="reserved">if</span> (iRowspan > 1) { aRF[iCol] = iRowspan - 1; } <span class="comment">// Consider colspan</span> iColspan = oCell.colspan; <span class="reserved">if</span> (iColspan > 1) { iCol += iColspan - 1; } <span class="comment">// Next cell</span> <span class="reserved">if</span> (oTd) { oTd = fGetNextSibling(oTd, <span class="literal">'td'</span>, <span class="literal">'th'</span>); } } <span class="reserved">return</span> oRow; }; <span class="comment">/** * Creates new cell object from HTML table cell element. * * <span class="attrib">@private</span> * <span class="attrib">@param</span> {object} oTd Table cell element * <span class="attrib">@param</span> {number} iRow Row id * <span class="attrib">@param</span> {number} iCol Column id * <span class="attrib">@return</span> Cell object * <span class="attrib">@type</span> object */</span> Zapatec.Grid.<span class="reserved">prototype</span>.newCellHtml = <span class="reserved">function</span>(oTd, iRow, iCol) { <span class="comment">// Create cell object</span> var oCell = { i: iCol, r: iRow, v: <span class="literal">''</span> }; <span class="reserved">if</span> (oTd) { <span class="comment">// Set value</span> oCell.v = oTd.innerHTML; <span class="comment">// Facilitate migrating from an existing <table> to the grid</span> <span class="reserved">if</span> (<span class="reserved">this</span>.fields[iCol].notags) { <span class="comment">// Remove tags</span> oCell.v = oCell.v.replace(/<[^>]*>/g, <span class="literal">''</span>); } <span class="comment">// Set colspan</span> var iColspan = oTd.getAttribute(<span class="literal">'colspan'</span>) * 1; <span class="reserved">if</span> (iColspan > 1) { oCell.colspan = iColspan; } <span class="comment">// Set rowspan</span> var iRowspan = oTd.getAttribute(<span class="literal">'rowspan'</span>) * 1; <span class="reserved">if</span> (iRowspan > 1) { oCell.rowspan = iRowspan; } <span class="comment">// Set style</span> var sStyle = Zapatec.Widget.getStyle(oTd); <span class="reserved">if</span> (sStyle) { oCell.style = sStyle; } } <span class="comment">// Convert cell value</span> oCell = <span class="reserved">this</span>.convertCell(oCell); <span class="reserved">return</span> oCell; }; </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>