define( function() { "use strict"; var g_aDataStores = []; function C_DataStoreViewer() { }; C_DataStoreViewer.prototype.draw = function( oControlHost ) { var aDataStores = g_aDataStores; var o = oControlHost.configuration; if ( o && o["Control name"] ) { var oControl = oControlHost.page.getControlByName( o["Control name"] ); aDataStores = o["Data store name"] ? [oControl.getDataStore( o["Data store name"] )] : oControl.dataStores; } var aHtml = []; aHtml.push( '' ); for ( var i = 0; i < aDataStores.length; i++ ) { aHtml.push( '' ); } aHtml.push( '
' ); this.drawDataStore( aDataStores[i], aHtml ); aHtml.push( '
' ); var el = oControlHost.container; el.innerHTML = aHtml.join( "" ); var nl = el.querySelectorAll( ".DataStoreViewerScrollableDiv" ); for ( var i = 0; i < nl.length; i++ ) { var div = nl.item( i ); if ( div.offsetHeight > 400 ) { div.style.height = "400px"; } } }; C_DataStoreViewer.prototype.drawDataStore = function( oDataStore, aHtml ) { var iColCount = oDataStore.columnCount; var iRowCount = oDataStore.rowCount; aHtml.push( '
' ); aHtml.push( '' ); aHtml.push( '' ); aHtml.push( '
' + ( this.F_HTMLEncode( oDataStore.name ) || 'DataStore' ) + '[' + oDataStore.index + ']
' ); aHtml.push( '
# of rows:' + iRowCount + '
' ); aHtml.push( '
' ); aHtml.push( '' ); var aDataTypes = []; var bHasDataTypes = false; for ( var iCol = 0; iCol < iColCount; iCol++ ) { var sDataType = oDataStore.dataTypes[iCol]; aDataTypes.push( sDataType ); if ( sDataType ) { bHasDataTypes = true; } } if ( bHasDataTypes ) { aHtml.push( '' ); for ( var iCol = 0; iCol < iColCount; iCol++ ) { aHtml.push( '' ); } aHtml.push( '' ); } aHtml.push( '' ); for ( var iCol = 0; iCol < iColCount; iCol++ ) { aHtml.push( '' ); } aHtml.push( '' ); for ( var iRow = 0; iRow < iRowCount; iRow++ ) { aHtml.push( '' ); for ( var iCol = 0; iCol < iColCount; iCol++ ) { var sValue = oDataStore.getCellValue( iRow, iCol ); var sFormattedValue = oDataStore.getFormattedCellValue( iRow, iCol ); var sDataType = oDataStore.dataTypes[iCol]; aHtml.push( '' ); } aHtml.push( '' ); } aHtml.push( '
' + aDataTypes[iCol] + '
' + this.F_HTMLEncode( oDataStore.columnNames[iCol] ) + '
' ); aHtml.push( this.F_HTMLEncode( sFormattedValue ) ); if ( sFormattedValue != sValue ) { aHtml.push( ' (' + this.F_HTMLEncode( sValue ) + ')' ); } aHtml.push( '
' ); aHtml.push( '
' ); aHtml.push( '
' ); }; C_DataStoreViewer.prototype.setData = function( oControlHost, oDataStore ) { g_aDataStores[oDataStore.index] = oDataStore; }; C_DataStoreViewer.prototype.F_HTMLEncode = function( s ) { return String( s ).replace( /&/g, "&" ).replace( //g, ">" ); }; return C_DataStoreViewer; });