/// <summary> /// Follows hierarchial references from the current node and updates the tree. /// </summary> private void Browse(TreeNode parent) { parent.Nodes.Clear(); ReferenceDescription start = parent.Tag as ReferenceDescription; ListOfBrowseDescription nodesToBrowse = new ListOfBrowseDescription(); BrowseDescription nodeToBrowse = new BrowseDescription(); nodeToBrowse.NodeId = new NodeId(start.NodeId); nodeToBrowse.BrowseDirection = BrowseDirection.Forward_0; nodeToBrowse.ReferenceTypeId = new NodeId(ReferenceTypes.HierarchicalReferences); nodeToBrowse.IncludeSubtypes = true; nodeToBrowse.ResultMask = (uint)DataTypes.EnumToMask(BrowseResultMask.All_63); nodeToBrowse.NodeClassMask = 0; nodesToBrowse.Add(nodeToBrowse); ListOfBrowseResult results; ListOfDiagnosticInfo diagnosticInfos; m_client.Browse( m_client.CreateRequestHeader(), null, 0, nodesToBrowse, out results, out diagnosticInfos); if (results != null && results.Count > 0) { BrowseResult result = results[0]; if (result.References != null) { foreach (ReferenceDescription reference in result.References) { TreeNode child = new TreeNode(reference.DisplayName.Text); child.Tag = reference; child.Nodes.Add(new TreeNode()); parent.Nodes.Add(child); } } } }
/// <summary> /// Follows hierarchial references from the current node and updates the tree. /// </summary> private void Browse(TreeNode parent) { parent.Nodes.Clear(); ReferenceDescription start = parent.Tag as ReferenceDescription; ListOfBrowseDescription nodesToBrowse = new ListOfBrowseDescription(); BrowseDescription nodeToBrowse = new BrowseDescription(); nodeToBrowse.NodeId = new NodeId(start.NodeId); nodeToBrowse.BrowseDirection = BrowseDirection.Forward_0; nodeToBrowse.ReferenceTypeId = new NodeId(ReferenceTypes.HierarchicalReferences); nodeToBrowse.IncludeSubtypes = true; nodeToBrowse.ResultMask = (uint)DataTypes.EnumToMask(BrowseResultMask.All_63); nodeToBrowse.NodeClassMask = 0; nodesToBrowse.Add(nodeToBrowse); ListOfBrowseResult results; ListOfDiagnosticInfo diagnosticInfos; m_client.Browse( m_client.CreateRequestHeader(), null, 0, nodesToBrowse, out results, out diagnosticInfos); if (results != null && results.Count > 0) { BrowseResult result = results[0]; if (result.References != null) { foreach (ReferenceDescription reference in result.References) { TreeNode child = new TreeNode(reference.DisplayName.Text); child.Tag = reference; child.Nodes.Add(new TreeNode()); parent.Nodes.Add(child); } } } }