From 0d81d0ef541c3950b859c23c2922bf5d59763bee Mon Sep 17 00:00:00 2001 From: Ben Wallis Date: Sun, 30 Sep 2018 12:38:26 +0100 Subject: [PATCH] Fixed block output preview --- .../ViewModels/ItemFilterScriptViewModel.cs | 1 + .../ToolPanes/BlockOutputPreviewViewModel.cs | 31 +++++++------------ 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/Filtration/ViewModels/ItemFilterScriptViewModel.cs b/Filtration/ViewModels/ItemFilterScriptViewModel.cs index bcc2f72..154dab6 100644 --- a/Filtration/ViewModels/ItemFilterScriptViewModel.cs +++ b/Filtration/ViewModels/ItemFilterScriptViewModel.cs @@ -143,6 +143,7 @@ namespace Filtration.ViewModels { RaisePropertyChanged(nameof(SelectedBlockViewModels)); RaisePropertyChanged(nameof(LastSelectedBlockViewModel)); + Messenger.Default.Send(new NotificationMessage("LastSelectedBlockChanged")); }; _lastAddedBlocks = new List(); _showAdvanced = Settings.Default.ShowAdvanced; diff --git a/Filtration/ViewModels/ToolPanes/BlockOutputPreviewViewModel.cs b/Filtration/ViewModels/ToolPanes/BlockOutputPreviewViewModel.cs index 6567855..cc25946 100644 --- a/Filtration/ViewModels/ToolPanes/BlockOutputPreviewViewModel.cs +++ b/Filtration/ViewModels/ToolPanes/BlockOutputPreviewViewModel.cs @@ -1,4 +1,5 @@ using System; +using System.Linq; using System.Windows.Media.Imaging; using Filtration.Parser.Interface.Services; using GalaSoft.MvvmLight.Messaging; @@ -28,19 +29,10 @@ namespace Filtration.ViewModels.ToolPanes Messenger.Default.Register(this, message => { - switch (message.Notification) - { - case "LastSelectedBlockChanged": - { - OnLastSelectedBlockChanged(this, EventArgs.Empty); - break; - } - case "ActiveDocumentChanged": - { - OnLastSelectedBlockChanged(this, EventArgs.Empty); - break; - } - } + if (message.Notification == "LastSelectedBlockChanged") + OnLastSelectedBlockChanged(this, EventArgs.Empty); + else if (message.Notification == "ActiveDocumentChanged") + OnLastSelectedBlockChanged(this, EventArgs.Empty); }); } @@ -49,7 +41,7 @@ namespace Filtration.ViewModels.ToolPanes public string PreviewText { - get { return _previewText; } + get => _previewText; private set { _previewText = value; @@ -64,15 +56,16 @@ namespace Filtration.ViewModels.ToolPanes private void OnLastSelectedBlockChanged(object sender, EventArgs e) { - if (AvalonDockWorkspaceViewModel.ActiveScriptViewModel?.LastSelectedBlockViewModel == null) + if (AvalonDockWorkspaceViewModel.ActiveScriptViewModel?.SelectedBlockViewModels == null || + AvalonDockWorkspaceViewModel.ActiveScriptViewModel.SelectedBlockViewModels.Count == 0) { PreviewText = string.Empty; return; } - - PreviewText = - _itemFilterBlockTranslator.TranslateItemFilterBlockBaseToString( - AvalonDockWorkspaceViewModel.ActiveScriptViewModel.LastSelectedBlockViewModel.BaseBlock); + + PreviewText = AvalonDockWorkspaceViewModel.ActiveScriptViewModel.SelectedBlockViewModels + .Select(s => _itemFilterBlockTranslator.TranslateItemFilterBlockBaseToString(s.BaseBlock)) + .Aggregate((prev, curr) => prev + Environment.NewLine + Environment.NewLine + curr); } } }