/// <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"); }
/// <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"); }
/// <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; } } }
/// <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); }