/* *+------------------------------------------------------------------------+ *| Licensed Materials - Property of IBM *| BI and PM: prmt *| (C) Copyright IBM Corp. 2002, 2011 *| *| US Government Users Restricted Rights - Use, duplication or *| disclosure restricted by GSA ADP Schedule Contract with IBM Corp. *| *+------------------------------------------------------------------------+ */ /** This script is used to provide interactivity for the PickTree prompt control This control primary purpose is to support SAP hierarchy variables @private @class */ cognos.Prompt.Control.PickTree = cognos.Prompt.Control.f_extend({ f_initialize: function( v_oProps ) { this._type_ = "cognos.Prompt.Control.PickTree"; this.f_parent( v_oProps ); // call parent's initialize() var v_oPropsComponent = Object.f_extend( {}, v_oProps ); v_oPropsComponent["@required"] = true; v_oPropsComponent["@hideAdornments"] = true; v_oPropsComponent.m_bIsAComponent = true; v_oPropsComponent.m_oOwner = this; v_oPropsComponent._id_ = this.f_getId(); this.m_oTreeArguments = v_oPropsComponent; this.f_initCompleted(); // initialize adornment image this.m_adornmentImg = 'spacer.gif'; }, //validate the input into the control checkData: function() { this.m_bValid = this.m_oTree.m_bValid; this.f_parent(); // call parent's checkData using saved reference. return this.m_bValid; }, clearValues: function() { this.f_parent(); this.f_clear(); }, f_drawCompleted: function() { this.m_oTree.f_drawCompleted(); var v_oPickList = $(this.f_getId("PRMT_PT_HIERARCHIES_")); this.m_oPickList = v_oPickList; PRMTUtils.f_addEvent(v_oPickList, "change", this.f_onChangeTree.bind(this) ); } }); /** * Return the value of the control, which in this case is returning the tree selection */ cognos.Prompt.Control.PickTree.prototype.f_getPV = function() { var v_oTree = this.m_oTree; var v_aPV = []; if ( v_oTree ) { v_aPV = v_oTree.f_getPV(); } return v_aPV; }; /** * Draws the layout *
Adornment | *
* pickList
* Tree
*
* @private
* @param {C_PromptElement} v_el Container.
* @return {void}
*/
cognos.Prompt.Control.PickTree.prototype.f_drawLayout = function( v_el )
{
var v_tdLayout = $CE( "td", {}, v_el );
var v_tbl = $CE( "table", {"border": K_PRMT_DEBUG_TABLEBORDER, "cellPadding":0, "cellSpacing":0, "role":K_PRMT_ARIA_ROLE_PRESENTATION}, v_tdLayout );
if ( this[K_PRMT_sATTR_DISABLED] )
{
v_tbl.f_setProperty( "disabled", "disabled" );
}
var v_tbd = $CE( "tbody", {}, v_tbl );
var v_tr = $CE( "tr", {}, v_tbd );
var v_td = $CE( "td", {"vAlign":"top", "class": "clsControlLabel pc"}, v_tr );
if ( this.isRequired() && !this["@hideAdornments"] )
{
var v_imgReq = $CE( "img", {
"src": this.m_sSkin + "/prompting/images/icon_required.gif",
"class": "clsErrorRequired",
"vAlign": "top",
"height": 10,
"width": 10,
"border": 0,
"alt": ""
}, v_td);
}
var v_tdControl = $CE( "td", {}, v_tr );
this.f_drawPickList( v_tdControl );
v_tr = $CE( "tr", {}, v_tbd );
v_td = $CE( "td", {"vAlign":"top", "class": "clsControlLabel pc"}, v_tr );
$CE("img", {"src": this.m_sSkin + "/prompting/images/spacer.gif", "width": 10, "height": 1, "border": 0, "alt": ""}, v_td);
this.m_elPrompt = this.f_drawTree( v_tr );
return (this.m_elPrompt);
}
/**
* Draws the drop down to pick the hierarchy
*
* @private
* @param {C_PromptElement} v_el Container.
* @return {void}
*/
cognos.Prompt.Control.PickTree.prototype.f_drawPickList = function( v_el )
{
var v_oContainer = $CE("div", {"id": this.f_getId("PRMT_PT_HIERARCHIES_BOX_")}, v_el);
var v_oPickList = $CE("select",{"id": this.f_getId("PRMT_PT_HIERARCHIES_"), "class":"clsSelectControl pv"},v_oContainer);
var v_firstOption = this["@columnName"] && this["@columnName"].length > 0 ? this["@columnName"]:this["@parameter"];
// draw select options
var v_choices = this.f_getChildByTagName( "selectHierarchyChoice" );
var v_selectedHierarchy = ((v_choices && v_choices.c && v_choices.c.length > 0)? v_choices.c[0] : null);
var v_options = this.f_getChildByTagName( "selectHierarchies" );
var v_optionEl;
// add the top two lines
v_optionEl = $CE("option", {}, v_oPickList);
v_optionEl.f_appendText( G_IsBidiEnabled && this["@contentTextDirection"] ? PRMT_BidiUtils.enforceBidiDirection(v_firstOption, this["@contentTextDirection"]) : v_firstOption );
v_optionEl = $CE("option", {}, v_oPickList);
v_optionEl.f_appendText("--------------------------------------------");
if ( v_options && v_options.c && v_options.c.length > 0)
{
for (var i = 0; i < v_options.c.length; i++ )
{
var v_option = v_options.c[i];
var v_optionAttr = {"value": v_option[K_PRMT_sATTR_USE_VALUE], "dv":v_option[K_PRMT_sATTR_DISPLAY_VALUE]};
if (v_selectedHierarchy && v_option && v_option[K_PRMT_sATTR_USE_VALUE] == v_selectedHierarchy[K_PRMT_sATTR_USE_VALUE]) {
v_optionAttr["selected"] = "true"
}
v_optionEl = $CE("option", v_optionAttr, v_oPickList);
v_optionEl.f_appendText( (G_IsBidiEnabled && this["@contentTextDirection"] ? PRMT_BidiUtils.enforceBidiDirection(v_option[K_PRMT_sATTR_DISPLAY_VALUE], this["@contentTextDirection"]) : v_option[K_PRMT_sATTR_DISPLAY_VALUE]) );
}
}
return v_oContainer;
};
/**
* Draw the tree part of the control leveraging already existing Tree control
*/
cognos.Prompt.Control.PickTree.prototype.f_drawTree = function( v_el )
{
var v_oContainer = $CE("div", {"id": this.f_getId("PRMT_PT_TREE_BOX_")}, v_el);
var v_tbl = $CE( "table", {"border": K_PRMT_DEBUG_TABLEBORDER, "cellPadding":0, "cellSpacing":0, "role":K_PRMT_ARIA_ROLE_PRESENTATION}, v_oContainer );
var v_tbd = $CE( "tbody", {}, v_tbl );
var v_tr = $CE( "tr", {}, v_tbd );
this.f_cleanTreeArguments();
var v_oTree = new cognos.Prompt.Control.Tree( this.m_oTreeArguments );
v_oTree.f_drawLayout(v_tr);
this.m_oTree = v_oTree;
};
/**
* Clean the hierarchy list and choice from the tree arguments
*/
cognos.Prompt.Control.PickTree.prototype.f_cleanTreeArguments = function( ) {
// rm "selectHierarchies" and "selectHierarchyChoice", if selectOptions is missing or empty set canExpand to false;
var v_treeArguments = this.m_oTreeArguments;
if ( v_treeArguments.c && v_treeArguments.c.length )
{
for ( var i = 0, j = 0; i < v_treeArguments.c.length; i++ )
{
if ( v_treeArguments.c[i].n == "selectHierarchies" || v_treeArguments.c[i].n == "selectHierarchyChoice") {
v_treeArguments.c.splice(i,1);
i--;
}
}
}
};
/**
* Get the selected hierarchy from the hierarchy pick list
*/
cognos.Prompt.Control.PickTree.prototype.f_getPickListSelection = function()
{
var result = null;
var v_oPickList = this.m_oPickList;
if (v_oPickList.options && v_oPickList.options.length > 0) {
var v_oSelOption = v_oPickList.options[v_oPickList.selectedIndex];
if (v_oSelOption) {
result = v_oSelOption.getAttribute('value');
if (result === null)
{
result = v_oSelOption.value;
}
// for embedded IE 9 "feature"
if (!result && v_oSelOption.attributes && v_oSelOption.attributes['value']) {
result = v_oSelOption.attributes['value'].value;
}
}
}
return result;
};
/**
* Get the hierarchy options in XML format, like the example below:
* |