123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- function DrillContextMenuHelper() {}
- DrillContextMenuHelper.updateDrillMenuItems = function(jsonSpec, oCV, sAction)
- {
-
- var subMenuItems = [];
- if (DrillContextMenuHelper.needsDrillSubMenu(oCV)) {
- var selectionController = oCV.getSelectionController();
- var selectedObjects = selectionController.getAllSelectedObjects();
- var selObj = selectedObjects[0];
-
-
- if (selObj.getUseValues().length > 1 && typeof RV_RES != "undefined") {
- var oDrillOnMenuItem = { name: sAction, label: RV_RES.RV_DRILL_DEFAULT, action: { name: sAction, payload: {} } };
- subMenuItems.push(oDrillOnMenuItem);
- }
-
- var firstDim=(selObj.getUseValues().length>1) ? 1 : 0;
- var lastDim=selObj.getUseValues().length-1;
- lastDim=(lastDim>2) ? 2 : lastDim;
- for (var iDim=firstDim; iDim<=lastDim; ++iDim) {
- DrillContextMenuHelper.addSubMenuItem(sAction, subMenuItems, selObj, iDim, 0);
- }
-
- var bRenderedSeparator=false;
- for (var iDim=firstDim; iDim<=lastDim; ++iDim) {
- for (var iLevel=1; iLevel<selObj.getUseValues()[iDim].length; ++iLevel) {
- if (bRenderedSeparator==false) {
- subMenuItems.push({separator: true});
- bRenderedSeparator=true;
- }
- DrillContextMenuHelper.addSubMenuItem(sAction, subMenuItems, selObj, iDim, iLevel);
- }
- }
- }
- DrillContextMenuHelper.completeDrillMenu(sAction, subMenuItems, jsonSpec);
- };
- DrillContextMenuHelper.needsDrillSubMenu = function(oCV)
- {
- var selectionController = (oCV && oCV.getSelectionController());
- if (selectionController) {
- var selectedObjects = selectionController.getAllSelectedObjects();
- if(selectedObjects.length == 1 && selectedObjects[0].isHomeCell && selectedObjects[0].isHomeCell() == false) {
- var bDrillSubmenu = selectedObjects[0].isSelectionOnVizChart();
- if (!bDrillSubmenu) {
- var drillSubMenuType = oCV.getAdvancedServerProperty("VIEWER_JS_ENABLE_DRILL_SUBMENU");
- bDrillSubmenu = (drillSubMenuType=="charts" && selectionController.hasSelectedChartNodes());
- }
-
- if (bDrillSubmenu) {
- var selObj = selectedObjects[0];
- return (bDrillSubmenu && selObj.getUseValues() && (selObj.getUseValues().length > 1 || selObj.getUseValues()[0].length > 1));
- }
- }
- }
- return false;
- };
- DrillContextMenuHelper.addSubMenuItem = function(sAction, subMenuItems, selObj, iDim, iLevel)
- {
- var drillOption = selObj.getDrillOptions()[iDim][iLevel];
- if (DrillContextMenuHelper.isOptionDrillable(sAction, drillOption)) {
- var sItemLabel = DrillContextMenuHelper.getItemValue(selObj, iDim, iLevel);
- if (sItemLabel) {
- var sDataItem = selObj.getDataItems()[iDim][iLevel];
- var oDrillOnMenuItem = { name: sAction, label: sItemLabel, action: { name: sAction, payload: { userSelectedDrillItem: sDataItem } } };
- subMenuItems.push(oDrillOnMenuItem);
- }
- }
- };
- DrillContextMenuHelper.completeDrillMenu = function(sAction, subMenuItems, jsonSpec)
- {
- if (subMenuItems.length > 0) {
- jsonSpec.items = subMenuItems;
- } else {
- jsonSpec.items = null;
- if (jsonSpec.action==null) {
- jsonSpec.action = { name: sAction, action: { name: sAction } };
- }
- }
- };
- DrillContextMenuHelper.isOptionDrillable = function(sAction, drillFlag)
- {
-
- return (drillFlag>=3 || (sAction=="DrillDown" && drillFlag==2) || (sAction=="DrillUp" && drillFlag==1));
- };
- DrillContextMenuHelper.getItemValue = function(selObj, iDim, iLevel)
- {
- var itemsLabel = (iLevel==0) ? selObj.getDisplayValues()[iDim] : null;
- return ((itemsLabel) ? itemsLabel : selObj.getUseValues()[iDim][iLevel]);
- };
|