33 using System.Windows.Forms;
44 readonly ListViewGroup listviewgroupAbstract;
45 readonly ListViewGroup listviewgroupElement;
46 readonly ListViewGroup listviewgroupBaseType;
47 readonly ListViewGroup listviewgroupTypeChain;
51 this.Font = SystemInformation.MenuFont;
52 InitializeComponent();
54 this.listviewgroupAbstract =
new ListViewGroup(
"Abstract",
System.Windows.Forms.HorizontalAlignment.Left);
55 this.listviewgroupElement =
new ListViewGroup(
"Element Properties",
System.Windows.Forms.HorizontalAlignment.Left);
56 this.listviewgroupBaseType =
new ListViewGroup(
"Element Base Type",
System.Windows.Forms.HorizontalAlignment.Left);
57 this.listviewgroupTypeChain =
new ListViewGroup(
"Element Type Chain",
System.Windows.Forms.HorizontalAlignment.Left);
58 this.listviewNodeDetails.Groups.AddRange(
new System.Windows.Forms.ListViewGroup[] {
59 listviewgroupAbstract,
61 listviewgroupBaseType,
62 listviewgroupTypeChain});
66 DirectoryInfo dirInfo =
new DirectoryInfo(Path.GetDirectoryName(Application.ExecutablePath));
69 dirInfo = dirInfo.Parent;
72 dirInfo = dirInfo.Parent;
75 dirInfo =
new DirectoryInfo(Path.Combine(dirInfo.FullName,
"Mibs"));
88 #region GUI Event Handler 90 private void toolbuttonOpenMib_Click(
object sender,
System.EventArgs e)
92 if (this.dialogOpenMib.ShowDialog() == DialogResult.OK)
94 OpenMib(this.dialogOpenMib.FileName);
98 private void treeMib_AfterSelect(
object sender, TreeViewEventArgs e)
100 listviewNodeDetails.Items.Clear();
107 listviewNodeDetails.Items.Add(
new ListViewItem(
new string[] {
"Abstract", mtn.
NodeType.ToString() }, this.listviewgroupAbstract));
109 listviewNodeDetails.Items.Add(
new ListViewItem(
new string[] {
"Module", (mtn.
Entity.
Module != null) ? mtn.
Entity.
Module.
Name :
"" }, this.listviewgroupElement));
110 listviewNodeDetails.Items.Add(
new ListViewItem(
new string[] {
"Type", mtn.
Entity.GetType().
Name }, this.listviewgroupElement));
111 listviewNodeDetails.Items.Add(
new ListViewItem(
new string[] {
"Name", mtn.
Entity.
Name }, this.listviewgroupElement));
112 listviewNodeDetails.Items.Add(
new ListViewItem(
new string[] {
"Description", mtn.
Entity.
Description }, this.listviewgroupElement));
113 listviewNodeDetails.Items.Add(
new ListViewItem(
new string[] {
"OID", mtn.
Entity.
Value.ToString() }, this.listviewgroupElement));
114 listviewNodeDetails.Items.Add(
new ListViewItem(
new string[] {
"Full OID", MibTypesResolver.ResolveOid(mtn.
Entity).GetOidString() }, this.listviewgroupElement));
117 listviewNodeDetails.Items.Add(
new ListViewItem(
new string[] {
"Access", (mtn.
Entity as ObjectType).Access.ToString() }, this.listviewgroupElement));
123 ShowTypeDetails(listviewNodeDetails, this.listviewgroupBaseType, tr.
BaseType);
134 private void OpenMib(
string file)
139 MibTypesResolver.ResolveTypes(md.
Modules[0]);
141 this.treeMib.Nodes.Clear();
142 this.listviewNodeDetails.Items.Clear();
147 AddNode(mibTreeNode, this.treeMib.Nodes);
149 foreach (TreeNode node
in this.treeMib.Nodes)
160 private void AddNode(
MibTreeNode mibNode, TreeNodeCollection parentNodes)
184 TreeNode newNode =
new TreeNode(mibNode.
Entity.
Name, imgIndex, imgIndex);
185 newNode.Tag = mibNode;
187 parentNodes.Add(newNode);
191 AddNode(child, newNode.Nodes);
197 ShowTypeDetails(lv, this.listviewgroupTypeChain, type);
202 lv.Items.Add(
new ListViewItem(
new string[] {
" >>>",
"" }, this.listviewgroupTypeChain));
207 private void ShowTypeDetails(ListView lv, ListViewGroup lvg,
ITypeAssignment type)
209 lv.Items.Add(
new ListViewItem(
new string[] {
"Module", (type.
Module != null) ? type.
Module.
Name :
"" }, lvg));
210 lv.Items.Add(
new ListViewItem(
new string[] {
"Type", type.GetType().
Name }, lvg));
211 lv.Items.Add(
new ListViewItem(
new string[] {
"Name", type.
Name }, lvg));
string Description
Gets the description.
List< MibTreeNode > ChildNodes
IList< IModule > Modules
MibModule containing in this document.
IModule Module
Containing module.
Builds up a tree from a single MIB
ITypeAssignment ReferredType