Remove code duplication.

This commit is contained in:
GlenCFL 2017-12-08 12:12:17 -05:00
parent a0a72b5fe8
commit 6393a53bf5
3 changed files with 73 additions and 90 deletions

View File

@ -28,7 +28,6 @@ namespace Filtration.ViewModels
private readonly IStaticDataService _staticDataService;
private readonly IReplaceColorsViewModel _replaceColorsViewModel;
private readonly MediaPlayer _mediaPlayer = new MediaPlayer();
private IItemFilterScriptViewModel _parentScriptViewModel;
private bool _displaySettingsPopupOpen;
private bool _isExpanded;
@ -39,17 +38,8 @@ namespace Filtration.ViewModels
_staticDataService = staticDataService;
_replaceColorsViewModel = replaceColorsViewModel;
CopyBlockCommand = new RelayCommand(OnCopyBlockCommand);
PasteBlockCommand = new RelayCommand(OnPasteBlockCommand);
CopyBlockStyleCommand = new RelayCommand(OnCopyBlockStyleCommand);
PasteBlockStyleCommand = new RelayCommand(OnPasteBlockStyleCommand);
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);
ReplaceColorsCommand = new RelayCommand(OnReplaceColorsCommand);
AddFilterBlockItemCommand = new RelayCommand<Type>(OnAddFilterBlockItemCommand);
ToggleBlockActionCommand = new RelayCommand(OnToggleBlockActionCommand);
@ -82,17 +72,8 @@ namespace Filtration.ViewModels
base.Initialise(itemFilterBlock, parentScriptViewModel);
}
public RelayCommand CopyBlockCommand { get; }
public RelayCommand PasteBlockCommand { get; }
public RelayCommand CopyBlockStyleCommand { get; }
public RelayCommand PasteBlockStyleCommand { 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 RelayCommand ToggleBlockActionCommand { get; }
public RelayCommand ReplaceColorsCommand { get; }
public RelayCommand<Type> AddFilterBlockItemCommand { get; }

View File

@ -1,6 +1,7 @@
using System;
using Filtration.ObjectModel;
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.CommandWpf;
namespace Filtration.ViewModels
{
@ -16,14 +17,40 @@ namespace Filtration.ViewModels
{
private bool _isDirty;
public ItemFilterBlockViewModelBase()
{
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 virtual void Initialise(IItemFilterBlockBase itemfilterBlock, IItemFilterScriptViewModel itemFilterScriptViewModel)
{
BaseBlock = itemfilterBlock;
_parentScriptViewModel = itemFilterScriptViewModel;
}
public event EventHandler BlockBecameDirty;
public IItemFilterBlockBase BaseBlock { get; protected set; }
public IItemFilterScriptViewModel _parentScriptViewModel;
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 bool IsDirty
{
@ -38,5 +65,50 @@ namespace Filtration.ViewModels
}
}
}
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);
}
}
}

View File

@ -1,5 +1,4 @@
using Filtration.ObjectModel;
using GalaSoft.MvvmLight.CommandWpf;
namespace Filtration.ViewModels
{
@ -11,31 +10,6 @@ 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;
@ -56,52 +30,8 @@ namespace Filtration.ViewModels
set
{
ItemFilterCommentBlock.Comment = value;
RaisePropertyChanged();
}
}
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);
}
}
}