예제 #1
0
    public IPluginForm InfoToForm(PluginFormInfo info)
    {
        var form = info.Form;

        foreach (PluginFormOptionItem item in info.Groups.SelectMany(i => i.Items).Concat(info.UngroupedItems).OfType <PluginFormOptionItem>())
        {
            switch (item)
            {
            case BoolPluginFormItem i:
                item.Member.SetValue(form, i.Value);
                break;

            case IntPluginFormItem i:
                item.Member.SetValue(form, i.Value);
                break;

            case StringPluginFormItem i:
                item.Member.SetValue(form, i.Value);
                break;

            case CollectionPluginFormItem i:
                item.Member.SetValue(form, i.Value);
                break;
            }
        }
        return(form);
    }
예제 #2
0
    public bool RequestOptions(IPluginForm optionForm)
    {
        PluginFormInfo info = _pluginFormLoader.FormToInfo(optionForm);

        var pluginDialog = new PluginDialog
        {
            DataContext = info,
            Owner       = Application.Current.MainWindow,
        };
        var result = pluginDialog.ShowDialog() == true;

        _pluginFormLoader.InfoToForm(info);
        return(result);
    }
예제 #3
0
    public FormToInfoTests()
    {
        IPluginFormLoader formLoader = new PluginFormLoader();

        _loadedInfo = formLoader.FormToInfo(new TestPluginForm());
    }
예제 #4
0
 public InfoToFormTests()
 {
     _formLoader = new PluginFormLoader();
     _form       = new TestPluginForm();
     _loadedInfo = _formLoader.FormToInfo(_form);
 }