123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- /****************************************************************
- ** Licensed Materials - Property of IBM
- **
- ** BI and PM: qs
- **
- ** (C) Copyright IBM Corp. 2001, 2015
- **
- ** US Government Users Restricted Rights - Use, duplication or
- ** disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- *****************************************************************/
- // Copyright (C) 2008 Cognos ULC, an IBM Company. All Rights Reserved.
- // Cognos and the Cognos logo are trademarks of Cognos ULC (formerly Cognos Incorporated) in the United States and/or other countries. IBM and the IBM logo are trademarks of International Business Machines Corporation in the United States, or other countries, or both. Other company, product, or service names may be trademarks or service marks of others.
- var FEATURE_SETUP_FAILED = -2;
- var FEATURE_SETUP_ERROR_STATE = -1;
- var FEATURE_SETUP_WITHOUT_DIALOG = 0;
- var FEATURE_SETUP_REQUIRES_DIALOG = 1;
- var FEATURE_SETUP_REQUIRES_QOS = 2;
- function CFeatureManager()
- {
- this.m_oFeatureRegistry = new CFeatureRegistry();
- this.m_oFormMgr = goApplicationManager.getFormManager();
- this.m_oFeatureObjFactory = new CFeatureObjectFactory();
- this.m_aFeatureLaunchStack = new Array();
- };
- CFeatureManager.prototype.getFeatureRegistry = function ()
- {
- return this.m_oFeatureRegistry;
- };
- CFeatureManager.prototype.getFeatureObjectFactory = function ()
- {
- return this.m_oFeatureObjFactory;
- };
- CFeatureManager.prototype.getFeatureLaunchStack = function ()
- {
- return this.m_aFeatureLaunchStack;
- };
- CFeatureManager.prototype.getAllFeatureDetailsInStack = function (iFeatureIdx)
- {
- var aFeatureLaunchStack = this.getFeatureLaunchStack();
- if (typeof iFeatureIdx != "number")
- {
- iFeatureIdx = aFeatureLaunchStack.length - 1;
- }
- var aFeatureDetails = new Array();
- if (this.m_aFeatureLaunchStack.length > 0)
- {
- var sCurrentFeatureName = aFeatureLaunchStack[iFeatureIdx];
- var idxFeature;
- var oFeatureObject = this.getFeatureRegistry().getRegisteredFeature(sCurrentFeatureName);
- for (idxFeature in oFeatureObject)
- {
- var idxFeatureDetails = aFeatureDetails.length;
- aFeatureDetails[idxFeatureDetails] = new Array();
- aFeatureDetails[idxFeatureDetails][0] = typeof oFeatureObject[idxFeature];
- aFeatureDetails[idxFeatureDetails][1] = idxFeature.toString();
- if (typeof oFeatureObject[idxFeature] == "function")
- {
- aFeatureDetails[idxFeatureDetails][2] = "[Function code]";
- }
- else
- {
- aFeatureDetails[idxFeatureDetails][2] = oFeatureObject[idxFeature];
- }
- }
- }
- return aFeatureDetails;
- };
- CFeatureManager.prototype.launchFeature = function (sFeatureName, aFeatureParams)
- {
- if (this.getFeatureRegistry().isRegistered(sFeatureName) === true && this.getFeatureRegistry().isFeatureLaunchable(sFeatureName) === true)
- {
- var iFeatureState = this.setupFeature(sFeatureName, aFeatureParams);
-
-
-
-
-
-
- if (iFeatureState !== FEATURE_SETUP_REQUIRES_QOS)
- {
- if (iFeatureState == FEATURE_SETUP_WITHOUT_DIALOG || iFeatureState == FEATURE_SETUP_REQUIRES_DIALOG)
- {
- this.m_aFeatureLaunchStack[this.m_aFeatureLaunchStack.length] = sFeatureName;
- }
- if (iFeatureState == FEATURE_SETUP_REQUIRES_DIALOG)
- {
-
- if (goApplicationManager)
- {
- goApplicationManager.getWindowManager().showDialogFrame();
- }
-
- var aFeatureDefinedParams = this.retrieveFeatureParams(sFeatureName);
- if (this.m_oFormMgr !== null)
- {
- var oNewForm = this.m_oFormMgr.setupDialogForm(aFeatureDefinedParams, true);
- if (oNewForm !== null)
- {
-
-
- var oldUnload = window.onbeforeunload;
- window.onbeforeunload = null;
-
- this.m_oFormMgr.submitForm(oNewForm);
- window.onbeforeunload = oldUnload;
-
- }
- }
- }
- }
- }
- };
- CFeatureManager.prototype.setupFeature = function (sFeatureName, aFeatureParams)
- {
- try
- {
- var oRegdFeature = this.getFeatureRegistry().getRegisteredFeature(sFeatureName);
- if (oRegdFeature instanceof AFeatureObject)
- {
- if (oRegdFeature.isQualityOfServiceRequired() === true)
- {
- if (cfgSize("CalcFns") === 0 || cfgGet("currentMetadataFunctionOperations") != "all")
- {
- this.setupQoSForFeature(sFeatureName, aFeatureParams);
- fetchMetadataFunctionList();
- return FEATURE_SETUP_REQUIRES_QOS;
- }
- oRegdFeature.setQualityOfServiceStatus(false);
- }
-
- var aNewFeatureParams = [];
- if (typeof aFeatureParams == "string")
- {
- aNewFeatureParams.push(aFeatureParams);
- }
- else if (typeof aFeatureParams != "undefined" && aFeatureParams !== null)
- {
- for (var iParamNum = 0; iParamNum < aFeatureParams.length; iParamNum++)
- {
- aNewFeatureParams.push(aFeatureParams[iParamNum]);
- }
- }
- oRegdFeature.setup(aNewFeatureParams);
- if (oRegdFeature.isInErrorState())
- {
- oRegdFeature.processErrorState();
- return FEATURE_SETUP_ERROR_STATE;
- }
- else if (oRegdFeature.isDialogRequired())
- {
- return FEATURE_SETUP_REQUIRES_DIALOG;
- }
- else if (oRegdFeature.isSafeWithoutDialog())
- {
- oRegdFeature.proceedWithoutDialog();
- return FEATURE_SETUP_WITHOUT_DIALOG;
- }
- }
- }
- catch (e)
- {
-
-
- if (typeof gQSDebug != "undefined" && gQSDebug)
- {
- alert(e);
- }
- }
- return FEATURE_SETUP_FAILED;
- };
- CFeatureManager.prototype.setupQoSForFeature = function (sFeatureName, aFeatureParams)
- {
- var oAppManager = null;
- if (typeof goApplicationManager != "undefined" && goApplicationManager instanceof CApplicationManager)
- {
- oAppManager = goApplicationManager;
- }
- else if (typeof goDialogManager != "undefined" && goDialogManager instanceof CDialogManager)
- {
- oAppManager = goDialogManager.getApplicationManager();
- }
- else if (typeof goWindowManager != "undefined" && goWindowManager instanceof CWindowManager)
- {
- oAppManager = goWindowManager.getApplicationManager();
- }
- if (oAppManager !== null)
- {
- oAppManager.add("featureWaitingToLaunch", sFeatureName);
- oAppManager.add("featureWaitingToLaunchParams", aFeatureParams);
- }
- };
- CFeatureManager.prototype.retrieveFeatureParams = function (sFeatureName)
- {
- var aFeatureParams = new Array();
- try
- {
- var oRegdFeature = this.getFeatureRegistry().getRegisteredFeature(sFeatureName);
- if (oRegdFeature instanceof AFeatureObject)
- {
- aFeatureParams = oRegdFeature.getDialogParameters();
- }
- }
- catch (e)
- {
- }
- return aFeatureParams;
- };
- CFeatureManager.prototype.executeFeature = function (sFeatureName, aFeatureParams)
- {
- try
- {
- var oRegdFeature = this.getFeatureRegistry().getRegisteredFeature(sFeatureName);
- if (oRegdFeature instanceof AFeatureObject)
- {
- return oRegdFeature.execute(aFeatureParams);
- }
- }
- catch (e)
- {
- }
- return false;
- };
- CFeatureManager.prototype.registerFeatures = function ()
- {
- var aFeatures = goIncludedFeatures.keys();
- for (var idxFeature = 0; idxFeature < aFeatures.length; idxFeature++)
- {
- var sFeatureName = aFeatures[idxFeature];
- var oFeatureObject = this.getFeatureObjectFactory().getFeatureObject(sFeatureName);
- if (oFeatureObject instanceof AFeatureObject)
- {
- this.getFeatureRegistry().register(sFeatureName, oFeatureObject, goIncludedFeatures.get(sFeatureName));
- }
- else
- {
- this.getFeatureRegistry().addToUnregisteredList(sFeatureName, oFeatureObject);
- }
- }
- aFeatures = goExcludedFeatures.keys();
- for (var idxFeature = 0; idxFeature < aFeatures.length; idxFeature++)
- {
- var sFeatureName = aFeatures[idxFeature];
- var oFeatureObject = this.getFeatureObjectFactory().getFeatureObject(sFeatureName);
- this.getFeatureRegistry().addToUnregisteredList(sFeatureName, oFeatureObject);
- }
- };
|