private TreeNode getNodeFromElement(HsfElement element, TreeNode targetNode)
        {
            // Searches given node and (recursively) children for matching element
            try
            {
                if (((PicassoSubform)targetNode.Tag).Element == element)
                {
                    return(targetNode);
                }
            }
            catch (InvalidCastException)
            {
                // Not a subform, or tag is null; check children anyways
            }
            catch (NullReferenceException)
            {
                // Looking at a node with no tag
            }

            // Check children
            TreeNodeCollection collection = targetNode.Nodes;

            foreach (TreeNode node in collection)
            {
                TreeNode result = getNodeFromElement(element, node);
                if (result != null)
                {
                    return(result);
                }
            }
            return(null);
        }
 private TreeNode getNodeFromElement(HsfElement element)
 {
     // Recursively searches all tree nodes for element in picasso subform tag
     foreach (TreeNode node in mainTreeView.Nodes)
     {
         TreeNode result = getNodeFromElement(element, node);
         if (result != null)
         {
             return(result);
         }
     }
     return(null);
 }
        private void xmlMenuItem_Click(object sender, EventArgs e)
        {
            // Serialize element and show in xml browser
            HsfElement currElement       = ((PicassoSubform)mainTreeView.SelectedNode.Tag).Element;
            string     serializedContent = currElement.ToXml();

            // Write content to xml cache
            FileStream   file = new FileStream(_xmlDumpLocation, FileMode.Create, FileAccess.Write);
            StreamWriter sw   = new StreamWriter(file);

            sw.Write(serializedContent);
            sw.Close();
            file.Close();

            // Navigate / refresh / show / focus
            _xmlBrowser.Url = _xmlDumpLocation;
            _xmlBrowser.Show();
            _xmlBrowser.Focus();
        }