public void GenerateAllGraphNodes() { OrgTreeNode root = PreareOrgTree(); TreeGraph graph = root.GenerateGraph(); OutputTreeGraph(graph); }
private static void OutputOrgTreehSizeRecursively(OrgTreeNode node) { OutputOrgTreeNodeSize(node); foreach (OrgTreeNode child in node.Children) { OutputOrgTreehSizeRecursively(child); } }
public void CalculateOrgTreeSize() { OrgTreeNode root = PreareOrgTree(); root.CalculateMaxWidth(); root.CalculateMaxLevel(); OutputOrgTreehSizeRecursively(root); }
private static void OutputOrgTreeNodeSize(OrgTreeNode node) { if (node is ITreeNodeSize) { Console.WriteLine("Name = {0}, MaxWidth = {1}, MaxLevel = {2} ", node.Name, node.MaxWidth, node.MaxLevel); } else { Console.WriteLine("Name = {0}, MaxWidth = {1}, MaxLevel = {2} ", node.Name, node.CalculateMaxWidth(), node.CalculateMaxLevel()); } }
private static OrgTreeNode PreareOrgTree() { OrgTreeNode root = new OrgTreeNode("集团"); OrgTreeNode aa = root.Children.Add(new OrgTreeNode("行政部")); aa.Children.Add(new OrgTreeNode("办公室")); OrgTreeNode finance = root.Children.Add(new OrgTreeNode("财务部")); OrgTreeNode accountant = finance.Children.Add(new OrgTreeNode("会计")); accountant.Children.Add(new OrgTreeNode("审核会计")); finance.Children.Add(new OrgTreeNode("出纳")); OrgTreeNode hr = root.Children.Add(new OrgTreeNode("人事部")); hr.Children.Add(new OrgTreeNode("入职专员")); hr.Children.Add(new OrgTreeNode("福利专员")); hr.Children.Add(new OrgTreeNode("薪酬专员")); return(root); }