private void updateSelectedNode(TreeNode currTreeViewNode) { if (currTreeViewNode == null) { return; } updateSelectedNode(currTreeViewNode.Parent); if (currTreeViewNode.Parent == null) // 루트 노드일 때 { _selectedNode = _hexView._doc.getRootNode(); } else { if (_selectedNode.Children != null) { _selectedNode = _selectedNode.Children[currTreeViewNode.Index]; } else { HexViewTreeNode newSelectedNode = new HexViewTreeNode(); newSelectedNode = new HexViewTreeNode(); newSelectedNode.Data = new NodeData(); newSelectedNode.Data.Type = _selectedNode.Data.Type.Children[currTreeViewNode.Index]; newSelectedNode.Data.Name = _selectedNode.Data.Name + "->" + newSelectedNode.Data.Type.Alias; _selectedNode = newSelectedNode; } } }
private void constructTreeView(TreeNode currTreeViewNode, HexViewTreeNode currHvNode) { if (currHvNode == null) { return; } if (currHvNode.Children != null) { foreach (HexViewTreeNode childHvNode in currHvNode.Children) { TreeNode childNode = currTreeViewNode.Nodes.Add(childHvNode.Data.Name); constructTreeView(childNode, childHvNode); } return; } if (currHvNode.Data.Type != null) { if (currHvNode.Data.Type.isBuiltInDataType() == false) { if (currHvNode.Data.Type.Children != null) { foreach (HexViewDataType childDataType in currHvNode.Data.Type.Children) { constructTreeViewDataType(currTreeViewNode, childDataType); } } } } }
public bool loadHexViewFromFile(string fileName) { _hexView = new HexView(); if (_hexView.OpenXml(fileName) == true) { treeView.Nodes.Clear(); HexViewTreeNode hvRootNode = _hexView._doc.getRootNode(); TreeNode treeViewRootNode = new TreeNode(hvRootNode.Data.Name); for (int i = 0; i < hvRootNode.Children.Count; ++i) { HexViewTreeNode childHvNode = hvRootNode.Children[i]; TreeNode childNode = treeViewRootNode.Nodes.Add(childHvNode.Data.Name); constructTreeView(childNode, childHvNode); } treeView.Nodes.Add(treeViewRootNode); return(true); } return(false); }