public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, IServiceProvider provider, object value) { IDataFrameFilterFactory[] filters = value as IDataFrameFilterFactory[]; if ((filters != null) && (provider != null)) { IWindowsFormsEditorService service = provider.GetService(typeof(IWindowsFormsEditorService)) as IWindowsFormsEditorService; if (service != null) { Dictionary <string, Func <object> > typeMap = new Dictionary <string, Func <object> >(); typeMap["String"] = () => new StringDataFrameFilterFactory(); typeMap["Binary"] = () => new BinaryDataFrameFilterFactory(); typeMap["Regular Exp"] = () => new RegexDataFrameFilterFactory(); typeMap["Select Count"] = () => new NodeCountDataFrameFilterFactory(); using (ObjectCollectionForm frm = new ObjectCollectionForm(filters, typeMap)) { frm.Text = "DataFrame Filter Editor"; if (service.ShowDialog(frm) == DialogResult.OK) { value = frm.Objects.Cast <DataFrameFilterFactory>().ToArray(); } } } } return(value); }
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, IServiceProvider provider, object value) { SequenceChoice[] choices = value as SequenceChoice[]; SequenceChoiceMemberEntry entry = (SequenceChoiceMemberEntry)ParserUtils.GetCompatibleType(typeof(SequenceChoiceMemberEntry), context.Instance); if ((choices != null) && (provider != null) && (entry != null)) { IWindowsFormsEditorService service = provider.GetService(typeof(IWindowsFormsEditorService)) as IWindowsFormsEditorService; if (service != null) { Dictionary <string, Func <object> > dict = new Dictionary <string, Func <object> >(); dict.Add("New Choice", () => new SequenceChoice(entry)); using (ObjectCollectionForm frm = new ObjectCollectionForm(choices, dict)) { if (service.ShowDialog(frm) == DialogResult.OK) { value = frm.Objects.Cast <SequenceChoice>().ToArray(); } } } } return(value); }