public MacroControlBase2 CreateMacroControl(Tag tag) { Type type = Type.GetType(tag.ControlType) ?? Type.GetType("Roll20PowerCardMacroGenerator.Forms.CustomControls." + tag.ControlType); MacroControlBase2 control = null; if (type != null) { control = Activator.CreateInstance(type) as MacroControlBase2; if (control != null) { control.Init(tag); } else { throw new Exception(string.Format("Failed to create control '{0}'", tag.ControlType)); } } else { throw new Exception(string.Format("Failed to create control '{0}'", tag.ControlType)); } return(control); }
public void SavedTagsTest() { Tag t1 = new Tag() { TagValue = "TestTag1", ContentValue = "TestContent1", ControlType = "TextBoxControl" }; Tag t2 = new Tag() { TagValue = "TestTag2", ContentValue = "TestContent2", ControlType = "TextBoxControl" }; DefaultControlFactory dcf = new DefaultControlFactory(); MacroManager input = new MacroManager(); MacroControlBase2 control1 = dcf.CreateMacroControl(t1); MacroControlBase2 control2 = dcf.CreateMacroControl(t2); input.SavedTags.Add(control1.TagSettings); input.SavedTags.Add(control2.TagSettings); MacroManager.Save("test.xml", input); MacroManager output = MacroManager.Load("test.xml"); for (int i = 0; i < input.SavedTags.Count; i++) { Tag expected = input.SavedTags[i]; Tag actual = output.SavedTags[i]; TagHelper.CompareTag(expected, actual); } }
private void AddMacro(string tag, string content) { DefaultControlFactory f = new DefaultControlFactory(); Tag t = new Tag() { TagValue = tag, ContentValue = content, ControlType = "TextBoxControl" }; MacroControlBase2 control = f.CreateMacroControl(t); flowLayoutPanelMacros.Controls.Add(control); }
public void PopulateTest() { Tag t1 = new Tag() { TagValue = "TestTag1", ContentValue = "TestContent1", ControlType = "TextBoxControl" }; Tag t2 = new Tag() { TagValue = "TestTag2", ContentValue = "TestContent2", ControlType = "TextBoxControl" }; DefaultControlFactory dcf = new DefaultControlFactory(); MacroManager input = new MacroManager(); MacroControlBase2 control1 = dcf.CreateMacroControl(t1); MacroControlBase2 control2 = dcf.CreateMacroControl(t2); FlowLayoutPanel panel1 = new FlowLayoutPanel(); panel1.Controls.Add(control1); panel1.Controls.Add(control2); input.Populate(panel1); MacroManager.Save("test.xml", input); MacroManager output = MacroManager.Load("test.xml"); FlowLayoutPanel panel2 = new FlowLayoutPanel(); output.ExtractControls(panel2); for (int i = 0; i < panel2.Controls.Count; i++) { Tag expected = (panel1.Controls[i] as MacroControlBase2).TagSettings; Tag actual = (panel2.Controls[i] as MacroControlBase2).TagSettings; TagHelper.CompareTag(expected, actual); } }
public void InitControl(MacroControlBase2 control, Tag tag) { control.Init(tag); }