protected static ControlGenerator GetControlGenerator(TreeNode treeNode, MarkupLanguage markupLanguage) { var spaceIndex = treeNode.Text.IndexOf(' '); var type = spaceIndex == -1 ? treeNode.Text : treeNode.Text.Substring(0, spaceIndex); var generatorType = Type.GetType($"UserInterfaceGenerator.FileContentGenerators.{markupLanguage}.{type}Generator"); if (generatorType == null) { return(null); } var controlGenerator = (ControlGenerator)Activator.CreateInstance(generatorType); return(controlGenerator); }
protected MarkupNode(String name, MarkupNode?parent, Boolean isEncodingHeader, MarkupLanguage language) { Name = name; Children = new List <MarkupNode>(); _attributes = new Dictionary <String, String>(StringComparer.OrdinalIgnoreCase); Parent = parent; IsEncodingHeader = isEncodingHeader; Language = language; CanHaveChildren = true; parent?.Children.Add(this); }
//TODO: a variable to store an icon (like the twitter logo or something) public string ToString(MarkupLanguage markupLanguage) { switch (markupLanguage) { case MarkupLanguage.Markdown: return(Markdown); case MarkupLanguage.HTML: return(HTML); case MarkupLanguage.AsciiDoc: throw new NotImplementedException($"haven't coded the {MarkupLanguage.AsciiDoc} format yet!"); default: throw new ArgumentOutOfRangeException(nameof(markupLanguage), markupLanguage, null); } }