protected virtual void OnButtonAddClicked(object sender, System.EventArgs e)
        {
            var dlg = new CustomExecutionModeDialog();

            try {
                dlg.Initialize(ctx, null, null);
                if (MessageService.RunCustomDialog(dlg, this) == (int)Gtk.ResponseType.Ok)
                {
                    ExecutionModeCommandService.SaveCustomCommand(ctx.Project, dlg.GetConfigurationData());
                    Fill();
                }
            } finally {
                dlg.Destroy();
            }
        }
        protected virtual void OnButtonEditClicked(object sender, System.EventArgs e)
        {
            CustomExecutionMode mode = GetSelectedMode();
            var dlg = new CustomExecutionModeDialog();

            try {
                dlg.Initialize(ctx, null, mode);
                if (MessageService.RunCustomDialog(dlg, this) == (int)Gtk.ResponseType.Ok)
                {
                    CustomExecutionMode newMode = dlg.GetConfigurationData();
                    ExecutionModeCommandService.SaveCustomCommand(ctx.Project, newMode);
                    if (newMode.Scope != mode.Scope)
                    {
                        ExecutionModeCommandService.RemoveCustomCommand(ctx.Project, mode);
                    }
                    Fill();
                }
            } finally {
                dlg.Destroy();
            }
        }