Exemplo n.º 1
0
        internal static void Add(this IDictionary <string, object> dictionary, ExtAttribute attribute)
        {
            var value = attribute.Value;

            if (attribute is ExtActionAttribute)
            {
                if (dictionary.ContainsKey(attribute.Name))
                {
                    (dictionary[attribute.Name] as List <object>)?.Add(attribute.Value);
                    return;
                }
                value = new List <object> {
                    attribute.Value
                };
            }
            dictionary.Add(attribute.Name, value);
        }
Exemplo n.º 2
0
        internal static void Add(this IDictionary <string, IOpenApiExtension> dictionary, ExtAttribute attribute)
        {
            var value = attribute.Value;

            if (attribute is ExtActionAttribute)
            {
                if (dictionary.ContainsKey(attribute.Name))
                {
                    (dictionary[attribute.Name] as OpenApiArray)?.Add(attribute.Value);
                    return;
                }
                value = new OpenApiArray {
                    attribute.Value
                };
            }
            dictionary.Add(attribute.Name, value);
        }
Exemplo n.º 3
0
        private static void BuildControl(Form form, PropertyInfo property, TheSettings theSettings)
        {
            Control control = null;

            object[] attributes = property.GetCustomAttributes(false);

            MusicPlugin.Code.Attributes.DescriptionAttribute descriptionAttribute = attributes.Select(x => x as MusicPlugin.Code.Attributes.DescriptionAttribute).Where(i => i != null).First();;
            ControlAttribute controlAttribute = attributes.Select(x => x as ControlAttribute).Where(i => i != null).First();
            HiddenAttribute  hiddenAttribute  = attributes.Select(x => x as HiddenAttribute).Where(i => i != null).First();
            GroupAttribute   groupAttribute   = attributes.Select(x => x as GroupAttribute).Where(i => i != null).First();

            if (hiddenAttribute != null)
            {
                if (hiddenAttribute.Hidden)
                {
                    return;
                }
            }

            GroupBox         groupBox         = null;
            TableLayoutPanel tableLayoutPanel = null;

            if (controlAttribute != null)
            {
                if (form.Controls[groupAttribute.Group + "GroupBoxPanel"] != null)
                {
                    groupBox         = (GroupBox)form.Controls[groupAttribute.Group + "GroupBoxPanel"].Controls[groupAttribute.Group + "GroupBox"];
                    tableLayoutPanel = (TableLayoutPanel)groupBox.Controls[0];
                }
                else
                {
                    Panel panel = new Panel()
                    {
                        Padding = new Padding(0, 5, 0, 5), Name = groupAttribute.Group + "GroupBoxPanel", AutoSize = true, Dock = DockStyle.Top
                    };
                    groupBox = new GroupBox()
                    {
                        FlatStyle = FlatStyle.Flat, Text = groupAttribute.Group, Name = groupAttribute.Group + "GroupBox", AutoSize = true, Dock = DockStyle.Fill
                    };
                    panel.Controls.Add(groupBox);
                    tableLayoutPanel = new TableLayoutPanel()
                    {
                        ColumnCount = 2, Dock = DockStyle.Fill, AutoSize = true
                    };
                    tableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent)
                    {
                        Width = 45
                    });
                    tableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent)
                    {
                        Width = 55
                    });
                    groupBox.Controls.Add(tableLayoutPanel);
                    form.Controls.Add(panel);
                }


                if (controlAttribute.Control.Equals(typeof(CheckBox)))
                {
                    control = new CheckBox()
                    {
                        FlatStyle = FlatStyle.Flat, Checked = (bool)property.GetValue(theSettings, null), Name = property.Name
                    };
                    (control as CheckBox).CheckedChanged += new EventHandler(ConfigureView_Changed);
                }
                else if (controlAttribute.Control.Equals(typeof(FolderTextBox)))
                {
                    control = new FolderTextBox()
                    {
                        Text = (string)property.GetValue(theSettings, null), Name = property.Name
                    };
                    (control as FolderTextBox).TextChanged += new EventHandler(ConfigureView_Changed);
                }
                else if (controlAttribute.Control.Equals(typeof(FileTextBox)))
                {
                    control = new FileTextBox()
                    {
                        Text = (string)property.GetValue(theSettings, null), Name = property.Name
                    };
                    (control as FileTextBox).TextChanged += new EventHandler(ConfigureView_Changed);
                    ExtAttribute extAttribute = attributes.Select(x => x as ExtAttribute).Where(i => i != null).First();
                    (control as FileTextBox).Ext = extAttribute.Ext;
                }
                else if (controlAttribute.Control.Equals(typeof(TextBox)))
                {
                    control = new TextBox()
                    {
                        BorderStyle = BorderStyle.FixedSingle, Text = (string)property.GetValue(theSettings, null), Name = property.Name, Width = 200
                    };
                    (control as TextBox).TextChanged += new EventHandler(ConfigureView_Changed);
                }
            }
            else
            {
                return;
            }

            tableLayoutPanel.Controls.Add(new Label()
            {
                Text = descriptionAttribute.Description, AutoSize = true, Anchor = AnchorStyles.Right
            });
            tableLayoutPanel.Controls.Add(control);
            _controlBindings.Add(control, property);
        }