Exemplo n.º 1
0
        /// <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);
                    }
                }
            }
        }
Exemplo n.º 2
0
        /// <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);
                    }
                }
            }
        }