12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- /*
- *+------------------------------------------------------------------------+
- *| Licensed Materials - Property of IBM
- *| IBM Cognos Products: Viewer
- *| (C) Copyright IBM Corp. 2013
- *|
- *| US Government Users Restricted Rights - Use, duplication or
- *| disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- *|
- *+------------------------------------------------------------------------+
- */
- function FreezeColumnHeadingsAction()
- {
- }
-
- FreezeColumnHeadingsAction.prototype = new UndoableClientActionBase();
- FreezeColumnHeadingsAction.superclass = UndoableClientActionBase.prototype;
- FreezeColumnHeadingsAction.prototype.execute = function()
- {
- var lidToFreeze = this.m_sContainerId ? this.m_sContainerId : this.getSelectedCrosstabOrListContainerId();
- if (lidToFreeze) {
- //Selection borders in high contrast mode aren't cleaned up properly when cloned,
- //so remove all selections before performing freeze
- this.m_oCV.getSelectionController().resetSelections();
-
- this.m_oCV.getPinFreezeManager().freezeContainerColumnHeadings(lidToFreeze);
- this.addClientSideUndo(this, [lidToFreeze]);
- }
- };
- FreezeColumnHeadingsAction.prototype.getUndoHint = function()
- {
- return RV_RES.IDS_JS_FREEZECOLUMNHEADINGS;
- };
- FreezeColumnHeadingsAction.prototype.getUndoClass = function()
- {
- return "UnfreezeColumnHeadings";
- };
- FreezeColumnHeadingsAction.prototype.getSelectedCrosstabOrListContainerLid = function()
- {
- var selectedObjects = this.m_oCV.getSelectionController().getAllSelectedObjects();
- if (selectedObjects && selectedObjects.length &&
- (selectedObjects[0].getDataContainerType() == "crosstab" ||
- selectedObjects[0].getDataContainerType() == "list")) {
- var lid=(selectedObjects[0].getLayoutElementId());
- if (lid) {
- return lid;
- }
- }
- return null;
- };
- /**
- * return the selected container id (without namespace) if it is valid for pin freeze Columns (ie: its a crosstab)
- */
- FreezeColumnHeadingsAction.prototype.getSelectedCrosstabOrListContainerId = function()
- {
- var lid = this.getSelectedCrosstabOrListContainerLid();
- if (lid) {
- return this.removeNamespace(lid);
- }
- return null;
- };
- /**
- * Column headings can be frozen if the layout type is right and the Column headings aren't already frozen.
- */
- FreezeColumnHeadingsAction.prototype.canFreezeColumnHeadings = function()
- {
- var pfManager = this.m_oCV.getPinFreezeManager();
- if (pfManager) {
- var containerId=this.getSelectedCrosstabOrListContainerId();
- if (containerId) {
- if(!pfManager.hasFrozenColumnHeadings(containerId) && pfManager.getValidSelectedContainerId(true)) {
- return true;
- }
- }
- return false;
- }
- };
- FreezeColumnHeadingsAction.prototype.updateMenu = function(jsonSpec)
- {
- jsonSpec.visible = this.canFreezeColumnHeadings();
- return jsonSpec;
- };
|