BioImager  5.0.0
A .NET microscopy imaging application based on Bio library. Supports various microscopes by using imported libraries & GUI automation. Supports XInput game controllers to move stage, take images, run ImageJ macros on images or Bio C# scripts.
Loading...
Searching...
No Matches
XMLView.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3using System.ComponentModel;
4using System.Data;
5using System.Drawing;
6using System.Linq;
7using System.Text;
8using System.Threading.Tasks;
9using System.Windows.Forms;
10using System.Xml;
11
12namespace BioImager
13{
14 /* It's a form that displays an XML tree */
15 public partial class XMLView : Form
16 {
17 XmlTreeDisplay tree = null;
18 public XMLView(string xml)
19 {
20 InitializeComponent();
21 tree = new XmlTreeDisplay(xml);
22 tree.Dock = DockStyle.Fill;
23 this.Controls.Add(tree);
24
25 }
26 }
27 public class XmlTreeDisplay : System.Windows.Forms.UserControl
28 {
29 private System.Windows.Forms.TreeView treeXml = new TreeView();
30
31 /* It's a constructor that takes a string as a parameter. It's a constructor because it has the
32 same name as the class. It's a constructor that takes a string as a parameter because it has
33 a string as a parameter. */
34 public XmlTreeDisplay(string xml)
35 {
36 treeXml.Nodes.Clear();
37 this.Controls.Add(treeXml);
38 // Load the XML Document
39 XmlDocument doc = new XmlDocument();
40 try
41 {
42 doc.LoadXml(xml);
43 //doc.Load("");
44 }
45 catch (Exception err)
46 {
47 MessageBox.Show(err.Message);
48 return;
49 }
50
51 ConvertXmlNodeToTreeNode(doc, treeXml.Nodes);
52 treeXml.Nodes[0].ExpandAll();
53 treeXml.Dock = DockStyle.Fill;
54 }
55
61 private void ConvertXmlNodeToTreeNode(XmlNode xmlNode,
62 TreeNodeCollection treeNodes)
63 {
64
65 TreeNode newTreeNode = treeNodes.Add(xmlNode.Name);
66
67 switch (xmlNode.NodeType)
68 {
69 case XmlNodeType.ProcessingInstruction:
70 case XmlNodeType.XmlDeclaration:
71 newTreeNode.Text = "<?" + xmlNode.Name + " " +
72 xmlNode.Value + "?>";
73 break;
74 case XmlNodeType.Element:
75 newTreeNode.Text = "<" + xmlNode.Name + ">";
76 break;
77 case XmlNodeType.Attribute:
78 newTreeNode.Text = "ATTRIBUTE: " + xmlNode.Name;
79 break;
80 case XmlNodeType.Text:
81 case XmlNodeType.CDATA:
82 newTreeNode.Text = xmlNode.Value;
83 break;
84 case XmlNodeType.Comment:
85 newTreeNode.Text = "<!--" + xmlNode.Value + "-->";
86 break;
87 }
88
89 if (xmlNode.Attributes != null)
90 {
91 foreach (XmlAttribute attribute in xmlNode.Attributes)
92 {
93 ConvertXmlNodeToTreeNode(attribute, newTreeNode.Nodes);
94 }
95 }
96 foreach (XmlNode childNode in xmlNode.ChildNodes)
97 {
98 ConvertXmlNodeToTreeNode(childNode, newTreeNode.Nodes);
99 }
100 }
101 }
102}
XMLView(string xml)
Definition XMLView.cs:18
XmlTreeDisplay(string xml)
Definition XMLView.cs:34