/// <summary> /// Adds the reference types to drop down box. /// </summary> private void AddReferenceTypes(ExpandedNodeId referenceTypeId, ReferenceTypeChoice supertype) { if (referenceTypeId == null) { throw new ApplicationException("referenceTypeId"); } try { // find reference. ReferenceTypeNode node = m_session.NodeCache.Find(referenceTypeId) as ReferenceTypeNode; if (node == null) { return; } // add reference to combobox. ReferenceTypeChoice choice = new ReferenceTypeChoice(); choice.ReferenceType = node; choice.SuperType = supertype; ReferenceTypesCB.Items.Add(choice); // recursively add subtypes. IList <INode> subtypes = m_session.NodeCache.FindReferences(node.NodeId, ReferenceTypeIds.HasSubtype, false, true); foreach (INode subtype in subtypes) { AddReferenceTypes(subtype.NodeId, choice); } } catch (Exception e) { Utils.Trace(e, "Ignoring unknown reference type."); return; } }
/// <summary> /// Adds the reference types to drop down box. /// </summary> private void AddReferenceTypes(ExpandedNodeId referenceTypeId, ReferenceTypeChoice supertype) { if (referenceTypeId == null) throw new ApplicationException("referenceTypeId"); try { // find reference. ReferenceTypeNode node = m_session.NodeCache.Find(referenceTypeId) as ReferenceTypeNode; if (node == null) { return; } // add reference to combobox. ReferenceTypeChoice choice = new ReferenceTypeChoice(); choice.ReferenceType = node; choice.SuperType = supertype; ReferenceTypesCB.Items.Add(choice); // recursively add subtypes. IList<INode> subtypes = m_session.NodeCache.FindReferences(node.NodeId, ReferenceTypeIds.HasSubtype, false, true); foreach (INode subtype in subtypes) { AddReferenceTypes(subtype.NodeId, choice); } } catch (Exception e) { Utils.Trace(e, "Ignoring unknown reference type."); return; } }