DataStoreUtils.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. define( function() {
  2. "use strict";
  3. var DataStoreUtils = {};
  4. DataStoreUtils.extractData = function( oDataStore )
  5. {
  6. var aColumns = [];
  7. var iColumnCount = oDataStore.columnCount;
  8. for ( var iCol = 0; iCol < iColumnCount; iCol++ )
  9. {
  10. aColumns[iCol] =
  11. {
  12. name : oDataStore.columnNames[iCol],
  13. dataType : oDataStore.dataTypes[iCol],
  14. values : oDataStore.columnFormattedValues[iCol] || oDataStore.columnValues[iCol],
  15. };
  16. }
  17. var aRows = [];
  18. var iRowCount = oDataStore.rowCount;
  19. for ( var iRow = 0; iRow < iRowCount; iRow++ )
  20. {
  21. var aRow = [];
  22. for ( var iCol = 0; iCol < iColumnCount; iCol++ )
  23. {
  24. aRow.push( oDataStore.getCell( iRow, iCol ).valueIndex );
  25. }
  26. aRows.push( aRow );
  27. }
  28. return {
  29. columns : aColumns,
  30. rows : aRows
  31. };
  32. };
  33. DataStoreUtils.filterByColumnValueIndex = function( oJson, iColumnIndex, iValueIndex )
  34. {
  35. var aRows = [];
  36. for ( var iRow = 0; iRow < oJson.rows.length; iRow++ )
  37. {
  38. var aRow = oJson.rows[iRow];
  39. if ( aRow[iColumnIndex] == iValueIndex )
  40. {
  41. aRows.push( aRow );
  42. break;
  43. }
  44. }
  45. return {
  46. columns : oJson.columns,
  47. rows : aRows
  48. };
  49. };
  50. DataStoreUtils.filterByColumnValueIndexes = function( oJson, iColumnIndex, oValueIndexes )
  51. {
  52. return {
  53. columns : oJson.columns,
  54. rows : oJson.rows.filter( function( aRow ) { return oValueIndexes.has( aRow[iColumnIndex] ) } )
  55. };
  56. };
  57. DataStoreUtils.filterToUniqueRows = function( oJson, iColumnIndex )
  58. {
  59. var oValueIndexes = new Set();
  60. return {
  61. columns : oJson.columns,
  62. rows : oJson.rows.filter( function( aRow ) {
  63. if ( oValueIndexes.has( aRow[iColumnIndex] ) )
  64. {
  65. return false;
  66. }
  67. oValueIndexes.add( aRow[iColumnIndex] );
  68. return true;
  69. } )
  70. };
  71. };
  72. return DataStoreUtils;
  73. });