123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430 |
- /*
- IBM Confidential
- OCO Source Materials
- IBM Cognos Products: uipe
- (C) Copyright IBM Corp. 2014
- The source code for this program is not published or otherwise divested of its trade secrets, irrespective of what has been deposited with the U.S. Copyright Office.
- */
- function C_PropertyEditor( v_divPropertyGroup, v_nPropertyGroup, v_nObjects, v_nNamedSets )
- {
- this.m_doc = document;
-
- this.m_divPropertiesDiv = v_divPropertyGroup.appendChild( document.createElement( "div" ) );
- this.m_divPropertiesDiv.style.height = "226px";
- this.m_divPropertiesDiv.className = "clsTreeView";
- var v_sLabel = v_divPropertyGroup.getAttribute( "aria-label" );
- if ( v_sLabel )
- {
- this.m_divPropertiesDiv.setAttribute( "aria-label", v_sLabel );
- }
-
- this.m_divObjectsDiv = v_divPropertyGroup.appendChild( document.createElement( "div" ) );
- this.m_divObjectsDiv.style.width = "298px";
-
- var v_nTreeView = v_nPropertyGroup.ownerDocument.createElement( "treeView" );
- v_nTreeView.setAttribute( "showCheckboxes", "true" );
- this.m_oPropertyTreeView = new C_TreeView( this.m_divPropertiesDiv, v_nTreeView, this );
-
- this.m_nProertyGroup = v_nPropertyGroup;
- this.m_nObjects = v_nObjects;
- this.m_nNamedSets = v_nNamedSets;
-
- this.m_aObjectViews = {};
- this.m_aNamedSetViews = {};
- this.f_readProperties();
- this.m_oPropertyTreeView.F_SelectNode( v_nTreeView.selectSingleNode( "./treeNode" ), false, true );
- };
- C_PropertyEditor.prototype.f_readProperties = function()
- {
- var v_nProperties = this.m_nProertyGroup.selectNodes( ".//property" );
- var v_nPropTreeViewNode = this.m_oPropertyTreeView.F_GetTreeViewNode();
- var doc = v_nPropTreeViewNode.ownerDocument;
- for( var i = 0; i < v_nProperties.length; i++ )
- {
- var v_nProperty = v_nProperties.item( i );
- var v_nPropTreeNode = doc.createElement( "treeNode" );
- var v_nPropertyName = v_nProperty.getAttribute( "name" );
- v_nPropTreeNode.setAttribute( "value", v_nPropertyName );
- U_Utils.F_GetCopyLabel( v_nProperty, v_nPropTreeNode );
- v_nPropTreeViewNode.appendChild( v_nPropTreeNode );
-
- var v_nObjectsDiv = this.m_divObjectsDiv.appendChild( this.m_doc.createElement( "div" ) );
- v_nObjectsDiv.style.margin = "5px 0px 0px 0px";
- var v_tabObjectsTabboxTable = v_nObjectsDiv.appendChild( this.m_doc.createElement( "div" ) );
- var v_sObjectsTabName = v_nPropertyName + "_tabMain";
- var v_sObjectsTableHTML =
- "<table id='" + v_sObjectsTabName + "' HAL_tabOrientation='top'>" +
- "<tr>" +
- "<td HAL_ids='IDS_UIPE_PROPERTY_OBJECTS'></td>" +
- "<td HAL_ids='IDS_UIPE_PROPERTY_ADVANCED'></td>" +
- "</tr>" +
- "</table>";
-
- v_tabObjectsTabboxTable.innerHTML = v_sObjectsTableHTML;
- G_ResManager.F_ApplyResStrings( v_tabObjectsTabboxTable );
- var v_divObjectPanels = v_nObjectsDiv.appendChild( this.m_doc.createElement( "div" ) );
- v_divObjectPanels.setAttribute( "id", v_sObjectsTabName + "_Panels" );
- v_divObjectPanels.style.padding = "0px";
-
- var v_divNormalObjectTab = v_divObjectPanels.appendChild( this.m_doc.createElement( "div" ) );
- v_divNormalObjectTab.id = v_sObjectsTabName + "_Panel0";
- v_divNormalObjectTab.className = "clsListView";
- v_divNormalObjectTab.style.border = "medium none";
- v_divNormalObjectTab.style.height = "140px";
-
- var v_divAdvancedObjectTab = v_divObjectPanels.appendChild( this.m_doc.createElement( "div" ) );
- v_divAdvancedObjectTab.setAttribute( "id", v_sObjectsTabName + "_Panel1" );
- v_divAdvancedObjectTab.className = "clsTreeView";
- v_divAdvancedObjectTab.style.border = "medium none";
- v_divAdvancedObjectTab.style.height = "140px";
- var v_oObjectsTab = new C_Tab( v_sObjectsTabName );
- v_divNormalObjectTab.removeAttribute("role");
-
- //build object list view
- var v_oObjectListView = new C_ListView( v_divNormalObjectTab, null, this );
- v_oObjectListView.F_GetListViewNode().setAttribute("view", "checkbox");
- v_oObjectListView.F_GetListViewNode().setAttribute("propertyName", v_nPropertyName );
- var v_oObjectListItems = v_oObjectListView.F_GetListItemsNode();
-
- this.m_aObjectViews[v_nPropertyName] = v_oObjectListView;
- var v_nObjects = v_nProperty.selectNodes( ".//objectRef" );
-
- for( var j = 0; j < v_nObjects.length; j++ )
- {
- var v_nObject = v_nObjects.item( j );
- var v_nObjectListItem = doc.createElement( "listItem" );
- var v_sObjectName = v_nObject.getAttribute( "name" );
- v_nObjectListItem.setAttribute( "value", v_sObjectName );
-
- var v_nObjectTemplate = this.m_nObjects.selectSingleNode( ".//object[@name='" + v_sObjectName + "']" )
- U_Utils.F_GetCopyLabel( v_nObjectTemplate, v_nObjectListItem );
- v_nObjectListItem.setAttribute( "value", v_sObjectName );
- v_oObjectListItems.appendChild( v_nObjectListItem );
- }
- v_oObjectListView.F_Draw();
-
- //build advanced tree view
- var v_nTreeViewNode = doc.createElement( "treeView" );
- v_nTreeViewNode.setAttribute( "showCheckboxes", "true" );
- v_nTreeViewNode.setAttribute( "propertyName", v_nPropertyName );
- var v_oAdvancedTreeView = new C_TreeView( v_divAdvancedObjectTab, v_nTreeViewNode, this );
- var v_oNamedSets = v_nProperty.selectNodes( ".//namedSetRef" );
- for ( var k = 0; k < v_oNamedSets.length; k++ )
- {
- this.f_appendNamedSetNode( v_nTreeViewNode, v_oNamedSets.item( k ).getAttribute( "name" ) );
- }
- v_oAdvancedTreeView.F_Draw();
- this.m_aNamedSetViews[v_nPropertyName] = v_oAdvancedTreeView;
- }
- this.m_oObjectsDeck = new C_Deck( this.m_divObjectsDiv );
- this.f_drawPropertyTree();
- };
- C_PropertyEditor.prototype.f_hideAllExpandImages = function()
- {
- //Hide all the expand images.
- var v_nExpandImages = this.m_divPropertiesDiv.getElementsByTagName( "IMG" );
- for( var k = 0; k < v_nExpandImages.length; k++ )
- {
- if( v_nExpandImages.item( k ).getAttribute("alt") == "+" )
- {
- v_nExpandImages.item( k ).style.display = "none";
- }
- }
- };
- C_PropertyEditor.prototype.f_appendNamedSetNode = function( v_nParentNode, v_nNamedSetName )
- {
- var v_doc = this.m_nProertyGroup.ownerDocument;
- var v_nNamedSetNode = this.m_nNamedSets.selectSingleNode( ".//namedSet[@name='" + v_nNamedSetName + "']" );
- var v_nNameSetTreeNode = v_doc.createElement( "treeNode" );
- v_nNameSetTreeNode.setAttribute( "value", v_nNamedSetNode.getAttribute( "name" ) );
- U_Utils.F_GetCopyLabel( v_nNamedSetNode, v_nNameSetTreeNode );
- v_nNameSetTreeNode.setAttribute( "expandable", "true" );
- if( v_nParentNode.nodeName != "treeView" )
- {
- v_nNameSetTreeNode.setAttribute( "hideCheckbox", "true" );
- }
- v_nParentNode.appendChild( v_nNameSetTreeNode );
- var v_oNamedSetChildren = v_nNamedSetNode.selectNodes( "./*" );
- for( var i = 0; i < v_oNamedSetChildren.length; i++ )
- {
- var v_nChild = v_oNamedSetChildren.item( i );
- if( v_nChild.nodeName == "objectRef" )
- {
- var v_nChildObject = this.m_nObjects.selectSingleNode( ".//object[@name='" + v_nChild.getAttribute( "name" ) + "']" );
- var v_nChildObjectTreeNode = v_doc.createElement( "treeNode" );
- v_nChildObjectTreeNode.setAttribute( "value", v_nChildObject.getAttribute( "name" ) );
- v_nChildObjectTreeNode.setAttribute( "hideCheckbox", "true" );
- U_Utils.F_GetCopyLabel( v_nChildObject, v_nChildObjectTreeNode );
- v_nNameSetTreeNode.appendChild( v_nChildObjectTreeNode );
- }
- else
- {
- this.f_appendNamedSetNode( v_nNameSetTreeNode, v_nChild.getAttribute( "name" ) );
- }
- }
- };
- C_PropertyEditor.prototype.F_GetPropertyTreeView = function()
- {
- return this.m_oPropertyTreeView;
- };
- C_PropertyEditor.prototype.F_TreeView_OnNodeClick = function( v_oTreeView, v_nTreeNode, v_iMouseButton )
- {
- switch( v_oTreeView )
- {
- case this.m_oPropertyTreeView :
- var v_sPropName = v_nTreeNode.getAttribute( "value" );
- var v_iIndex = 0;
- for ( var o in this.m_aObjectViews )
- {
- if( o == v_sPropName )
- {
- break;
- }
- v_iIndex++;
- }
- this.m_oObjectsDeck.F_SetIndex( v_iIndex );
- }
- };
- C_PropertyEditor.prototype.F_TreeView_OnNodeCheck = function( v_oTreeView, v_nTreeNode )
- {
-
- var v_sCheckStatus = v_nTreeNode.getAttribute( "checked" ) == "true" ? "false" : "true";
- switch( v_oTreeView )
- {
- case this.m_oPropertyTreeView :
- var v_sPropertyName = v_nTreeNode.getAttribute( "value" );
- if( v_sCheckStatus == "true" )
- {
- this.F_SetObjectsChecked( v_sPropertyName, this.F_GetUncheckedObjectNames( v_sPropertyName ), true );
- this.F_SetNamedSetsChecked( v_sPropertyName, this.F_GetUncheckedNamedSetNames( v_sPropertyName ), true );
- }
- else
- {
- this.F_SetObjectsChecked( v_sPropertyName, this.F_GetCheckedObjectNames( v_sPropertyName ), true, true );
- this.F_SetNamedSetsChecked( v_sPropertyName, this.F_GetCheckedNamedSetNames( v_sPropertyName ), true, true );
- }
- this.f_highlightPropertyNodeByCheck( v_oTreeView, v_nTreeNode, v_sCheckStatus );
- break;
- default :
- var v_bHighlight = Boolean( v_sCheckStatus == "true" ) != Boolean( v_nTreeNode.getAttribute( "oriChecked" ) );
- G_UIPE.F_HighlightTreeNode( v_oTreeView, v_nTreeNode, v_bHighlight );
- v_nTreeNode.setAttribute( "checked", v_sCheckStatus );
- v_oTreeView.F_UpdateNode( v_nTreeNode );
- var v_sPropertyName = v_oTreeView.F_GetTreeViewNode().getAttribute( "propertyName" );
- var v_nPropertyNode = this.m_oPropertyTreeView.F_GetTreeViewNode().selectSingleNode( ".//treeNode[@value='" + v_sPropertyName + "']" );
-
- this.f_updatePropertyByClick( v_sPropertyName, v_nPropertyNode, v_sCheckStatus );
- this.f_highlightPropertyNodeByCheck( this.m_oPropertyTreeView, v_nPropertyNode );
- return false;
- }
- };
- C_PropertyEditor.prototype.F_ListView_OnCheckboxClick = function( v_oListView, v_nListItem )
- {
- G_UIPE.F_HighlightListItem( v_oListView, v_nListItem );
- var v_sPropertyName = v_oListView.F_GetListViewNode().getAttribute( "propertyName" );
- var v_nPropertyNode = this.m_oPropertyTreeView.F_GetTreeViewNode().selectSingleNode( ".//treeNode[@value='" + v_sPropertyName + "']" );
- this.f_updatePropertyByClick( v_sPropertyName, v_nPropertyNode, v_nListItem.getAttribute( "checked" ) );
- this.f_highlightPropertyNodeByCheck( this.m_oPropertyTreeView, v_nPropertyNode );
- };
- C_PropertyEditor.prototype.f_updatePropertyByClick = function( v_sPropertyName, v_nPropertyNode, v_sCheckStatus )
- {
- if( v_sCheckStatus == "false" )
- {
- if( this.F_GetCheckedObjectNames( v_sPropertyName ).length == 0 &&
- this.F_GetCheckedNamedSetNames( v_sPropertyName ).length == 0 )
- {
- v_nPropertyNode.setAttribute( "checked", "false" );
- }
- }
- else
- {
- v_nPropertyNode.setAttribute( "checked", "true" );
- }
-
- this.m_oPropertyTreeView.F_UpdateNode( v_nPropertyNode );
- };
- C_PropertyEditor.prototype.f_highlightPropertyNodeByCheck = function( v_oTreeView, v_nTreeNode, v_sCheckStatus )
- {
- if( !v_sCheckStatus )
- {
- v_sCheckStatus = v_nTreeNode.getAttribute( "checked" );
- }
- var v_bHighlight = Boolean( v_sCheckStatus == "true" ) != Boolean( v_nTreeNode.getAttribute( "oriChecked" ) );
- if( !v_bHighlight )
- {
- // check all the objects and namedsets.
- var v_sPropertyName = v_nTreeNode.getAttribute( "value" );
- var v_oObjectsListView = this.m_aObjectViews[v_sPropertyName];
- v_bHighlight = Boolean( v_oObjectsListView.F_GetListViewNode().selectSingleNode( ".//listItem[@highlight]" ) );
- if( !v_bHighlight )
- {
- var v_oNamedSetView = this.m_aNamedSetViews[v_sPropertyName];
- v_bHighlight = Boolean( v_oNamedSetView.F_GetTreeViewNode().selectSingleNode( ".//treeNode[@highlight]" ) );
- }
- }
- this.f_highlightPropertyNode( v_oTreeView, v_nTreeNode, v_bHighlight );
- };
- C_PropertyEditor.prototype.f_highlightPropertyNode = function( v_oTreeView, v_nTreeNode, v_bHighlight )
- {
- G_UIPE.F_HighlightTreeNode( v_oTreeView, v_nTreeNode, v_bHighlight );
- if( v_bHighlight )
- {
- G_UIPE.F_HighlightSelectedTreeNode( true );
- }
- else
- {
- G_UIPE.F_HighlightSelectedTreeNode( v_oTreeView.F_GetTreeViewNode().selectSingleNode( ".//treeNode[@highlight]" ) );
- }
- };
- C_PropertyEditor.prototype.F_CheckAll = function()
- {
- this.f_setCheckboxStatus( "true" );
- };
- C_PropertyEditor.prototype.F_UncheckAll = function()
- {
- this.f_setCheckboxStatus( "false" );
- };
- C_PropertyEditor.prototype.f_setCheckboxStatus = function( v_sStatus )
- {
- var v_oTreeNodes = this.f_getPropertyNodes();
- for( var i = 0; i < v_oTreeNodes.length; i++ )
- {
- v_oTreeNodes.item( i ).setAttribute( "checked", v_sStatus );
- }
- this.f_drawPropertyTree();
- for( var i = 0; i < v_oTreeNodes.length; i++ )
- {
- this.f_highlightPropertyNodeByCheck( this.m_oPropertyTreeView, v_oTreeNodes.item( i ) );
- }
- };
- C_PropertyEditor.prototype.f_setNodesChecked = function( v_oNodes, v_aNames, v_bOri, v_bUnchecked )
- {
- if( !v_aNames || v_aNames.length == 0)
- {
- return;
- }
- for( var i = 0; i < v_oNodes.length; i++ )
- {
- var v_nNode = v_oNodes.item( i );
- if( v_aNames.indexOf( v_nNode.getAttribute( "value" ) ) != -1 )
- {
- var v_sChecked = v_bUnchecked ? "false" : "true";
- v_nNode.setAttribute( "checked", v_sChecked );
- if( v_bOri )
- {
- v_nNode.setAttribute( "oriChecked", "true" );
- }
- }
- }
- };
- C_PropertyEditor.prototype.F_SetPropertiesChecked = function( v_aNames )
- {
- this.f_setNodesChecked( this.f_getPropertyNodes(), v_aNames, true );
- this.f_drawPropertyTree();
- };
- C_PropertyEditor.prototype.F_SetObjectsChecked = function( v_sPropertyName, v_aNames, v_bNotOri, v_bUnchecked )
- {
- var v_nObjectView = this.m_aObjectViews[v_sPropertyName];
- var v_oAllListItems = v_nObjectView.F_GetListItems();
- this.f_setNodesChecked( v_oAllListItems, v_aNames, !v_bNotOri, v_bUnchecked, "Object" );
- v_nObjectView.F_Draw();
- for( var i = 0; i < v_oAllListItems.length; i++ )
- {
- G_UIPE.F_HighlightListItem( v_nObjectView, v_oAllListItems.item( i ) );
- }
- };
- C_PropertyEditor.prototype.F_SetNamedSetsChecked = function( v_sPropertyName, v_aNames, v_bNotOri, v_bUnchecked )
- {
- var v_nNamedSetView = this.m_aNamedSetViews[v_sPropertyName];
- var v_oAllNamedSetNodes = v_nNamedSetView.F_GetTreeViewNode().selectNodes( "./*" );
- this.f_setNodesChecked( v_oAllNamedSetNodes, v_aNames, !v_bNotOri, v_bUnchecked, "NamedSet", v_nNamedSetView );
- v_nNamedSetView.F_Draw();
- for( var i = 0; i < v_oAllNamedSetNodes.length; i++ )
- {
- var v_nNamedSetNode = v_oAllNamedSetNodes.item( i );
- var v_sCheckStatus = v_nNamedSetNode.getAttribute( "checked" ) ;
- var v_bHighlight = Boolean( v_sCheckStatus == "true" ) != Boolean( v_nNamedSetNode.getAttribute( "oriChecked" ) );
- G_UIPE.F_HighlightTreeNode( v_nNamedSetView, v_nNamedSetNode, v_bHighlight );
- }
- };
- C_PropertyEditor.prototype.f_drawPropertyTree = function()
- {
- this.m_oPropertyTreeView.F_Draw();
- this.f_hideAllExpandImages();
- }
- C_PropertyEditor.prototype.f_getPropertyNodes = function()
- {
- return this.m_oPropertyTreeView.F_GetTreeViewNode().selectNodes( "./treeNode" );
- };
- C_PropertyEditor.prototype.F_GetPropertyNames = function()
- {
- return U_XML.F_AppendValues( null, this.m_oPropertyTreeView.F_GetTreeViewNode().selectNodes( "./treeNode/@value" ) );
- };
- C_PropertyEditor.prototype.F_GetCheckedPropertyNames = function()
- {
- return this.f_getChildNamesByCheckStatus( this.m_oPropertyTreeView.F_GetTreeViewNode(), true);
- };
- C_PropertyEditor.prototype.F_GetUncheckedPropertyNames = function()
- {
- return this.f_getChildNamesByCheckStatus( this.m_oPropertyTreeView.F_GetTreeViewNode(), false);
- };
- C_PropertyEditor.prototype.F_GetCheckedObjectNames = function( v_sPropertyName )
- {
- var v_nObjectView = this.m_aObjectViews[v_sPropertyName];
- return this.f_getChildNamesByCheckStatus( v_nObjectView.F_GetListItemsNode(), true );
- };
- C_PropertyEditor.prototype.F_GetUncheckedObjectNames = function( v_sPropertyName )
- {
- var v_nObjectView = this.m_aObjectViews[v_sPropertyName];
- return this.f_getChildNamesByCheckStatus( v_nObjectView.F_GetListItemsNode(), false );
- };
- C_PropertyEditor.prototype.F_GetCheckedNamedSetNames = function( v_sPropertyName )
- {
- var v_nNamedSetView = this.m_aNamedSetViews[v_sPropertyName];
- return this.f_getChildNamesByCheckStatus( v_nNamedSetView.F_GetTreeViewNode(), true );
- };
- C_PropertyEditor.prototype.F_GetUncheckedNamedSetNames = function( v_sPropertyName )
- {
- var v_nNamedSetView = this.m_aNamedSetViews[v_sPropertyName];
- return this.f_getChildNamesByCheckStatus( v_nNamedSetView.F_GetTreeViewNode(), false );
- };
- C_PropertyEditor.prototype.f_getChildNamesByCheckStatus = function( v_nParentNode, v_bChecked )
- {
- var v_sPath = v_bChecked ? "./*[@checked='true']/@value" : "./*[not(@checked) or @checked='false']/@value";
- return U_XML.F_AppendValues( null, v_nParentNode.selectNodes( v_sPath ) );
- };
|