/**************************************************************************************************************************** Licensed Materials - Property of IBM BI and PM: QFW © Copyright IBM Corp. 2005, 2010 US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. *****************************************************************************************************************************/ function C_QanExecPlan_TreeView( oExecPlan ) { this.m_oExecPlan = oExecPlan; }; C_QanExecPlan_TreeView.prototype.F_Init = function( divContainer, divTempTreeNodeContainer ) { this.m_divContainer = divContainer; this.f_createTree( divContainer, divTempTreeNodeContainer ); this.m_oLogBoxView = G_QanApp.F_GetLogBoxView( this.m_oExecPlan.F_GetLogDoc().F_GetId() ); }; C_QanExecPlan_TreeView.prototype.f_createTree = function( divContainer, divTempTreeNodeContainer ) { this.m_oExecPlanTreeView = new G_QanApp.F_GetLoggingView().LogTree( -1, divContainer ); if (this.m_oExecPlanTreeView) { this.m_oExecPlanTreeView.config.nodeWidth = 60; this.m_oExecPlanTreeView.config.nodeHeight = 40; this.m_oExecPlanTreeView.config.levelMargin = 20; this.m_oExecPlanTreeView.config.siblingMargin = 10; this.m_oExecPlanTreeView.config.tempTreeContainer = divTempTreeNodeContainer; divTempTreeNodeContainer.parentElement.className = "planTree"; this.m_oExecPlanTreeView.config.nestedChildGroupXMargin = 10; this.m_oExecPlanTreeView.config.nestedChildGroupYMarginTop = 4; this.m_oExecPlanTreeView.config.nestedChildGroupYMarginBottom = 3; this.m_oExecPlanTreeView.config.bNestedInside = true; this.m_oExecPlanTreeView.config.bNestedUnder = false; } var v_aPlanRootNodes = this.m_oExecPlan.F_GetPlanRootNodes(); if( !v_aPlanRootNodes ) this.f_createTreeNodeBranch( null, -1, -1 ); else { for( var i = 0; i < v_aPlanRootNodes.length; ++i ) { this.f_createTreeNodeBranch( v_aPlanRootNodes[i], -1, -1 ); } } this.m_oExecPlanTreeView.container.onclick = this.f_queryPlan_onClick.F_CreateMethodCallback( this ); this.m_oExecPlanTreeView.UpdateTree(); var rootGroup = divContainer.childNodes[0]; divContainer.style.height = rootGroup.style.posHeight + 14; divContainer.style.width = "100%"; } C_QanExecPlan_TreeView.prototype.f_createTreeNode = function ( oPlanNode, iParentViewNodeId, iNestingParentViewNodeId ) { if(!oPlanNode) { var v_sBoxColor = "#003EFF"; m_oExecPlanTreeView = new C_QanExecPlan_TreeView(null); this.m_oExecPlanTreeView.add( 1, -1, "XQE", null, null, v_sBoxColor, "XQE Provider" ); return; } var v_iViewNodeId = oPlanNode.F_GetID(); var v_sName = oPlanNode.F_GetName(); if( !v_sName ) v_sName = ""; if( !iNestingParentViewNodeId || iNestingParentViewNodeId < 0 ) { var v_sBoxColor = ( !oPlanNode.F_GetNestedRootNodes() ) ? "#FCFFD3": null; this.m_oExecPlanTreeView.add( v_iViewNodeId, iParentViewNodeId, v_sName, null, null, v_sBoxColor, oPlanNode.F_GetProvider() ); } else { this.m_oExecPlanTreeView.addNested( v_iViewNodeId, iNestingParentViewNodeId, v_sName, null, null, "#FCFFD3", oPlanNode.F_GetProvider() ); } return v_iViewNodeId; } C_QanExecPlan_TreeView.prototype.f_createTreeNodeBranch = function ( oPlanNode, iParentViewNodeId, iNestingParentViewNodeId ) { var v_iViewNodeId = this.f_createTreeNode( oPlanNode, iParentViewNodeId, iNestingParentViewNodeId ); if (!oPlanNode) return; var v_aChildNodes = oPlanNode.F_GetChildNodes(); var i = 0; for( ; i < v_aChildNodes.length; ++i ) { this.f_createTreeNodeBranch( v_aChildNodes[i], v_iViewNodeId ); } var v_aNestedRootNodes = oPlanNode.F_GetNestedRootNodes(); if( v_aNestedRootNodes ) { for( i = 0; i < v_aNestedRootNodes.length; ++i ) { this.f_createTreeNodeBranch( v_aNestedRootNodes[i], null, v_iViewNodeId ); } } } C_QanExecPlan_TreeView.prototype.F_Show = function() { }; C_QanExecPlan_TreeView.prototype.f_getTreeNodeBox = function( elBoxContentNode ) { for( ; elBoxContentNode && elBoxContentNode.tagName != "roundrect"; elBoxContentNode = elBoxContentNode.parentElement ); return elBoxContentNode; } C_QanExecPlan_TreeView.prototype.f_getSelectedNodeColor = function() { return "#DDFFAA"; } C_QanExecPlan_TreeView.prototype.f_queryPlan_onClick = function() { var v_nTreeNodeBox = this.f_getTreeNodeBox( G_QanApp.F_GetLoggingView().event.srcElement ); if( !v_nTreeNodeBox ) return; if( this.m_nActiveTreeNodeBox == v_nTreeNodeBox ) return; var v_oPlanNode = this.m_oExecPlan.F_GetPlanNodeByID( v_nTreeNodeBox.id ); v_nTreeNodeBox.prevFillColorValue = v_nTreeNodeBox.fillColor.value; v_nTreeNodeBox.fillColor = this.f_getSelectedNodeColor(); var v_oPropPane = this.m_oLogBoxView.F_GetExecPlanPropertyPane(); v_oPropPane.F_SetProperties4Node( v_oPlanNode ); if( this.m_nActiveTreeNodeBox ) this.m_nActiveTreeNodeBox.fillColor = this.m_nActiveTreeNodeBox.prevFillColorValue; this.m_nActiveTreeNodeBox = v_nTreeNodeBox; }