void setDiscussionFilterStateInControls(DiscussionFilterState state) { if (state.ByAnswers.HasFlag(FilterByAnswers.Answered) && state.ByAnswers.HasFlag(FilterByAnswers.Unanswered)) { checkGroupItem(_filterByAnswersMenuItemGroup, showAnsweredAndUnansweredThreadsToolStripMenuItem); } else if (state.ByAnswers.HasFlag(FilterByAnswers.Answered)) { checkGroupItem(_filterByAnswersMenuItemGroup, showAnsweredThreadsOnlyToolStripMenuItem); } else if (state.ByAnswers.HasFlag(FilterByAnswers.Unanswered)) { checkGroupItem(_filterByAnswersMenuItemGroup, showUnansweredThreadsOnlyToolStripMenuItem); } if (state.ByResolution.HasFlag(FilterByResolution.Resolved) && state.ByResolution.HasFlag(FilterByResolution.NotResolved)) { checkGroupItem(_filterByResolutionMenuItemGroup, showResolvedAndNotResolvedThreadsToolStripMenuItem); } else if (state.ByResolution.HasFlag(FilterByResolution.Resolved)) { checkGroupItem(_filterByResolutionMenuItemGroup, showResolvedThreadsOnlyToolStripMenuItem); } else if (state.ByResolution.HasFlag(FilterByResolution.NotResolved)) { checkGroupItem(_filterByResolutionMenuItemGroup, showNotResolvedThreadsOnlyToolStripMenuItem); } showThreadsStartedByMeOnlyToolStripMenuItem.Checked = state.ByCurrentUserOnly; showServiceMessagesToolStripMenuItem.Checked = state.ServiceMessages; }
public DiscussionFilterPanel(DiscussionFilterState initialFilter, Action onFilterChanged) { _onFilterChanged = onFilterChanged; InitializeComponent(); bindRadioToFlags(); checkBoxCreatedByMe.Checked = initialFilter.ByCurrentUserOnly; setFilter(_byAnswersRadioToFlags, (int)initialFilter.ByAnswers); setFilter(_byResolutionRadioToFlags, (int)initialFilter.ByResolution); subscribeToEvents(); }
/// <summary> /// Throws: /// ArgumentException /// </summary> internal DiscussionsForm(MergeRequestDescriptor mrd, string mrTitle, User mergeRequestAuthor, IGitRepository gitRepository, int diffContextDepth, ColorScheme colorScheme, List <Discussion> discussions, DiscussionManager manager, User currentUser, Func <MergeRequestDescriptor, Task> updateGitRepository) { _mergeRequestDescriptor = mrd; _mergeRequestTitle = mrTitle; _mergeRequestAuthor = mergeRequestAuthor; _gitRepository = gitRepository; _diffContextDepth = diffContextDepth; _colorScheme = colorScheme; _manager = manager; _updateGitRepository = updateGitRepository; _currentUser = currentUser; if (_currentUser.Id == 0) { throw new ArgumentException("Bad user Id"); } InitializeComponent(); DiscussionFilterState state = new DiscussionFilterState { ByCurrentUserOnly = false, ByAnswers = FilterByAnswers.Answered | FilterByAnswers.Unanswered, ByResolution = FilterByResolution.Resolved | FilterByResolution.NotResolved }; DisplayFilter = new DiscussionFilter(_currentUser, _mergeRequestAuthor, state); SystemFilter = new DiscussionFilter(_currentUser, _mergeRequestAuthor, state); FilterPanel = new DiscussionFilterPanel(DisplayFilter.Filter, () => { DisplayFilter.Filter = FilterPanel.Filter; updateLayout(null); }); ActionsPanel = new DiscussionActionsPanel(async() => await onRefresh()); Controls.Add(FilterPanel); Controls.Add(ActionsPanel); if (!renderDiscussions(discussions)) { throw new NoDiscussionsToShow(); } }
public DiscussionFilterPanel(DiscussionFilterState initialFilter, Action onFilterChanged) { _onFilterChanged = onFilterChanged; InitializeComponent(); bindRadioToFlags(); checkBoxCreatedByMe.Checked = initialFilter.ByCurrentUserOnly; checkBoxShowService.Checked = initialFilter.ServiceMessages; _radioButtonsByAnswers.UpdateCheckedState((int)initialFilter.ByAnswers); _radioButtonsByResolution.UpdateCheckedState((int)initialFilter.ByResolution); subscribeToEvents(); }