public static CollectInstanceDeclarationsForType ( Session session, NodeId typeId ) : List |
||
session | Session | |
typeId | NodeId | |
Результат | List |
/// <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; } }