Ejemplo n.º 1
0
        public void PrintNodes()
        {
            var tree = new LogicTree();

            var stringBuilder = new StringBuilder();

            stringBuilder.Append("digraph G {" + Environment.NewLine);

            foreach (var treeNode in tree.Nodes.Values)
            {
                var declaration     = string.Format("{0}" + "[shape=record,", treeNode.Name);
                var label           = " label=" + "\"";
                var header          = string.Format("{{" + "{0}|", treeNode.Name);
                var ownFactor       = string.Format("{{" + "Factor:|" + "{0}" + "}}", treeNode.OwnFactor.Value);
                var result          = string.Format("|" + "{{" + "Result:|" + "{0}" + "}}", treeNode.CompleteFactor.Value);
                var closingBrackets = "}\"" + "];";

                stringBuilder.Append("\t" + declaration + label + header + ownFactor + result + closingBrackets + Environment.NewLine);
            }

            foreach (var treeNode in tree.Nodes.Values)
            {
                foreach (var child in tree.GetChildren(treeNode))
                {
                    var connection = treeNode.Name + " -> " + child.Name;
                    stringBuilder.Append("\t" + connection + Environment.NewLine);
                }
            }

            stringBuilder.Append("}");

            WriteText(stringBuilder.ToString());
        }