From d96234f099a6a867ed4100705de2ed9772b42999 Mon Sep 17 00:00:00 2001 From: GlenCFL Date: Fri, 8 Dec 2017 09:15:01 -0500 Subject: [PATCH] Fix the contextual Delete Section command. --- .../ItemFilterCommentBlockViewModel.cs | 68 +++++++++++++++++++ .../Views/ItemFilterCommentBlockView.xaml | 45 ++++++++++-- 2 files changed, 106 insertions(+), 7 deletions(-) diff --git a/Filtration/ViewModels/ItemFilterCommentBlockViewModel.cs b/Filtration/ViewModels/ItemFilterCommentBlockViewModel.cs index 84b292c..4ed357e 100644 --- a/Filtration/ViewModels/ItemFilterCommentBlockViewModel.cs +++ b/Filtration/ViewModels/ItemFilterCommentBlockViewModel.cs @@ -1,4 +1,5 @@ using Filtration.ObjectModel; +using GalaSoft.MvvmLight.CommandWpf; namespace Filtration.ViewModels { @@ -10,12 +11,34 @@ namespace Filtration.ViewModels internal class ItemFilterCommentBlockViewModel : ItemFilterBlockViewModelBase, IItemFilterCommentBlockViewModel { + private IItemFilterScriptViewModel _parentScriptViewModel; + public ItemFilterCommentBlockViewModel() { + CopyBlockCommand = new RelayCommand(OnCopyBlockCommand); + PasteBlockCommand = new RelayCommand(OnPasteBlockCommand); + AddBlockCommand = new RelayCommand(OnAddBlockCommand); + AddSectionCommand = new RelayCommand(OnAddSectionCommand); + DeleteBlockCommand = new RelayCommand(OnDeleteBlockCommand); + MoveBlockUpCommand = new RelayCommand(OnMoveBlockUpCommand); + MoveBlockDownCommand = new RelayCommand(OnMoveBlockDownCommand); + MoveBlockToTopCommand = new RelayCommand(OnMoveBlockToTopCommand); + MoveBlockToBottomCommand = new RelayCommand(OnMoveBlockToBottomCommand); } + public RelayCommand CopyBlockCommand { get; } + public RelayCommand PasteBlockCommand { get; } + public RelayCommand AddBlockCommand { get; } + public RelayCommand AddSectionCommand { get; } + public RelayCommand DeleteBlockCommand { get; } + public RelayCommand MoveBlockUpCommand { get; } + public RelayCommand MoveBlockDownCommand { get; } + public RelayCommand MoveBlockToTopCommand { get; } + public RelayCommand MoveBlockToBottomCommand { get; } + public override void Initialise(IItemFilterBlockBase itemfilterBlock, IItemFilterScriptViewModel itemFilterScriptViewModel) { + _parentScriptViewModel = itemFilterScriptViewModel; ItemFilterCommentBlock = itemfilterBlock as IItemFilterCommentBlock; BaseBlock = ItemFilterCommentBlock; @@ -25,5 +48,50 @@ namespace Filtration.ViewModels public IItemFilterCommentBlock ItemFilterCommentBlock { get; private set; } public string Comment => ItemFilterCommentBlock.Comment; + + private void OnCopyBlockCommand() + { + _parentScriptViewModel.CopyBlock(this); + } + + private void OnPasteBlockCommand() + { + _parentScriptViewModel.PasteBlock(this); + } + + private void OnAddBlockCommand() + { + _parentScriptViewModel.AddBlock(this); + } + + private void OnAddSectionCommand() + { + _parentScriptViewModel.AddCommentBlock(this); + } + + private void OnDeleteBlockCommand() + { + _parentScriptViewModel.DeleteBlock(this); + } + + private void OnMoveBlockUpCommand() + { + _parentScriptViewModel.MoveBlockUp(this); + } + + private void OnMoveBlockDownCommand() + { + _parentScriptViewModel.MoveBlockDown(this); + } + + private void OnMoveBlockToTopCommand() + { + _parentScriptViewModel.MoveBlockToTop(this); + } + + private void OnMoveBlockToBottomCommand() + { + _parentScriptViewModel.MoveBlockToBottom(this); + } } } \ No newline at end of file diff --git a/Filtration/Views/ItemFilterCommentBlockView.xaml b/Filtration/Views/ItemFilterCommentBlockView.xaml index 6531030..fd62e90 100644 --- a/Filtration/Views/ItemFilterCommentBlockView.xaml +++ b/Filtration/Views/ItemFilterCommentBlockView.xaml @@ -4,16 +4,47 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:viewModels="clr-namespace:Filtration.ViewModels" + xmlns:views="clr-namespace:Filtration.Views" + xmlns:converters="clr-namespace:Filtration.Converters" d:DataContext="{d:DesignInstance Type=viewModels:ItemFilterCommentBlockViewModel}" mc:Ignorable="d" d:DesignHeight="50" d:DesignWidth="300"> - + + + + + + + + + + + + + @@ -25,7 +56,7 @@ - +