Example #1
0
        public void ShowFormattingDialog()
        {
            var foldChangeRows = _bindingListSource.OfType <RowItem>()
                                 .Select(rowItem => rowItem.Value)
                                 .OfType <FoldChangeBindingSource.FoldChangeRow>()
                                 .ToArray();

            var backup = GroupComparisonDef.ColorRows.Select(r => (MatchRgbHexColor)r.Clone()).ToArray();
            // This list will later be used as a BindingList, so we have to create a mutable clone
            var copy = GroupComparisonDef.ColorRows.Select(r => (MatchRgbHexColor)r.Clone()).ToList();

            using (var form = new VolcanoPlotFormattingDlg(this, copy, foldChangeRows,
                                                           rows =>
            {
                EditGroupComparisonDlg.ChangeGroupComparisonDef(false, GroupComparisonModel, GroupComparisonDef.ChangeColorRows(rows));
                UpdateGraph();
            }))
            {
                if (form.ShowDialog() == DialogResult.OK)
                {
                    EditGroupComparisonDlg.ChangeGroupComparisonDef(true, GroupComparisonModel, GroupComparisonDef);
                }
                else
                {
                    EditGroupComparisonDlg.ChangeGroupComparisonDef(false, GroupComparisonModel, GroupComparisonDef.ChangeColorRows(backup));
                }

                UpdateGraph();
            }
        }