@sapui5/sap.zen.crosstab 1.84.33 → 1.84.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/package.json +1 -1
  2. package/src/{main/uilib/sap → sap}/zen/crosstab/.library +14 -13
  3. package/src/sap/zen/crosstab/BaseArea.js +933 -0
  4. package/src/sap/zen/crosstab/CellStyleHandler.js +109 -0
  5. package/src/sap/zen/crosstab/ColResizer.js +261 -0
  6. package/src/sap/zen/crosstab/ColumnHeaderArea.js +61 -0
  7. package/src/sap/zen/crosstab/Crosstab.js +1351 -0
  8. package/src/sap/zen/crosstab/CrosstabCellApi.js +141 -0
  9. package/src/sap/zen/crosstab/CrosstabContextMenu.js +96 -0
  10. package/src/sap/zen/crosstab/CrosstabHeaderInfo.js +699 -0
  11. package/src/sap/zen/crosstab/CrosstabRenderer.js +258 -0
  12. package/src/sap/zen/crosstab/CrosstabTestProxy.js +64 -0
  13. package/src/sap/zen/crosstab/DataArea.js +76 -0
  14. package/src/sap/zen/crosstab/DataCell.js +187 -0
  15. package/src/sap/zen/crosstab/DataCellRenderer.js +70 -0
  16. package/src/sap/zen/crosstab/DimensionHeaderArea.js +34 -0
  17. package/src/sap/zen/crosstab/EventHandler.js +664 -0
  18. package/src/sap/zen/crosstab/HeaderCell.js +357 -0
  19. package/src/sap/zen/crosstab/HeaderCellRenderer.js +333 -0
  20. package/src/sap/zen/crosstab/HeaderResizer.js +142 -0
  21. package/src/sap/zen/crosstab/IDataCell.js +34 -0
  22. package/src/sap/zen/crosstab/IHeaderCell.js +30 -0
  23. package/src/sap/zen/crosstab/PropertyBag.js +220 -0
  24. package/src/sap/zen/crosstab/RowHeaderArea.js +78 -0
  25. package/src/sap/zen/crosstab/SelectionHandler.js +892 -0
  26. package/src/sap/zen/crosstab/TextConstants.js +22 -0
  27. package/src/sap/zen/crosstab/TouchHandler.js +413 -0
  28. package/src/sap/zen/crosstab/datahandler/JsonDataHandler.js +777 -0
  29. package/src/sap/zen/crosstab/dragdrop/DragDropAreaRenderer.js +446 -0
  30. package/src/sap/zen/crosstab/dragdrop/DragDropHandler.js +674 -0
  31. package/src/sap/zen/crosstab/dragdrop/DragDropHoverManager.js +474 -0
  32. package/src/sap/zen/crosstab/dragdrop/DragDropUtils.js +579 -0
  33. package/src/sap/zen/crosstab/dragdrop/MemberDragDropHandler.js +1156 -0
  34. package/src/sap/zen/crosstab/keyboard/CrosstabKeyboardNavHandler.js +585 -0
  35. package/src/sap/zen/crosstab/library.js +49 -0
  36. package/src/sap/zen/crosstab/paging/CellMerger.js +266 -0
  37. package/src/sap/zen/crosstab/paging/Page.js +331 -0
  38. package/src/sap/zen/crosstab/paging/PageManager.js +396 -0
  39. package/src/sap/zen/crosstab/paging/PagingConstants.js +19 -0
  40. package/src/sap/zen/crosstab/paging/RequestHandler.js +103 -0
  41. package/src/sap/zen/crosstab/paging/RequestStack.js +112 -0
  42. package/src/sap/zen/crosstab/rendering/CrossRequestManager.js +468 -0
  43. package/src/sap/zen/crosstab/rendering/DataModel.js +260 -0
  44. package/src/sap/zen/crosstab/rendering/DomElementProvider.js +24 -0
  45. package/src/sap/zen/crosstab/rendering/HeaderScrollManager.js +93 -0
  46. package/src/sap/zen/crosstab/rendering/PixelScrollManager.js +189 -0
  47. package/src/sap/zen/crosstab/rendering/RenderEngine.js +2694 -0
  48. package/src/sap/zen/crosstab/rendering/RenderingConstants.js +60 -0
  49. package/src/sap/zen/crosstab/rendering/ScrollManager.js +614 -0
  50. package/src/sap/zen/crosstab/rendering/ScrollbarRenderer.js +560 -0
  51. package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/Chart.less +0 -4
  52. package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/InfoFeeding.less +120 -120
  53. package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_hcb/InfoFeeding.less +85 -85
  54. package/src/sap/zen/crosstab/utils/Measuring.js +236 -0
  55. package/src/sap/zen/crosstab/utils/Utils.js +485 -0
  56. package/ui5.yaml +4 -2
  57. package/src/main/uilib/sap/zen/crosstab/BaseArea.js +0 -1013
  58. package/src/main/uilib/sap/zen/crosstab/CellStyleHandler.js +0 -111
  59. package/src/main/uilib/sap/zen/crosstab/ColResizer.js +0 -264
  60. package/src/main/uilib/sap/zen/crosstab/ColumnHeaderArea.js +0 -52
  61. package/src/main/uilib/sap/zen/crosstab/Crosstab.js +0 -1662
  62. package/src/main/uilib/sap/zen/crosstab/CrosstabCellApi.js +0 -142
  63. package/src/main/uilib/sap/zen/crosstab/CrosstabContextMenu.js +0 -96
  64. package/src/main/uilib/sap/zen/crosstab/CrosstabHeaderInfo.js +0 -698
  65. package/src/main/uilib/sap/zen/crosstab/CrosstabRenderer.js +0 -274
  66. package/src/main/uilib/sap/zen/crosstab/CrosstabTestProxy.js +0 -59
  67. package/src/main/uilib/sap/zen/crosstab/DataArea.js +0 -74
  68. package/src/main/uilib/sap/zen/crosstab/DataCell.js +0 -196
  69. package/src/main/uilib/sap/zen/crosstab/DataCellRenderer.js +0 -71
  70. package/src/main/uilib/sap/zen/crosstab/DimensionHeaderArea.js +0 -25
  71. package/src/main/uilib/sap/zen/crosstab/EventHandler.js +0 -651
  72. package/src/main/uilib/sap/zen/crosstab/HeaderCell.js +0 -329
  73. package/src/main/uilib/sap/zen/crosstab/HeaderCellRenderer.js +0 -374
  74. package/src/main/uilib/sap/zen/crosstab/HeaderResizer.js +0 -131
  75. package/src/main/uilib/sap/zen/crosstab/IDataCell.js +0 -21
  76. package/src/main/uilib/sap/zen/crosstab/IHeaderCell.js +0 -21
  77. package/src/main/uilib/sap/zen/crosstab/PropertyBag.js +0 -209
  78. package/src/main/uilib/sap/zen/crosstab/RowHeaderArea.js +0 -71
  79. package/src/main/uilib/sap/zen/crosstab/SelectionHandler.js +0 -911
  80. package/src/main/uilib/sap/zen/crosstab/TextConstants.js +0 -9
  81. package/src/main/uilib/sap/zen/crosstab/TouchHandler.js +0 -438
  82. package/src/main/uilib/sap/zen/crosstab/datahandler/JsonDataHandler.js +0 -760
  83. package/src/main/uilib/sap/zen/crosstab/dragdrop/DragDropAreaRenderer.js +0 -436
  84. package/src/main/uilib/sap/zen/crosstab/dragdrop/DragDropHandler.js +0 -682
  85. package/src/main/uilib/sap/zen/crosstab/dragdrop/DragDropHoverManager.js +0 -467
  86. package/src/main/uilib/sap/zen/crosstab/dragdrop/DragDropUtils.js +0 -580
  87. package/src/main/uilib/sap/zen/crosstab/dragdrop/MemberDragDropHandler.js +0 -1154
  88. package/src/main/uilib/sap/zen/crosstab/keyboard/CrosstabKeyboardNavHandler.js +0 -635
  89. package/src/main/uilib/sap/zen/crosstab/library.js +0 -38
  90. package/src/main/uilib/sap/zen/crosstab/nonphx/logic.js +0 -11
  91. package/src/main/uilib/sap/zen/crosstab/paging/CellMerger.js +0 -284
  92. package/src/main/uilib/sap/zen/crosstab/paging/Page.js +0 -357
  93. package/src/main/uilib/sap/zen/crosstab/paging/PageManager.js +0 -437
  94. package/src/main/uilib/sap/zen/crosstab/paging/PagingConstants.js +0 -7
  95. package/src/main/uilib/sap/zen/crosstab/paging/RequestHandler.js +0 -97
  96. package/src/main/uilib/sap/zen/crosstab/paging/RequestStack.js +0 -108
  97. package/src/main/uilib/sap/zen/crosstab/rendering/CrossRequestManager.js +0 -462
  98. package/src/main/uilib/sap/zen/crosstab/rendering/DataModel.js +0 -250
  99. package/src/main/uilib/sap/zen/crosstab/rendering/DomElementProvider.js +0 -13
  100. package/src/main/uilib/sap/zen/crosstab/rendering/HeaderScrollManager.js +0 -97
  101. package/src/main/uilib/sap/zen/crosstab/rendering/PixelScrollManager.js +0 -180
  102. package/src/main/uilib/sap/zen/crosstab/rendering/RenderEngine.js +0 -2757
  103. package/src/main/uilib/sap/zen/crosstab/rendering/RenderingConstants.js +0 -56
  104. package/src/main/uilib/sap/zen/crosstab/rendering/ScrollManager.js +0 -638
  105. package/src/main/uilib/sap/zen/crosstab/rendering/ScrollbarRenderer.js +0 -542
  106. package/src/main/uilib/sap/zen/crosstab/utils/Measuring.js +0 -225
  107. package/src/main/uilib/sap/zen/crosstab/utils/Utils.js +0 -480
  108. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/ChartTypeSwitch.less +0 -0
  109. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/Crosstab.less +0 -0
  110. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/FilterBar.less +0 -0
  111. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/FilterPanel.less +0 -0
  112. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/Footerbar.less +0 -0
  113. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/InfoChart.less +0 -0
  114. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/NavigationPanel.less +0 -0
  115. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/chartconfig.less +0 -0
  116. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/CornerTornEffect.png +0 -0
  117. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/HTornEffect.png +0 -0
  118. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/HTornEffectData.png +0 -0
  119. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/HTornEffectHeader.png +0 -0
  120. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/VTornEffect.png +0 -0
  121. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/loading.gif +0 -0
  122. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/loading_comp.gif +0 -0
  123. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/library.source.less +0 -0
  124. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/zen.less +0 -0
  125. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_belize/library.source.less +0 -0
  126. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_belize_hcb/library.source.less +0 -0
  127. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_belize_hcw/library.source.less +0 -0
  128. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_belize_plus/library.source.less +0 -0
  129. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_bluecrystal/library.source.less +0 -0
  130. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_fiori_3/library.source.less +0 -0
  131. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_fiori_3_dark/library.source.less +0 -0
  132. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_fiori_3_hcb/library.source.less +0 -0
  133. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_fiori_3_hcw/library.source.less +0 -0
  134. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_hcb/Chart.less +0 -0
  135. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_hcb/ChartTypeSwitch.less +0 -0
  136. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_hcb/library.source.less +0 -0
