CollectInstanceDeclarationsForType() public static méthode

Collects the instance declarations for a type.
public static CollectInstanceDeclarationsForType ( Session session, NodeId typeId ) : List
session Session
typeId NodeId
Résultat List
Exemple #1
0
        /// <summary>
        /// Collects the instance declarations for the selected types.
        /// </summary>
        private NodeId CollectInstanceDeclarations(List <InstanceDeclaration> declarations)
        {
            List <NodeId> typeIds = new List <NodeId>();

            // get list of selected types.
            NodeId baseTypeId = CollectTypeIds(BrowseCTRL.BrowseTV.Nodes[0], typeIds);

            // merge declarations from the selected types.
            foreach (NodeId typeId in typeIds)
            {
                List <InstanceDeclaration> declarations2 =
                    ClientUtils.CollectInstanceDeclarationsForType(m_session, typeId);

                for (int ii = 0; ii < declarations2.Count; ii++)
                {
                    bool found = false;

                    for (int jj = 0; jj < declarations.Count; jj++)
                    {
                        if (declarations[jj].BrowsePathDisplayText == declarations2[ii].BrowsePathDisplayText)
                        {
                            found = true;
                            break;
                        }
                    }

                    if (!found)
                    {
                        declarations.Add(declarations2[ii]);
                    }
                }
            }

            return(baseTypeId);
        }
        /// <summary>
        /// Displays the components of the type in the control.
        /// </summary>
        public void ShowType(NodeId typeId)
        {
            if (NodeId.IsNull(typeId))
            {
                m_dataset.Tables[0].Rows.Clear();
                return;
            }

            m_declarations = ClientUtils.CollectInstanceDeclarationsForType(m_session, typeId, false);

            // update existing rows.
            for (int ii = 0; ii < m_declarations.Count && ii < m_dataset.Tables[0].Rows.Count; ii++)
            {
                if (m_declarations[ii].NodeClass == NodeClass.Method)
                {
                    continue;
                }

                UpdateRow(m_dataset.Tables[0].Rows[ii], m_declarations[ii]);
            }

            // add new rows.
            for (int ii = m_dataset.Tables[0].Rows.Count; ii < m_declarations.Count; ii++)
            {
                if (m_declarations[ii].NodeClass == NodeClass.Method)
                {
                    continue;
                }

                DataRow row = m_dataset.Tables[0].NewRow();
                UpdateRow(row, m_declarations[ii]);
                m_dataset.Tables[0].Rows.Add(row);
            }

            // delete unused rows.
            for (int ii = m_declarations.Count; ii < m_dataset.Tables[0].Rows.Count; ii++)
            {
                m_dataset.Tables[0].Rows[ii].Delete();
            }

            // deselect all rows.
            foreach (DataGridViewRow row in ResultsDV.Rows)
            {
                row.Selected = false;
            }
        }