private EventHandler RemoveRuleToStyleEventHandlerCreator(PatternToStyle value) { return(new EventHandler((object sender, EventArgs e) => { var rowIndex = PatternCustomizerPackage.currentState.OrderedPatternToStyleMapping.IndexOf(value) + 1; PatternCustomizerPackage.currentState.OrderedPatternToStyleMapping.Remove(value); RemoveArbitraryRow(tableLayoutPanel1, rowIndex); })); }
private void AddTableEntryButton_Click(object sender, EventArgs e) { var currentState = PatternCustomizerPackage.currentState; if (currentState.Formats.Any() && currentState.Rules.Any()) { var newEntry = new PatternToStyle(0, 0); currentState.OrderedPatternToStyleMapping.Add(newEntry); AddNewRow(newEntry); } else { // add some msgbox to the user to add pattern and style throw new Exception("Can not create a rule without patterns and styles"); } }
private void AddNewRow(PatternToStyle selectedValue) { //increase panel rows count by one tableLayoutPanel1.RowCount++; tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.AutoSize)); // TODO: Add reorder buttons //add rule select box var patternOptions = new ComboBox(); patternOptions.DropDownStyle = ComboBoxStyle.DropDownList; patternOptions.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom; tableLayoutPanel1.Controls.Add(patternOptions, patternColumnIndex, tableLayoutPanel1.RowCount - 2); patternOptions.DataSource = PatternCustomizerPackage.currentState.Rules; patternOptions.BindingContext = new BindingContext(); patternOptions.CreateControl(); patternOptions.DataBindings.Add(new Binding("SelectedIndex", selectedValue, "RuleIndex", true, DataSourceUpdateMode.OnPropertyChanged)); patternOptions.SelectedIndex = selectedValue.RuleIndex; //add style select box var styleOptions = new ComboBox(); styleOptions.DropDownStyle = ComboBoxStyle.DropDownList; styleOptions.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom; tableLayoutPanel1.Controls.Add(styleOptions, styleColumnIndex, tableLayoutPanel1.RowCount - 2); styleOptions.DataSource = PatternCustomizerPackage.currentState.Formats; styleOptions.BindingContext = new BindingContext(); styleOptions.CreateControl(); styleOptions.DataBindings.Add(new Binding("SelectedIndex", selectedValue, "FormatIndex", true, DataSourceUpdateMode.OnPropertyChanged)); styleOptions.SelectedIndex = selectedValue.FormatIndex; //add delete button var deleteRulesToPatternBtn = new Button(); deleteRulesToPatternBtn.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom; deleteRulesToPatternBtn.Name = selectedValue.ToString(); deleteRulesToPatternBtn.Text = "Remove"; deleteRulesToPatternBtn.UseVisualStyleBackColor = true; deleteRulesToPatternBtn.Click += RemoveRuleToStyleEventHandlerCreator(selectedValue); tableLayoutPanel1.Controls.Add(deleteRulesToPatternBtn, RemoveRuleToPatternColumnIndex, tableLayoutPanel1.RowCount - 2); }