@@ -1,56 +0,0 @@
1
- jQuery.sap.declare("sap.zen.crosstab.rendering.RenderingConstants");
2
-
3
- sap.zen.crosstab.rendering.RenderingConstants = sap.zen.crosstab.rendering.RenderingConstants || {};
4
-
5
- sap.zen.crosstab.rendering.RenderingConstants.TYPE_DATA_AREA = "DataArea";
6
- sap.zen.crosstab.rendering.RenderingConstants.TYPE_DIMENSION_HEADER_AREA = "DimensionHeaderArea";
7
- sap.zen.crosstab.rendering.RenderingConstants.TYPE_COLUMN_HEADER_AREA = "ColumnHeaderArea";
8
- sap.zen.crosstab.rendering.RenderingConstants.TYPE_ROW_HEADER_AREA = "RowHeaderArea";
9
-
10
- sap.zen.crosstab.rendering.RenderingConstants.ROW_AXIS = "ROW";
11
- sap.zen.crosstab.rendering.RenderingConstants.COL_AXIS = "COL";
12
- sap.zen.crosstab.rendering.RenderingConstants.DATA_AXIS = "DATA";
13
-
14
- sap.zen.crosstab.rendering.RenderingConstants.TYPE_HEADER_CELL = "HEADER_CELL";
15
- sap.zen.crosstab.rendering.RenderingConstants.TYPE_DATA_CELL = "DATA_CELL";
16
-
17
- sap.zen.crosstab.rendering.RenderingConstants.STYLE_PREFIX_DATA_CELL = "sapzencrosstab-DataCell";
18
- sap.zen.crosstab.rendering.RenderingConstants.STYLE_PREFIX_HEADER_CELL = "sapzencrosstab-HeaderCell";
19
-
20
- sap.zen.crosstab.rendering.RenderingConstants.STYLE_TOTAL = "Total";
21
- sap.zen.crosstab.rendering.RenderingConstants.STYLE_ALTERNATING = "Alternating";
22
- sap.zen.crosstab.rendering.RenderingConstants.STYLE_FIRST_IN_ROW = "FirstInRow";
23
- sap.zen.crosstab.rendering.RenderingConstants.STYLE_LAST_IN_ROW = "LastInRow";
24
- sap.zen.crosstab.rendering.RenderingConstants.STYLE_FIRST_IN_COL = "FirstInCol";
25
- sap.zen.crosstab.rendering.RenderingConstants.STYLE_LAST_IN_COL = "LastInCol";
26
- sap.zen.crosstab.rendering.RenderingConstants.STYLE_HEADER_CELL = "Default";
27
- sap.zen.crosstab.rendering.RenderingConstants.STYLE_DATA_CELL = "Default";
28
- sap.zen.crosstab.rendering.RenderingConstants.STYLE_HEADER_CELL_COZY = "Cozy";
29
- sap.zen.crosstab.rendering.RenderingConstants.STYLE_DATA_CELL_COZY = "Cozy";
30
- sap.zen.crosstab.rendering.RenderingConstants.STYLE_LOADING = "Loading";
31
- sap.zen.crosstab.rendering.RenderingConstants.STYLE_HIGHLIGHTED = "Highlighted";
32
- sap.zen.crosstab.rendering.RenderingConstants.STYLE_EMPHASIZED = "Emphasized";
33
- sap.zen.crosstab.rendering.RenderingConstants.STYLE_DATA_ENTRY_ENABLED = "EntryEnabled";
34
- sap.zen.crosstab.rendering.RenderingConstants.STYLE_INVALID_VALUE = "InvalidValue";
35
- sap.zen.crosstab.rendering.RenderingConstants.STYLE_NEW_VALUE = "NewValue";
36
- sap.zen.crosstab.rendering.RenderingConstants.STYLE_LOCKED = "Locked";
37
-
38
- sap.zen.crosstab.rendering.RenderingConstants.ALERT_TYPE_BACKGROUND = 2;
39
- sap.zen.crosstab.rendering.RenderingConstants.ALERT_TYPE_FONT_COLOR = 4;
40
- sap.zen.crosstab.rendering.RenderingConstants.ALERT_TYPE_STATUS_SYMBOL = 8;
41
- sap.zen.crosstab.rendering.RenderingConstants.ALERT_TYPE_TREND_ASCENDING_SYMBOL = 16;
42
- sap.zen.crosstab.rendering.RenderingConstants.ALERT_TYPE_TREND_DESCENDING_SYMBOL = 32;
43
- sap.zen.crosstab.rendering.RenderingConstants.ALERT_TYPE_TREND_GREY_SYMBOL = 64;
44
-
45
- sap.zen.crosstab.rendering.RenderingConstants.RENDERMODE_FILL = 0;
46
- sap.zen.crosstab.rendering.RenderingConstants.RENDERMODE_COMPACT = 1;
47
-
48
- sap.zen.crosstab.rendering.RenderingConstants.PASSIVE_CELL_TYPE_NORMAL = "NORMAL";
49
- sap.zen.crosstab.rendering.RenderingConstants.PASSIVE_CELL_TYPE_NEWLINE_HEADER = "NHC";
50
- sap.zen.crosstab.rendering.RenderingConstants.PASSIVE_CELL_TYPE_NEWLINE_DATA = "NDC";
51
-
52
- sap.zen.crosstab.rendering.RenderingConstants.TABINDEX = "-1";
53
-
54
- sap.zen.crosstab.rendering.RenderingConstants.ZEBRA_FULL = "FULL";
55
- sap.zen.crosstab.rendering.RenderingConstants.ZEBRA_DATA = "DATA";
56
- sap.zen.crosstab.rendering.RenderingConstants.ZEBRA_OFF = "OFF";
@@ -1,638 +0,0 @@
1
- jQuery.sap.declare("sap.zen.crosstab.rendering.ScrollManager");
2
- jQuery.sap.require("sap.zen.crosstab.utils.Measuring");
3
- jQuery.sap.require("sap.ui.core.Popup");
4
- jQuery.sap.require("sap.ui.core.OpenState");
5
- jQuery.sap.require("sap.zen.crosstab.TextConstants");
6
- jQuery.sap.require("sap.zen.crosstab.utils.Utils");
7
-
8
- sap.zen.crosstab.rendering.ScrollManager = function (oCrosstab, oRenderEngine) {
9
- "use strict";
10
- var oColHeaderArea = oCrosstab.getColumnHeaderArea();
11
- var oRowHeaderArea = oCrosstab.getRowHeaderArea();
12
- var oDimensionHeaderArea = oCrosstab.getDimensionHeaderArea();
13
- var oDataArea = oCrosstab.getDataArea();
14
- var oMeasuring = oRenderEngine.getMeasuringHelper();
15
-
16
- var iCurrentVScrollStep = 0;
17
- var iCurrentHScrollStep = 0;
18
- var bHScrolledToEnd = false;
19
- var bVScrolledToEnd = false;
20
-
21
- var iHScrollValue = 0;
22
- var iVScrollValue = 0;
23
-
24
- var oLastHScrollParams = null;
25
- var oHScrollTimer = null;
26
-
27
- var oLastVScrollParams = null;
28
- var oVScrollTimer = null;
29
-
30
- var oPopup = new sap.ui.core.Popup();
31
- var oTextComponent = null;
32
- if (sap.zen.crosstab.utils.Utils.isMainMode()) {
33
- oTextComponent = new sap.m.Text();
34
- } else {
35
- oTextComponent = new sap.ui.commons.TextView();
36
- oTextComponent.setWrapping(false);
37
- }
38
-
39
- oPopup.setContent(oTextComponent);
40
- oPopup.setDurations(125, 500);
41
- oPopup.setAutoClose(true);
42
- oPopup.getContent().addStyleClass("sapzencrosstab-ScrollPopup");
43
-
44
- var iRowCntLength = (oDataArea.getRowCnt() + "").length;
45
- var iColCntLength = (oDataArea.getColCnt() + "").length;
46
-
47
- var iVPopupWidth = 0;
48
- var iHPopupWidth = 0;
49
-
50
- var bBlockHScrollEvent = false;
51
- var bBlockVScrollEvent = false;
52
-
53
- var that = this;
54
-
55
- this.destroy = function () {
56
- oPopup.destroy();
57
- };
58
-
59
- this.setHScrollPos = function (iHScrollPos) {
60
- iCurrentHScrollStep = iHScrollPos;
61
- };
62
-
63
- this.setVScrollPos = function (iVScrollPos) {
64
- iCurrentVScrollStep = iVScrollPos;
65
- };
66
-
67
- function determineRenderedRowsInArea(oArea) {
68
- var iRowCnt = 0;
69
- if (oArea) {
70
- iRowCnt = $(document.getElementById(oArea.getId())).children("tbody").children("tr").length;
71
- }
72
- return iRowCnt;
73
- }
74
-
75
- function ensureRowsInDataArea() {
76
- // what has been rendered in Col Header Area? Data Area must be aligned!
77
- var sRowSpan = "";
78
- var iRowSpan = 1;
79
- var iRenderedRowsOfRowHeader = determineRenderedRowsInArea(oRowHeaderArea);
80
- var iRenderedRowsOfDataArea = determineRenderedRowsInArea(oDataArea);
81
-
82
- var iMissingRows = iRenderedRowsOfRowHeader - iRenderedRowsOfDataArea;
83
-
84
- if (iMissingRows > 0) {
85
- oRenderEngine.beginRendering();
86
- oRenderEngine.appendTopRows(oDataArea, iMissingRows);
87
- oRowHeaderArea.setRenderStartRow(oDataArea.getRenderStartRow());
88
- oRowHeaderArea.setRenderRowCnt(oDataArea.getRenderRowCnt());
89
- oRenderEngine.adjustColWidths(oDimensionHeaderArea, oRowHeaderArea);
90
- oRenderEngine.adjustColWidths(oColHeaderArea, oDataArea);
91
- oRenderEngine.adjustRowHeights(oRowHeaderArea, oDataArea);
92
- oRenderEngine.finishRendering(true);
93
- }
94
- }
95
-
96
- function handleHScrolling (poEvent) {
97
- oCrosstab.getPageManager().enableTimeout(true);
98
- oHScrollTimer = null;
99
- var oParameters = null;
100
- if (!poEvent) {
101
- oParameters = oLastHScrollParams;
102
- } else {
103
- oParameters = poEvent.getParameters();
104
- }
105
- if (oParameters) {
106
- oCrosstab.postPlanningValue();
107
- var oHScrollbar = oCrosstab.getHScrollbar();
108
- var iMaxSteps = oHScrollbar.getSteps();
109
- bHScrolledToEnd = oParameters.newScrollPos === iMaxSteps;
110
- iCurrentHScrollStep = oParameters.newScrollPos;
111
- that.sendClientScrollPosUpdate();
112
- var iStartCol = oParameters.newScrollPos;
113
-
114
- if (iStartCol !== oColHeaderArea.getRenderStartCol()) {
115
-
116
- // If iStartCol == oColHeaderArea.getColCnt() this means that there is a need to scroll to see the end
117
- // of the last column.
118
- // The last column is already rendered but not fully visible. In this case, omit the rendering and move
119
- // the div.
120
- if (iStartCol !== oColHeaderArea.getColCnt()) {
121
- oRenderEngine.beginRendering();
122
- oRenderEngine.renderColHeaderArea(iStartCol);
123
- oRenderEngine.renderDataArea();
124
- oRenderEngine.adjustColWidths(oColHeaderArea, oDataArea);
125
- oRenderEngine.adjustRowHeights(oRowHeaderArea, oDataArea);
126
- oRenderEngine.adjustRowHeights(oDimensionHeaderArea, oColHeaderArea);
127
- oRenderEngine.finishRendering(true);
128
- }
129
-
130
- var iColHeaderAreaWidth = oMeasuring.getAreaWidth(oColHeaderArea);
131
-
132
- // The visible width of the column header area
133
- var iAvailableColHeaderAreaWidth = oMeasuring.getUpperRightScrollDivWidth();
134
-
135
- var bHasUnusedSpace = iColHeaderAreaWidth < iAvailableColHeaderAreaWidth;
136
- var bLastColRendered = oColHeaderArea.getRenderColCnt() + oColHeaderArea.getRenderStartCol() === oColHeaderArea
137
- .getColCnt();
138
-
139
- if (bHScrolledToEnd || bHasUnusedSpace && bLastColRendered) {
140
- if (bHasUnusedSpace && iStartCol > 0) {
141
- oRenderEngine.beginRendering();
142
- // "4" is purely based on heuristics
143
- oRenderEngine.appendLeftCols(oColHeaderArea, 4);
144
- oRenderEngine.appendLeftCols(oDataArea, 4);
145
- oRenderEngine.adjustColWidths(oColHeaderArea, oDataArea);
146
- oRenderEngine.adjustRowHeights(oRowHeaderArea, oDataArea);
147
- oRenderEngine.adjustRowHeights(oDimensionHeaderArea, oColHeaderArea);
148
- oRenderEngine.finishRendering(true);
149
- }
150
-
151
- // If the user scrolls to the left you can't move the scrollbar to the right, or he won't be able to
152
- // scroll to the left again
153
- if (!bHScrolledToEnd && oParameters.forward) {
154
- moveHScrollbar(0, true);
155
- }
156
-
157
- moveHScrollDiv(true);
158
- } else {
159
- moveHScrollDiv(false);
160
- }
161
- } else {
162
- if (bHScrolledToEnd) {
163
- moveHScrollDiv(true);
164
- }
165
- }
166
-
167
- if (bVScrolledToEnd) {
168
- ensureRowsInDataArea();
169
- moveVScrollDiv(true);
170
- }
171
-
172
- if (oParameters.newScrollPos === 0) {
173
- moveHScrollDiv(false);
174
- }
175
- }
176
- oPopup.close();
177
-
178
- if (oCrosstab.isScrollInvalidate() === true && !oCrosstab.hasLoadingPages()) {
179
- oCrosstab.setInvalidateCalledByScrolling();
180
- oCrosstab.invalidate();
181
- }
182
- }
183
-
184
- this.hScrollHandler = function (oEvent, bNoTimer) {
185
- if (!bBlockHScrollEvent) {
186
- if (bNoTimer) {
187
- handleHScrolling(oEvent);
188
- } else {
189
- // don't save the oEvent instance itself. It will be discarded by PHX
190
- oLastHScrollParams = oEvent.getParameters();
191
- if (oHScrollTimer) {
192
- clearTimeout(oHScrollTimer);
193
- oHScrollTimer = null;
194
- displayHPopup(oLastHScrollParams.newScrollPos);
195
- }
196
- oHScrollTimer = setTimeout(handleHScrolling, 200, null);
197
- iCurrentHScrollStep = oLastHScrollParams.newScrollPos;
198
- }
199
- } else {
200
- bBlockHScrollEvent = false;
201
- }
202
- };
203
-
204
- function moveHScrollbar (iStep, bScrollToEnd) {
205
- var oHScrollbar = oCrosstab.getHScrollbar();
206
- var iCurrentStep = oHScrollbar.getScrollPosition();
207
- var oCrossRequestManager;
208
-
209
- if (bScrollToEnd) {
210
- iStep = oHScrollbar.getSteps();
211
- if (oCrosstab.getPropertyBag().isRtl() && oCrosstab.getUtils().isMozilla()) {
212
- // HACK:
213
- // workaround for UI5 scrollbar not repositioning itself properly although it has correct scroll position > 0.
214
- // it will re-render at position 0 in rtl, regardless whether the internal scroll step is != 0 or not
215
- oHScrollbar.setScrollPosition(0);
216
- oHScrollbar.setScrollPosition(iStep);
217
- }
218
- bHScrolledToEnd = true;
219
- }
220
- if (iCurrentStep !== iStep) {
221
- oHScrollbar.setScrollPosition(iStep);
222
- bBlockHScrollEvent = true;
223
- }
224
- iCurrentHScrollStep = iStep;
225
- oCrossRequestManager = oCrosstab.getRenderEngine().getCrossRequestManager();
226
- if (oCrossRequestManager) {
227
- oCrossRequestManager.setHScrollInfo(iCurrentHScrollStep, bHScrolledToEnd);
228
- }
229
- }
230
-
231
- function moveHScrollDiv (bScrollToEnd) {
232
- that.positionHScrollDiv(bScrollToEnd);
233
- }
234
-
235
- this.positionHScrollDiv = function (bScrollToEnd) {
236
- var oURS = $(document.getElementById(oCrosstab.getId() + "_upperRight_scrollDiv"));
237
- var oLRS = $(document.getElementById(oCrosstab.getId() + "_lowerRight_scrollDiv"));
238
- var iActualScrollValue;
239
-
240
- if (typeof(bScrollToEnd) === "undefined") {
241
- bScrollToEnd = bHScrolledToEnd;
242
- }
243
-
244
- iHScrollValue = bScrollToEnd ? oLRS[0].scrollWidth : 0;
245
-
246
- if (oCrosstab.getPropertyBag().isRtl()) {
247
- if ($.browser.webkit) {
248
- iActualScrollValue = bScrollToEnd ? 0 : oLRS[0].scrollWidth;
249
- } else if (oCrosstab.getUtils().isMozilla()) {
250
- iActualScrollValue = bScrollToEnd ? -oLRS[0].scrollWidth : 0;
251
- } else {
252
- // let the browser do the magic
253
- iActualScrollValue = bScrollToEnd ? oLRS[0].scrollWidth : 0;
254
- }
255
- } else {
256
- iActualScrollValue = bScrollToEnd ? oLRS[0].scrollWidth : 0;
257
- }
258
-
259
- oLRS.scrollLeft(iActualScrollValue);
260
- oURS.scrollLeft(iActualScrollValue);
261
- };
262
-
263
- this.vScrollHandler = function (oEvent, bNoTimer) {
264
- if (!bBlockVScrollEvent) {
265
- if (bNoTimer) {
266
- handleVScrolling(oEvent);
267
- } else {
268
- // don't save the oEvent instance itself. It will be discarded by PHX
269
- oLastVScrollParams = oEvent.getParameters();
270
- if (oVScrollTimer) {
271
- clearTimeout(oVScrollTimer);
272
- oVScrollTimer = null;
273
- displayVPopup(oLastVScrollParams.newScrollPos);
274
- }
275
- oVScrollTimer = setTimeout(handleVScrolling, 200, null);
276
- iCurrentVScrollStep = oLastVScrollParams.newScrollPos;
277
- }
278
- } else {
279
- bBlockVScrollEvent = false;
280
- }
281
- };
282
-
283
- this.sendClientScrollPosUpdate = function() {
284
- oCrosstab.getUtils().sendClientScrollPosUpdate(iCurrentHScrollStep, bHScrolledToEnd, iCurrentVScrollStep, bVScrolledToEnd);
285
- };
286
-
287
- function displayHPopup (iScrollPos) {
288
- var oColHeaderArea = oCrosstab.getColumnHeaderArea();
289
- var oCell = null;
290
- var aHeaderTexts = [];
291
- for ( var iRow = 0; iRow < 1; iRow++) {
292
- oCell = oColHeaderArea.getCellWithColSpan(iRow, iScrollPos, true);
293
- if (oCell) {
294
- aHeaderTexts.push(oCell.getUnescapedText());
295
- } else {
296
- aHeaderTexts.push("?");
297
- }
298
- }
299
- var sLabelText = oCrosstab.getPropertyBag().getText(sap.zen.crosstab.TextConstants.COL_TEXT_KEY) + " "
300
- + sap.zen.crosstab.utils.Utils.padWithZeroes(iScrollPos + 1, iColCntLength) + "/" + oColHeaderArea.getColCnt();
301
-
302
- if (!iHPopupWidth) {
303
- if (sap.zen.crosstab.utils.Utils.isMainMode()) {
304
- oPopup.getContent().setWrapping(false);
305
- }
306
- renderHPopup(sLabelText);
307
- if (sap.zen.crosstab.utils.Utils.isMainMode()) {
308
- iHPopupWidth = $(document.getElementById(oPopup.getContent().getId())).outerWidth();
309
- } else {
310
- iHPopupWidth = $(document.getElementById(oPopup.getContent().getId())).innerWidth();
311
- }
312
- }
313
-
314
- if (sap.zen.crosstab.utils.Utils.isMainMode()) {
315
- oPopup.getContent().setMaxLines(aHeaderTexts.length + 1);
316
- oPopup.getContent().setWrapping(true);
317
- }
318
-
319
- sLabelText = sLabelText + "\n" + aHeaderTexts.join("\n");
320
- renderHPopup(sLabelText);
321
- }
322
-
323
- function renderHPopup (sLabelText) {
324
- oPopup.getContent().setProperty("text", sLabelText, true);
325
- var eDock = sap.ui.core.Popup.Dock;
326
-
327
- if (iHPopupWidth) {
328
- oPopup.getContent().setWidth(iHPopupWidth + "px");
329
- }
330
-
331
- var oHScrollbar = oCrosstab.getHScrollbar();
332
- var iWidth = oMeasuring.getRenderSizeDivSize().iWidth - oMeasuring.getAreaWidth(oCrosstab.getRowHeaderArea());
333
- var iPopupWidth = $(document.getElementById(oPopup.getContent().getId())).outerWidth();
334
- iWidth = iWidth - iPopupWidth;
335
- var rPercent = oHScrollbar.getScrollPosition() / oHScrollbar.getSteps();
336
- var sXCoord = (iWidth * rPercent) + " ";
337
-
338
- oPopup.setPosition(eDock.BeginBottom, eDock.BeginTop, document.getElementById(oCrosstab.getHScrollbar().getId()), sXCoord
339
- + "-20");
340
-
341
- if (oPopup.getOpenState() === sap.ui.core.OpenState.CLOSED) {
342
- oPopup.open(-1);
343
- }
344
- oPopup.getContent().rerender();
345
- }
346
-
347
- function displayVPopup (iScrollPos) {
348
- var oRowHeaderArea = oCrosstab.getRowHeaderArea();
349
- var oCell = null;
350
- var aHeaderTexts = [];
351
- // oRowHeaderArea.getColCnt()
352
- for ( var iCol = 0; iCol < 1; iCol++) {
353
- oCell = oRowHeaderArea.getCellWithRowSpan(iScrollPos, iCol, true);
354
- if (oCell) {
355
- aHeaderTexts.push(oCell.getUnescapedText());
356
- } else {
357
- aHeaderTexts.push("?");
358
- }
359
- }
360
- var sLabelText = oCrosstab.getPropertyBag().getText(sap.zen.crosstab.TextConstants.ROW_TEXT_KEY) + " "
361
- + sap.zen.crosstab.utils.Utils.padWithZeroes(iScrollPos + 1, iRowCntLength) + "/" + oRowHeaderArea.getRowCnt();
362
-
363
- if (!iVPopupWidth) {
364
- if (sap.zen.crosstab.utils.Utils.isMainMode()) {
365
- oPopup.getContent().setWrapping(false);
366
- }
367
- renderVPopup(sLabelText);
368
- if (sap.zen.crosstab.utils.Utils.isMainMode()) {
369
- iVPopupWidth = $(document.getElementById(oPopup.getContent().getId())).outerWidth();
370
- } else {
371
- iVPopupWidth = $(document.getElementById(oPopup.getContent().getId())).innerWidth();
372
- }
373
- }
374
- sLabelText = sLabelText + "\n" + aHeaderTexts.join("\n");
375
-
376
- if (sap.zen.crosstab.utils.Utils.isMainMode()) {
377
- oPopup.getContent().setMaxLines(aHeaderTexts.length + 1);
378
- oPopup.getContent().setWrapping(true);
379
- }
380
-
381
- renderVPopup(sLabelText);
382
- }
383
-
384
- function renderVPopup (sLabelText) {
385
- oPopup.getContent().setProperty("text", sLabelText, true);
386
- var eDock = sap.ui.core.Popup.Dock;
387
- var oVScrollbar = oCrosstab.getVScrollbar();
388
- var iHeight = oMeasuring.getRenderSizeDivSize().iHeight
389
- - oMeasuring.getAreaHeight(oCrosstab.getColumnHeaderArea());
390
- var iPopupHeight = $(document.getElementById(oPopup.getContent().getId())).outerHeight();
391
- iHeight = iHeight - iPopupHeight;
392
- var rPercent = oVScrollbar.getScrollPosition() / oVScrollbar.getSteps();
393
- var sYCoord = " " + (iHeight * rPercent);
394
-
395
- oPopup
396
- .setPosition(eDock.EndTop, eDock.BeginTop, document.getElementById(oCrosstab.getVScrollbar().getId()), "-20"
397
- + sYCoord);
398
-
399
- if (iVPopupWidth) {
400
- oPopup.getContent().setWidth(iVPopupWidth + "px");
401
- }
402
-
403
- if (oPopup.getOpenState() === sap.ui.core.OpenState.CLOSED) {
404
- oPopup.open(-1);
405
- }
406
- oPopup.getContent().rerender();
407
- }
408
-
409
- function determineRenderedColsInArea(oArea) {
410
- var sColSpan = "";
411
- var iColSpan = 1;
412
- var iColCnt = 0;
413
- $(document.getElementById(oArea.getId())).children("tbody").children("tr:last").children("td").each(function(index, domTd) {
414
- sColSpan = $(domTd).attr("colspan");
415
- if (!sColSpan) {
416
- iColSpan = 1;
417
- } else {
418
- iColSpan = parseInt(sColSpan, 10);
419
- }
420
- iColCnt = iColCnt + iColSpan;
421
- });
422
- return iColCnt;
423
- }
424
-
425
- function ensureColsInDataArea() {
426
- // what has been rendered in Col Header Area? Data Area must be aligned!
427
- var sColSpan = "";
428
- var iColSpan = 1;
429
- var iCellCnt = determineRenderedColsInArea(oColHeaderArea);
430
-
431
- var iRenderedCols = determineRenderedColsInArea(oDataArea);
432
- var iMissingCols = iCellCnt - iRenderedCols;
433
-
434
- if (iMissingCols > 0) {
435
- oRenderEngine.beginRendering();
436
- oRenderEngine.appendLeftCols(oDataArea, iMissingCols);
437
- oColHeaderArea.setRenderStartCol(oDataArea.getRenderStartCol());
438
- oColHeaderArea.setRenderColCnt(oDataArea.getRenderColCnt());
439
- oRenderEngine.adjustColWidths(oColHeaderArea, oDataArea);
440
- oRenderEngine.adjustRowHeights(oRowHeaderArea, oDataArea);
441
- oRenderEngine.adjustRowHeights(oDimensionHeaderArea, oColHeaderArea);
442
- oRenderEngine.finishRendering(true);
443
- }
444
- }
445
-
446
- function handleVScrolling (poEvent) {
447
- oCrosstab.getPageManager().enableTimeout(true);
448
- oVScrollTimer = null;
449
- var oParameters = null;
450
- if (!poEvent) {
451
- oParameters = oLastVScrollParams;
452
- } else {
453
- oParameters = poEvent.getParameters();
454
- }
455
- if (oParameters) {
456
- oCrosstab.postPlanningValue();
457
- var oVScrollbar = oCrosstab.getVScrollbar();
458
- var iMaxSteps = oVScrollbar.getSteps();
459
- bVScrolledToEnd = oParameters.newScrollPos === iMaxSteps;
460
- iCurrentVScrollStep = oParameters.newScrollPos;
461
- that.sendClientScrollPosUpdate();
462
- var iStartRow = oParameters.newScrollPos;
463
-
464
- // TODO: make sure this is not executed because of stray scrolling events that do not result from any
465
- // scrolling
466
-
467
- if (iStartRow !== oRowHeaderArea.getRenderStartRow()) {
468
-
469
- // If iStartRow == oRowHeaderArea.getRowCnt() this means that there is a need to scroll to see the end
470
- // of the last row.
471
- // The last row is already rendered but not fully visible. In this case, omit the rendering and move
472
- // the div.
473
- if (iStartRow !== oRowHeaderArea.getRowCnt()) {
474
- oRenderEngine.beginRendering();
475
- oRenderEngine.renderRowHeaderArea(iStartRow);
476
- oRenderEngine.renderDataArea();
477
- oRenderEngine.adjustColWidths(oDimensionHeaderArea, oRowHeaderArea);
478
- oRenderEngine.adjustColWidths(oColHeaderArea, oDataArea);
479
- oRenderEngine.adjustRowHeights(oRowHeaderArea, oDataArea);
480
- oRenderEngine.finishRendering(true);
481
- }
482
-
483
- var iRowHeaderAreaHeight = oMeasuring.getAreaHeight(oRowHeaderArea);
484
-
485
- // The visible height of the row header area
486
- var iAvailableRowHeaderAreaHeight = oMeasuring.getLowerScrollDivHeight();
487
-
488
- var bHasUnusedSpace = iRowHeaderAreaHeight < iAvailableRowHeaderAreaHeight;
489
- var bLastRowRendered = oRowHeaderArea.getRenderRowCnt() + oRowHeaderArea.getRenderStartRow() === oRowHeaderArea
490
- .getRowCnt();
491
-
492
- if (bVScrolledToEnd || bHasUnusedSpace && bLastRowRendered) {
493
- if (bHasUnusedSpace && iStartRow > 0) {
494
- oRenderEngine.beginRendering();
495
- // "2" is purely based on heuristics
496
- oRenderEngine.appendTopRows(oRowHeaderArea, 2);
497
- oRenderEngine.appendTopRows(oDataArea, 2);
498
- oRenderEngine.adjustColWidths(oDimensionHeaderArea, oRowHeaderArea);
499
- oRenderEngine.adjustColWidths(oColHeaderArea, oDataArea);
500
- oRenderEngine.adjustRowHeights(oRowHeaderArea, oDataArea);
501
- oRenderEngine.finishRendering(true);
502
- }
503
-
504
- // If the user scrolls to the top you can't move the scrollbar to the bottom, or he won't be able to
505
- // scroll to the top again
506
- if (!bVScrolledToEnd && oParameters.forward) {
507
- moveVScrollbar(0, true);
508
- }
509
-
510
- moveVScrollDiv(true);
511
- } else {
512
- moveVScrollDiv(false);
513
- }
514
- } else {
515
- if (bVScrolledToEnd) {
516
- moveVScrollDiv(true);
517
- }
518
- }
519
-
520
- if (oParameters.newScrollPos === 0) {
521
- moveVScrollDiv(false);
522
- }
523
-
524
- if (bHScrolledToEnd) {
525
- ensureColsInDataArea();
526
- moveHScrollDiv(true);
527
- }
528
- }
529
- oPopup.close();
530
- adjustHeaderScrollDivs();
531
- }
532
-
533
- function adjustHeaderScrollDivs() {
534
- var oHeaderScrollManager = oCrosstab.getRenderEngine().getHeaderScrollManager();
535
- if (oHeaderScrollManager) {
536
- oHeaderScrollManager.moveScrollbars();
537
- }
538
- }
539
-
540
- function moveVScrollbar (iStep, bScrollToEnd) {
541
- var oVScrollbar = oCrosstab.getVScrollbar();
542
- var iCurrentStep = oVScrollbar.getScrollPosition();
543
- var oCrossRequestManager;
544
-
545
- if (bScrollToEnd) {
546
- iStep = oVScrollbar.getSteps();
547
- bVScrolledToEnd = true;
548
- }
549
- if (iCurrentStep !== iStep) {
550
- oVScrollbar.setScrollPosition(iStep);
551
- bBlockVScrollEvent = true;
552
- }
553
- iCurrentVScrollStep = iStep;
554
- oCrossRequestManager = oCrosstab.getRenderEngine().getCrossRequestManager();
555
- if (oCrossRequestManager) {
556
- oCrossRequestManager.setVScrollInfo(iCurrentVScrollStep, bVScrolledToEnd);
557
- }
558
- }
559
-
560
- function moveVScrollDiv (bScrollToEnd) {
561
- that.positionVScrollDiv(bScrollToEnd);
562
- }
563
-
564
- this.positionVScrollDiv = function(bScrollToEnd) {
565
- var oLRS = $(document.getElementById(oCrosstab.getId() + "_lowerRight_scrollDiv"));
566
- var oLLS = $(document.getElementById(oCrosstab.getId() + "_lowerLeft_scrollDiv"));
567
-
568
- if (typeof(bScrollToEnd) === "undefined") {
569
- bScrollToEnd = bVScrolledToEnd;
570
- }
571
-
572
- iVScrollValue = bScrollToEnd ? oLRS[0].scrollHeight : 0;
573
-
574
- oLRS.scrollTop(iVScrollValue);
575
- oLLS.scrollTop(iVScrollValue);
576
- };
577
-
578
- this.moveScrollbars = function (oScrollbarVisibility, bRenderScrollbars, pbHScrolledToEnd, pbVScrolledToEnd) {
579
- var oHScrollbar = oCrosstab.getHScrollbar();
580
- if (oHScrollbar) {
581
- // scrollstep can be greater than actual scrollbar steps, e. g. if a hierarchy node was collapsed
582
- if (pbHScrolledToEnd !== undefined) {
583
- bHScrolledToEnd = pbHScrolledToEnd;
584
- } else {
585
- bHScrolledToEnd = (oHScrollbar.getSteps() <= iCurrentHScrollStep)
586
- && (oColHeaderArea.getRenderStartCol() + oColHeaderArea.getRenderColCnt() >= oColHeaderArea
587
- .getColCnt());
588
- }
589
- if (bHScrolledToEnd) {
590
- moveHScrollDiv(true);
591
- moveHScrollbar(0, true);
592
- } else {
593
- moveHScrollbar(iCurrentHScrollStep, false);
594
- }
595
- }
596
- var oVScrollbar = oCrosstab.getVScrollbar();
597
- if (oVScrollbar) {
598
- if (pbVScrolledToEnd !== undefined) {
599
- bVScrolledToEnd = pbVScrolledToEnd;
600
- } else {
601
- // scrollstep can be greater than actual scrollbar steps, e. g. if a hierarchy node was collapsed
602
- bVScrolledToEnd = (oVScrollbar.getSteps() <= iCurrentVScrollStep)
603
- && (oRowHeaderArea.getRenderStartRow() + oRowHeaderArea.getRenderRowCnt() >= oRowHeaderArea
604
- .getRowCnt());
605
- }
606
- if (bVScrolledToEnd) {
607
- moveVScrollbar(0, true);
608
- moveVScrollDiv(true);
609
- } else {
610
- moveVScrollbar(iCurrentVScrollStep, false);
611
- }
612
- }
613
- };
614
-
615
- this.commandHScrolledToEnd = function () {
616
- bHScrolledToEnd = true;
617
- };
618
-
619
- this.commandVScrolledToEnd = function () {
620
- bVScrolledToEnd = true;
621
- };
622
-
623
- this.isVScrolledToEnd = function () {
624
- return bVScrolledToEnd;
625
- };
626
-
627
- this.isHScrolledToEnd = function () {
628
- return bHScrolledToEnd;
629
- };
630
-
631
- this.setVScrolledToEnd = function(pbVScrolledToEnd) {
632
- bVScrolledToEnd = pbVScrolledToEnd;
633
- };
634
-
635
- this.setHScrolledToEnd = function(pbHScrolledToEnd) {
636
- bHScrolledToEnd = pbHScrolledToEnd;
637
- };
638
- };