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;
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        /// <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();
            }
        }
Exemplo n.º 4
0
        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();
        }