/// <summary> /// Handles the AfterSelect event of the BrowseTV control. /// </summary> private void BrowseTV_AfterSelect(object sender, TreeViewEventArgs e) { try { m_selectedNodeId = null; if (BrowseTV.SelectedNode == null) { if (m_AfterSelect != null) { m_AfterSelect(this, new EventArgs()); } return; } // get node to browse. ReferenceDescription reference = (ReferenceDescription)e.Node.Tag; NodeId nodeId = m_rootId; if (reference != null) { nodeId = (NodeId)reference.NodeId; } m_selectedNodeId = nodeId; if (AttributesControl != null) { AttributesControl.ReadAttributes(m_selectedNodeId, true); } // raise event. if (m_AfterSelect != null) { m_AfterSelect(this, new EventArgs()); } } catch (Exception exception) { ClientUtils.HandleException(this.Text, exception); } }
/// <summary> /// Changes the session used by the control. /// </summary> private void ChangeSession(Session session, bool refresh) { m_session = session; if (AttributesControl != null) { AttributesControl.ChangeSession(session); } BrowseTV.Nodes.Clear(); if (m_session != null) { INode node = m_session.NodeCache.Find(m_rootId); if (node != null) { TreeNode root = new TreeNode(node.ToString()); root.ImageIndex = ClientUtils.GetImageIndex(m_session, node.NodeClass, node.TypeDefinitionId, false); root.SelectedImageIndex = ClientUtils.GetImageIndex(m_session, node.NodeClass, node.TypeDefinitionId, true); ReferenceDescription reference = new ReferenceDescription(); reference.NodeId = node.NodeId; reference.NodeClass = node.NodeClass; reference.BrowseName = node.BrowseName; reference.DisplayName = node.DisplayName; reference.TypeDefinition = node.TypeDefinitionId; root.Tag = reference; root.Nodes.Add(new TreeNode()); BrowseTV.Nodes.Add(root); root.Expand(); BrowseTV.SelectedNode = root; } } }