@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.
- package/package.json +1 -1
- package/src/{main/uilib/sap → sap}/zen/crosstab/.library +14 -13
- package/src/sap/zen/crosstab/BaseArea.js +933 -0
- package/src/sap/zen/crosstab/CellStyleHandler.js +109 -0
- package/src/sap/zen/crosstab/ColResizer.js +261 -0
- package/src/sap/zen/crosstab/ColumnHeaderArea.js +61 -0
- package/src/sap/zen/crosstab/Crosstab.js +1351 -0
- package/src/sap/zen/crosstab/CrosstabCellApi.js +141 -0
- package/src/sap/zen/crosstab/CrosstabContextMenu.js +96 -0
- package/src/sap/zen/crosstab/CrosstabHeaderInfo.js +699 -0
- package/src/sap/zen/crosstab/CrosstabRenderer.js +258 -0
- package/src/sap/zen/crosstab/CrosstabTestProxy.js +64 -0
- package/src/sap/zen/crosstab/DataArea.js +76 -0
- package/src/sap/zen/crosstab/DataCell.js +187 -0
- package/src/sap/zen/crosstab/DataCellRenderer.js +70 -0
- package/src/sap/zen/crosstab/DimensionHeaderArea.js +34 -0
- package/src/sap/zen/crosstab/EventHandler.js +664 -0
- package/src/sap/zen/crosstab/HeaderCell.js +357 -0
- package/src/sap/zen/crosstab/HeaderCellRenderer.js +333 -0
- package/src/sap/zen/crosstab/HeaderResizer.js +142 -0
- package/src/sap/zen/crosstab/IDataCell.js +34 -0
- package/src/sap/zen/crosstab/IHeaderCell.js +30 -0
- package/src/sap/zen/crosstab/PropertyBag.js +220 -0
- package/src/sap/zen/crosstab/RowHeaderArea.js +78 -0
- package/src/sap/zen/crosstab/SelectionHandler.js +892 -0
- package/src/sap/zen/crosstab/TextConstants.js +22 -0
- package/src/sap/zen/crosstab/TouchHandler.js +413 -0
- package/src/sap/zen/crosstab/datahandler/JsonDataHandler.js +777 -0
- package/src/sap/zen/crosstab/dragdrop/DragDropAreaRenderer.js +446 -0
- package/src/sap/zen/crosstab/dragdrop/DragDropHandler.js +674 -0
- package/src/sap/zen/crosstab/dragdrop/DragDropHoverManager.js +474 -0
- package/src/sap/zen/crosstab/dragdrop/DragDropUtils.js +579 -0
- package/src/sap/zen/crosstab/dragdrop/MemberDragDropHandler.js +1156 -0
- package/src/sap/zen/crosstab/keyboard/CrosstabKeyboardNavHandler.js +585 -0
- package/src/sap/zen/crosstab/library.js +49 -0
- package/src/sap/zen/crosstab/paging/CellMerger.js +266 -0
- package/src/sap/zen/crosstab/paging/Page.js +331 -0
- package/src/sap/zen/crosstab/paging/PageManager.js +396 -0
- package/src/sap/zen/crosstab/paging/PagingConstants.js +19 -0
- package/src/sap/zen/crosstab/paging/RequestHandler.js +103 -0
- package/src/sap/zen/crosstab/paging/RequestStack.js +112 -0
- package/src/sap/zen/crosstab/rendering/CrossRequestManager.js +468 -0
- package/src/sap/zen/crosstab/rendering/DataModel.js +260 -0
- package/src/sap/zen/crosstab/rendering/DomElementProvider.js +24 -0
- package/src/sap/zen/crosstab/rendering/HeaderScrollManager.js +93 -0
- package/src/sap/zen/crosstab/rendering/PixelScrollManager.js +189 -0
- package/src/sap/zen/crosstab/rendering/RenderEngine.js +2694 -0
- package/src/sap/zen/crosstab/rendering/RenderingConstants.js +60 -0
- package/src/sap/zen/crosstab/rendering/ScrollManager.js +614 -0
- package/src/sap/zen/crosstab/rendering/ScrollbarRenderer.js +560 -0
- package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/Chart.less +0 -4
- package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/InfoFeeding.less +120 -120
- package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_hcb/InfoFeeding.less +85 -85
- package/src/sap/zen/crosstab/utils/Measuring.js +236 -0
- package/src/sap/zen/crosstab/utils/Utils.js +485 -0
- package/ui5.yaml +4 -2
- package/src/main/uilib/sap/zen/crosstab/BaseArea.js +0 -1013
- package/src/main/uilib/sap/zen/crosstab/CellStyleHandler.js +0 -111
- package/src/main/uilib/sap/zen/crosstab/ColResizer.js +0 -264
- package/src/main/uilib/sap/zen/crosstab/ColumnHeaderArea.js +0 -52
- package/src/main/uilib/sap/zen/crosstab/Crosstab.js +0 -1662
- package/src/main/uilib/sap/zen/crosstab/CrosstabCellApi.js +0 -142
- package/src/main/uilib/sap/zen/crosstab/CrosstabContextMenu.js +0 -96
- package/src/main/uilib/sap/zen/crosstab/CrosstabHeaderInfo.js +0 -698
- package/src/main/uilib/sap/zen/crosstab/CrosstabRenderer.js +0 -274
- package/src/main/uilib/sap/zen/crosstab/CrosstabTestProxy.js +0 -59
- package/src/main/uilib/sap/zen/crosstab/DataArea.js +0 -74
- package/src/main/uilib/sap/zen/crosstab/DataCell.js +0 -196
- package/src/main/uilib/sap/zen/crosstab/DataCellRenderer.js +0 -71
- package/src/main/uilib/sap/zen/crosstab/DimensionHeaderArea.js +0 -25
- package/src/main/uilib/sap/zen/crosstab/EventHandler.js +0 -651
- package/src/main/uilib/sap/zen/crosstab/HeaderCell.js +0 -329
- package/src/main/uilib/sap/zen/crosstab/HeaderCellRenderer.js +0 -374
- package/src/main/uilib/sap/zen/crosstab/HeaderResizer.js +0 -131
- package/src/main/uilib/sap/zen/crosstab/IDataCell.js +0 -21
- package/src/main/uilib/sap/zen/crosstab/IHeaderCell.js +0 -21
- package/src/main/uilib/sap/zen/crosstab/PropertyBag.js +0 -209
- package/src/main/uilib/sap/zen/crosstab/RowHeaderArea.js +0 -71
- package/src/main/uilib/sap/zen/crosstab/SelectionHandler.js +0 -911
- package/src/main/uilib/sap/zen/crosstab/TextConstants.js +0 -9
- package/src/main/uilib/sap/zen/crosstab/TouchHandler.js +0 -438
- package/src/main/uilib/sap/zen/crosstab/datahandler/JsonDataHandler.js +0 -760
- package/src/main/uilib/sap/zen/crosstab/dragdrop/DragDropAreaRenderer.js +0 -436
- package/src/main/uilib/sap/zen/crosstab/dragdrop/DragDropHandler.js +0 -682
- package/src/main/uilib/sap/zen/crosstab/dragdrop/DragDropHoverManager.js +0 -467
- package/src/main/uilib/sap/zen/crosstab/dragdrop/DragDropUtils.js +0 -580
- package/src/main/uilib/sap/zen/crosstab/dragdrop/MemberDragDropHandler.js +0 -1154
- package/src/main/uilib/sap/zen/crosstab/keyboard/CrosstabKeyboardNavHandler.js +0 -635
- package/src/main/uilib/sap/zen/crosstab/library.js +0 -38
- package/src/main/uilib/sap/zen/crosstab/nonphx/logic.js +0 -11
- package/src/main/uilib/sap/zen/crosstab/paging/CellMerger.js +0 -284
- package/src/main/uilib/sap/zen/crosstab/paging/Page.js +0 -357
- package/src/main/uilib/sap/zen/crosstab/paging/PageManager.js +0 -437
- package/src/main/uilib/sap/zen/crosstab/paging/PagingConstants.js +0 -7
- package/src/main/uilib/sap/zen/crosstab/paging/RequestHandler.js +0 -97
- package/src/main/uilib/sap/zen/crosstab/paging/RequestStack.js +0 -108
- package/src/main/uilib/sap/zen/crosstab/rendering/CrossRequestManager.js +0 -462
- package/src/main/uilib/sap/zen/crosstab/rendering/DataModel.js +0 -250
- package/src/main/uilib/sap/zen/crosstab/rendering/DomElementProvider.js +0 -13
- package/src/main/uilib/sap/zen/crosstab/rendering/HeaderScrollManager.js +0 -97
- package/src/main/uilib/sap/zen/crosstab/rendering/PixelScrollManager.js +0 -180
- package/src/main/uilib/sap/zen/crosstab/rendering/RenderEngine.js +0 -2757
- package/src/main/uilib/sap/zen/crosstab/rendering/RenderingConstants.js +0 -56
- package/src/main/uilib/sap/zen/crosstab/rendering/ScrollManager.js +0 -638
- package/src/main/uilib/sap/zen/crosstab/rendering/ScrollbarRenderer.js +0 -542
- package/src/main/uilib/sap/zen/crosstab/utils/Measuring.js +0 -225
- package/src/main/uilib/sap/zen/crosstab/utils/Utils.js +0 -480
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/ChartTypeSwitch.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/Crosstab.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/FilterBar.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/FilterPanel.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/Footerbar.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/InfoChart.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/NavigationPanel.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/chartconfig.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/CornerTornEffect.png +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/HTornEffect.png +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/HTornEffectData.png +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/HTornEffectHeader.png +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/VTornEffect.png +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/loading.gif +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/loading_comp.gif +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/zen.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_belize/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_belize_hcb/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_belize_hcw/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_belize_plus/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_bluecrystal/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_fiori_3/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_fiori_3_dark/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_fiori_3_hcb/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_fiori_3_hcw/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_hcb/Chart.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_hcb/ChartTypeSwitch.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_hcb/library.source.less +0 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAPUI5
|
|
3
|
+
* (c) Copyright 2009-2024 SAP SE. All rights reserved.
|
|
4
|
+
*/
|
|
5
|
+
/*global sap*/
|
|
6
|
+
sap.ui.define(
|
|
7
|
+
[
|
|
8
|
+
"jquery.sap.global"
|
|
9
|
+
],
|
|
10
|
+
function(jQuery){
|
|
11
|
+
"use strict";
|
|
12
|
+
jQuery.sap.declare("sap.zen.crosstab.CrosstabCellApi");
|
|
13
|
+
// for external API to the outside: iRow/iCol is zero-based in the grid
|
|
14
|
+
sap.zen.crosstab.CrosstabCellApi = function (
|
|
15
|
+
oCrosstab, iFixedRowHeaders, iFixedColHeaders, iTotalDataColumns, iTotalDataRows
|
|
16
|
+
) {
|
|
17
|
+
var oDataArea = oCrosstab.getDataArea();
|
|
18
|
+
var oColHeaderArea = oCrosstab.getColumnHeaderArea();
|
|
19
|
+
var oRowHeaderArea = oCrosstab.getRowHeaderArea();
|
|
20
|
+
var oDimensionHeaderArea = oCrosstab.getDimensionHeaderArea();
|
|
21
|
+
var iMaxDimHeaderRow = iFixedColHeaders - 1;
|
|
22
|
+
var iMaxDimHeaderCol = iFixedRowHeaders - 1;
|
|
23
|
+
this.getTableCell = function (iRow, iCol) {
|
|
24
|
+
var oCell = null;
|
|
25
|
+
if (iCol >= iFixedRowHeaders && iRow >= iFixedColHeaders) {
|
|
26
|
+
// data cell
|
|
27
|
+
oCell = oDataArea.getCell(iRow - iFixedColHeaders, iCol - iFixedRowHeaders);
|
|
28
|
+
} else if (iCol < iFixedRowHeaders && iRow < iFixedColHeaders) {
|
|
29
|
+
// dim header cell
|
|
30
|
+
oCell = oDimensionHeaderArea.getCell(iRow, iCol);
|
|
31
|
+
} else if (iCol >= iFixedRowHeaders && iRow < iFixedColHeaders) {
|
|
32
|
+
// col header cell
|
|
33
|
+
oCell = oColHeaderArea.getCell(iRow, iCol - iFixedRowHeaders);
|
|
34
|
+
} else if (iCol < iFixedRowHeaders && iRow >= iFixedColHeaders) {
|
|
35
|
+
// row header cell
|
|
36
|
+
oCell = oRowHeaderArea.getCell(iRow - iFixedColHeaders, iCol);
|
|
37
|
+
}
|
|
38
|
+
return oCell;
|
|
39
|
+
};
|
|
40
|
+
this.getTableCellWithColSpan = function (iRow, iCol) {
|
|
41
|
+
var oCell = null;
|
|
42
|
+
if (iCol >= iFixedRowHeaders && iRow >= iFixedColHeaders) {
|
|
43
|
+
// data cell
|
|
44
|
+
oCell = oDataArea.getDataModel().getCellWithColSpan(iRow - iFixedColHeaders, iCol - iFixedRowHeaders, true);
|
|
45
|
+
} else if (iCol < iFixedRowHeaders && iRow < iFixedColHeaders) {
|
|
46
|
+
// dim header cell
|
|
47
|
+
oCell = oDimensionHeaderArea.getDataModel().getCellWithColSpan(iRow, iCol, true);
|
|
48
|
+
} else if (iCol >= iFixedRowHeaders && iRow < iFixedColHeaders) {
|
|
49
|
+
// col header cell
|
|
50
|
+
oCell = oColHeaderArea.getDataModel().getCellWithColSpan(iRow, iCol - iFixedRowHeaders, true);
|
|
51
|
+
} else if (iCol < iFixedRowHeaders && iRow >= iFixedColHeaders) {
|
|
52
|
+
// row header cell
|
|
53
|
+
oCell = oRowHeaderArea.getDataModel().getCellWithColSpan(iRow - iFixedColHeaders, iCol, true);
|
|
54
|
+
}
|
|
55
|
+
return oCell;
|
|
56
|
+
};
|
|
57
|
+
this.getTableCellWithRowSpan = function (iRow, iCol) {
|
|
58
|
+
var oCell = null;
|
|
59
|
+
if (iCol >= iFixedRowHeaders && iRow >= iFixedColHeaders) {
|
|
60
|
+
// data cell
|
|
61
|
+
oCell = oDataArea.getDataModel().getCellWithRowSpan(iRow - iFixedColHeaders, iCol - iFixedRowHeaders, true);
|
|
62
|
+
} else if (iCol < iFixedRowHeaders && iRow < iFixedColHeaders) {
|
|
63
|
+
// dim header cell
|
|
64
|
+
oCell = oDimensionHeaderArea.getDataModel().getCellWithRowSpan(iRow, iCol, true);
|
|
65
|
+
} else if (iCol >= iFixedRowHeaders && iRow < iFixedColHeaders) {
|
|
66
|
+
// col header cell
|
|
67
|
+
oCell = oColHeaderArea.getDataModel().getCellWithRowSpan(iRow, iCol - iFixedRowHeaders, true);
|
|
68
|
+
} else if (iCol < iFixedRowHeaders && iRow >= iFixedColHeaders) {
|
|
69
|
+
// row header cell
|
|
70
|
+
oCell = oRowHeaderArea.getDataModel().getCellWithRowSpan(iRow - iFixedColHeaders, iCol, true);
|
|
71
|
+
}
|
|
72
|
+
return oCell;
|
|
73
|
+
};
|
|
74
|
+
// gets a table cell when arbitrary row/col is given.
|
|
75
|
+
// iRow/iCol may point to a NULL cell in case a cell
|
|
76
|
+
// has row or col span > 1. In that case, return
|
|
77
|
+
// the "actual" non-null cell that belongs to the coordinates
|
|
78
|
+
this.getTableCellWithSpans = function (iRow, iCol) {
|
|
79
|
+
var oCell = this.getTableCell(iRow, iCol);
|
|
80
|
+
// search backward horizontally first
|
|
81
|
+
// on each horizontal position, search for a vertical cell
|
|
82
|
+
var iColIdx = iCol--;
|
|
83
|
+
while (!oCell && iColIdx >= 0) {
|
|
84
|
+
var iRowIdx = iRow;
|
|
85
|
+
oCell = this.getTableCell(iRowIdx, iColIdx);
|
|
86
|
+
if (oCell && oCell.isLoading()) {
|
|
87
|
+
// stop processing when finding loading cell
|
|
88
|
+
// caller must react and cancel all calculations
|
|
89
|
+
return oCell;
|
|
90
|
+
}
|
|
91
|
+
if (!oCell) {
|
|
92
|
+
iRowIdx--;
|
|
93
|
+
while (!oCell && iRowIdx >= 0) {
|
|
94
|
+
oCell = this.getTableCell(iRowIdx, iColIdx);
|
|
95
|
+
iRowIdx--;
|
|
96
|
+
}
|
|
97
|
+
if (oCell) {
|
|
98
|
+
if (oCell.isLoading()) {
|
|
99
|
+
return oCell;
|
|
100
|
+
}
|
|
101
|
+
var iLastRow = oCell.getTableRow() + oCell.getRowSpan() - 1;
|
|
102
|
+
if (iLastRow < iRow) {
|
|
103
|
+
// plausibility check: the found cell must have the
|
|
104
|
+
// initial row in its rowspan, otherwise it is
|
|
105
|
+
// a different cell already which we don't want
|
|
106
|
+
oCell = null;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
iColIdx--;
|
|
111
|
+
}
|
|
112
|
+
return oCell;
|
|
113
|
+
};
|
|
114
|
+
this.getTableRowCnt = function () {
|
|
115
|
+
return iTotalDataRows + iFixedColHeaders;
|
|
116
|
+
};
|
|
117
|
+
this.getTableColCnt = function () {
|
|
118
|
+
return iTotalDataColumns + iFixedRowHeaders;
|
|
119
|
+
};
|
|
120
|
+
this.getTableMaxScrollRowCnt = function () {
|
|
121
|
+
return iTotalDataRows;
|
|
122
|
+
};
|
|
123
|
+
this.getTableMaxScrollColCnt = function () {
|
|
124
|
+
return iTotalDataColumns;
|
|
125
|
+
};
|
|
126
|
+
this.getTableFixedRowHeaderColCnt = function () {
|
|
127
|
+
return iFixedRowHeaders;
|
|
128
|
+
};
|
|
129
|
+
this.getTableFixedColHeaderRowCnt = function () {
|
|
130
|
+
return iFixedColHeaders;
|
|
131
|
+
};
|
|
132
|
+
this.getTableMaxDimHeaderRow = function() {
|
|
133
|
+
return iMaxDimHeaderRow;
|
|
134
|
+
};
|
|
135
|
+
this.getTableMaxDimHeaderCol = function() {
|
|
136
|
+
return iMaxDimHeaderCol;
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
return sap.zen.crosstab.CrosstabCellApi;
|
|
140
|
+
}
|
|
141
|
+
);
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAPUI5
|
|
3
|
+
* (c) Copyright 2009-2024 SAP SE. All rights reserved.
|
|
4
|
+
*/
|
|
5
|
+
/*global sap*/
|
|
6
|
+
sap.ui.define(
|
|
7
|
+
[
|
|
8
|
+
"jquery.sap.global",
|
|
9
|
+
"sap/zen/crosstab/rendering/RenderingConstants"
|
|
10
|
+
],
|
|
11
|
+
function(jQuery, RenderingConstants){
|
|
12
|
+
"use strict";
|
|
13
|
+
jQuery.sap.declare("sap.zen.crosstab.CrosstabContextMenu");
|
|
14
|
+
sap.zen.crosstab.CrosstabContextMenu = function (oCrosstab) {
|
|
15
|
+
this.getContextMenuAction = function (sContextMenuComponentId, oDomClickedElement) {
|
|
16
|
+
var oCore = sap.ui.getCore();
|
|
17
|
+
var oElement = oDomClickedElement;
|
|
18
|
+
while (!oCore.byId(oElement.attr("id"))) {
|
|
19
|
+
oElement = oElement.parent();
|
|
20
|
+
}
|
|
21
|
+
if (oElement.attr("id") === oCrosstab.getId()) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
var oCell = oCore.byId(oElement.attr("id"));
|
|
25
|
+
var sCellType = null;
|
|
26
|
+
if (oCell.getCellType) {
|
|
27
|
+
sCellType = oCell.getCellType();
|
|
28
|
+
} else {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
var bRemoveSelection = false;
|
|
32
|
+
var sCssClass = null;
|
|
33
|
+
if (oCrosstab.isSelectable() === true) {
|
|
34
|
+
var oSelectionHandler = oCrosstab.getSelectionHandler();
|
|
35
|
+
if (oSelectionHandler && oSelectionHandler.hasSelection() === true) {
|
|
36
|
+
if (oCell.getArea().isDataArea() === true) {
|
|
37
|
+
sCssClass = "sapzencrosstab-DataCellSelectData";
|
|
38
|
+
} else if (oCell.getArea().isRowHeaderArea() === true) {
|
|
39
|
+
sCssClass = "sapzencrosstab-HeaderCellSelectRow";
|
|
40
|
+
} else if (oCell.getArea().isColHeaderArea() === true) {
|
|
41
|
+
sCssClass = "sapzencrosstab-HeaderCellSelectCol";
|
|
42
|
+
}
|
|
43
|
+
bRemoveSelection = !(jQuery(oElement).hasClass(sCssClass));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
var sAreaType = oCell.getArea().getAreaType();
|
|
47
|
+
var sAxis = "";
|
|
48
|
+
if (sAreaType === RenderingConstants.TYPE_COLUMN_HEADER_AREA) {
|
|
49
|
+
sAxis = "COLS";
|
|
50
|
+
} else if (sAreaType === RenderingConstants.TYPE_ROW_HEADER_AREA) {
|
|
51
|
+
sAxis = "ROWS";
|
|
52
|
+
} else if (sAreaType === RenderingConstants.TYPE_DIMENSION_HEADER_AREA) {
|
|
53
|
+
var oDimInfo;
|
|
54
|
+
if (oCell.isSplitPivotCell()) {
|
|
55
|
+
var oDimInfo1 = oCrosstab.getHeaderInfo().getDimensionInfoByRowCol(oCell, "ROWS");
|
|
56
|
+
var oDimInfo2 = oCrosstab.getHeaderInfo().getDimensionInfoByRowCol(oCell, "COLS");
|
|
57
|
+
// dimension takes precedence over measure structure. If it is a "real" split cell with
|
|
58
|
+
// two dimensions leave oDimInfo === null => no context menu on split cell
|
|
59
|
+
if (oDimInfo1 && oDimInfo1.bIsMeasureStructure) {
|
|
60
|
+
oDimInfo = oDimInfo2;
|
|
61
|
+
} else if (oDimInfo2 && oDimInfo2.bIsMeasureStructure) {
|
|
62
|
+
oDimInfo = oDimInfo1;
|
|
63
|
+
}
|
|
64
|
+
} else {
|
|
65
|
+
oDimInfo = oCrosstab.getHeaderInfo().getDimensionInfoByRowCol(oCell);
|
|
66
|
+
}
|
|
67
|
+
if (!oDimInfo) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
sAxis = oDimInfo.sAxisName;
|
|
71
|
+
} else if (sCellType === RenderingConstants.TYPE_DATA_CELL) {
|
|
72
|
+
sAxis = "DATA";
|
|
73
|
+
} else {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
var iRow = oCell.getTableRow();
|
|
77
|
+
var iCol = oCell.getTableCol();
|
|
78
|
+
var sContextMenuCommand = oCrosstab.getPropertyBag().getContextMenuCommand();
|
|
79
|
+
sContextMenuCommand = sContextMenuCommand.replace("__AXIS__", sAxis);
|
|
80
|
+
sContextMenuCommand = sContextMenuCommand.replace("__ROW__", iRow);
|
|
81
|
+
sContextMenuCommand = sContextMenuCommand.replace("__COL__", iCol);
|
|
82
|
+
sContextMenuCommand = sContextMenuCommand.replace("__ID__", sContextMenuComponentId);
|
|
83
|
+
sContextMenuCommand = sContextMenuCommand.replace("__DOM_REF_ID__", oDomClickedElement.attr("id"));
|
|
84
|
+
if (sContextMenuCommand.indexOf("__REMOVE_SELECTION__") >= 0) {
|
|
85
|
+
sContextMenuCommand = sContextMenuCommand.replace("__REMOVE_SELECTION__", bRemoveSelection);
|
|
86
|
+
}
|
|
87
|
+
var execFunction = function() {
|
|
88
|
+
oCrosstab.getUtils().executeCommandAction(sContextMenuCommand);
|
|
89
|
+
};
|
|
90
|
+
oCrosstab.enableClick();
|
|
91
|
+
return execFunction;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
return sap.zen.crosstab.CrosstabContextMenu;
|
|
95
|
+
}
|
|
96
|
+
);
|