예제 #1
0
        /// <summary>
        /// Add the favoratable browser view and viewmodel to the list of open controls <see cref="OpenFavoriteViewModels"/>.
        /// </summary>
        /// <param name="view">The view.</param>
        /// <param name="viewModel">The view model.</param>
        private void AddFavoritesControl(IPanelFilterableDataGridViewModel viewModel)
        {
            if (viewModel is null)
            {
                return;
            }

            this.OpenFavoriteViewModels.Add(viewModel);
            this.Refresh(viewModel);

            logger.Debug($"{viewModel} Added to the Favorites FilterStringService");
        }
예제 #2
0
        /// <summary>
        /// Add the deprecatable browser view and viewmodel to the list of open controls <see cref="OpenDeprecatedViewModels"/>.
        /// </summary>
        /// <param name="view">The view.</param>
        /// <param name="viewModel">The view model.</param>
        private void AddDeprecatedControl(IPanelFilterableDataGridViewModel viewModel)
        {
            if (viewModel is null)
            {
                return;
            }

            this.OpenDeprecatedViewModels.Add(viewModel);
            this.Refresh(viewModel);

            logger.Debug($"{viewModel} Added deprecatable to the FilterStringService");
        }
예제 #3
0
        /// <summary>
        /// Handles the refreshing of the control when needed
        /// </summary>
        /// <param name="viewModel">The view to refresh.</param>
        private void Refresh(IPanelFilterableDataGridViewModel viewModel)
        {
            viewModel.FilterString = string.Empty;

            // filters are always reenabled in case they were manually turned off.
            viewModel.IsFilterEnabled = true;

            // deprecation state can be told no matter if the browser has the favorites vm assigned or not
            if (!this.ShowDeprecatedThings)
            {
                viewModel.FilterString = DeprecatedFilterString;
            }

            // if the control is favoratable
            if (this.OpenFavoriteViewModels.Contains(viewModel))
            {
                var favoritesBrowserViewModel = (IFavoritesBrowserViewModel)viewModel;

                if (!this.ShowDeprecatedThings && favoritesBrowserViewModel.ShowOnlyFavorites)
                {
                    viewModel.FilterString = FavoriteAndHideDeprecatedFilterString;
                }
                else if (this.ShowDeprecatedThings && favoritesBrowserViewModel.ShowOnlyFavorites)
                {
                    viewModel.FilterString = FavoriteFilterString;
                }
                else if (!this.ShowDeprecatedThings && !favoritesBrowserViewModel.ShowOnlyFavorites)
                {
                    viewModel.FilterString = DeprecatedFilterString;
                }
                else
                {
                    viewModel.FilterString = string.Empty;
                }
            }
        }
예제 #4
0
 /// <summary>
 /// Remove the view from all registered disctionaries.
 /// </summary>
 /// <param name="view">The view to remove.</param>
 private void RemoveView(IPanelFilterableDataGridViewModel viewModel)
 {
     this.OpenDeprecatedViewModels.Remove(viewModel);
     this.OpenFavoriteViewModels.Remove(viewModel);
 }