public IGuiControlBuilder CreateBuilder(IGuiControl control) { IGuiControlBuilder builder = null; switch (control.GetType().Name) { case "TextBox": builder = new ConsoleTextBoxBuilder(); break; case "Combobox": builder = new ConsoleComboboxBuilder(); break; case "Groupbox": builder = new ConsoleGroupboxBuilder(); break; case "Panel": builder = new ConsolePanelBuilder(); break; case "TabControl": builder = new ConsoleTabControlBuilder(); break; case "Table": builder = new ConsoleTableBuilder(); break; case "TabPage": builder = new ConsoleTabpageBuilder(); break; case "DateField": builder = new ConsoleDateFieldBuilder(); break; } if (builder != null) { return(builder); } throw new Exception(); }
public static void CreateGUI(IContainer container, IGuiBuilder builder) { foreach (var containerChildControl in container.ChildControls) { IGuiControlBuilder componentBuilder = builder.CreateBuilder(containerChildControl); if (containerChildControl is IContainer kon) { componentBuilder.StartTag(kon); CreateGUI(kon, builder); componentBuilder.EndTag(kon); } else if (containerChildControl is IInputField field) { componentBuilder.CreateComponentRepresentation(field); } } }