Initial refactoring to support CommandManager

This commit is contained in:
Ben Wallis
2017-06-17 13:50:44 +01:00
parent b65fad0679
commit fee2a4dd99
26 changed files with 549 additions and 201 deletions

View File

@@ -1,5 +1,6 @@
using System.Threading.Tasks;
using Filtration.ObjectModel;
using Filtration.ObjectModel.Factories;
using Filtration.Services;
using Filtration.ViewModels;
@@ -16,12 +17,15 @@ namespace Filtration.Repositories
internal class ItemFilterScriptRepository : IItemFilterScriptRepository
{
private readonly IItemFilterPersistenceService _itemFilterPersistenceService;
private readonly IItemFilterScriptFactory _itemFilterScriptFactory;
private readonly IItemFilterScriptViewModelFactory _itemFilterScriptViewModelFactory;
public ItemFilterScriptRepository(IItemFilterPersistenceService itemFilterPersistenceService,
IItemFilterScriptFactory itemFilterScriptFactory,
IItemFilterScriptViewModelFactory itemFilterScriptViewModelFactory)
{
_itemFilterPersistenceService = itemFilterPersistenceService;
_itemFilterScriptFactory = itemFilterScriptFactory;
_itemFilterScriptViewModelFactory = itemFilterScriptViewModelFactory;
}
@@ -37,7 +41,7 @@ namespace Filtration.Repositories
public IItemFilterScriptViewModel NewScript()
{
var newScript = new ItemFilterScript();
var newScript = _itemFilterScriptFactory.Create();
var newViewModel = _itemFilterScriptViewModelFactory.Create();
newViewModel.Initialise(newScript, true);

View File

@@ -11,8 +11,8 @@ namespace Filtration.Services
{
void SetItemFilterScriptDirectory(string path);
string ItemFilterScriptDirectory { get; }
Task<ItemFilterScript> LoadItemFilterScriptAsync(string filePath);
Task SaveItemFilterScriptAsync(ItemFilterScript script);
Task<IItemFilterScript> LoadItemFilterScriptAsync(string filePath);
Task SaveItemFilterScriptAsync(IItemFilterScript script);
string DefaultPathOfExileDirectory();
}
@@ -59,9 +59,9 @@ namespace Filtration.Services
Settings.Default.DefaultFilterDirectory = path;
}
public async Task<ItemFilterScript> LoadItemFilterScriptAsync(string filePath)
public async Task<IItemFilterScript> LoadItemFilterScriptAsync(string filePath)
{
ItemFilterScript loadedScript = null;
IItemFilterScript loadedScript = null;
await Task.Run(() =>
{
loadedScript = _itemFilterScriptTranslator.TranslateStringToItemFilterScript(
@@ -76,7 +76,7 @@ namespace Filtration.Services
return loadedScript;
}
public async Task SaveItemFilterScriptAsync(ItemFilterScript script)
public async Task SaveItemFilterScriptAsync(IItemFilterScript script)
{
await Task.Run(() =>
{

View File

@@ -25,7 +25,7 @@ namespace Filtration.ViewModels
{
internal interface IItemFilterScriptViewModel : IEditableDocument
{
ItemFilterScript Script { get; }
IItemFilterScript Script { get; }
IItemFilterBlockViewModelBase SelectedBlockViewModel { get; set; }
IItemFilterCommentBlockViewModel CommentBlockBrowserBrowserSelectedBlockViewModel { get; set; }
IEnumerable<IItemFilterCommentBlockViewModel> ItemFilterCommentBlockViewModels { get; }
@@ -35,7 +35,7 @@ namespace Filtration.ViewModels
string Description { get; set; }
string DisplayName { get; }
void Initialise(ItemFilterScript itemFilterScript, bool newScript);
void Initialise(IItemFilterScript itemFilterScript, bool newScript);
void RemoveDirtyFlag();
void SetDirtyFlag();
bool HasSelectedEnabledBlock();
@@ -294,7 +294,7 @@ namespace Filtration.ViewModels
}
}
public ItemFilterScript Script { get; private set; }
public IItemFilterScript Script { get; private set; }
public bool IsDirty
{
@@ -341,7 +341,7 @@ namespace Filtration.ViewModels
private bool _filenameIsFake;
private bool _showAdvanced;
public void Initialise(ItemFilterScript itemFilterScript, bool newScript)
public void Initialise(IItemFilterScript itemFilterScript, bool newScript)
{
ItemFilterBlockViewModels.Clear();

View File

@@ -1,7 +1,6 @@
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows.Media;
using Filtration.Common.ViewModels;
using Filtration.ObjectModel;
using Filtration.ObjectModel.BlockItemTypes;
using Filtration.Views;
@@ -13,13 +12,13 @@ namespace Filtration.ViewModels
{
internal interface IReplaceColorsViewModel
{
void Initialise(ItemFilterScript itemFilterScript, IItemFilterBlock initialiseFromBlock);
void Initialise(ItemFilterScript itemFilterScript);
void Initialise(IItemFilterScript itemFilterScript, IItemFilterBlock initialiseFromBlock);
void Initialise(IItemFilterScript itemFilterScript);
}
internal class ReplaceColorsViewModel : ViewModelBase, IReplaceColorsViewModel
{
private ItemFilterScript _itemFilterScript;
private IItemFilterScript _itemFilterScript;
private ReplaceColorsParameterSet _replaceColorsParameterSet;
public ReplaceColorsViewModel()
@@ -29,7 +28,7 @@ namespace Filtration.ViewModels
public RelayCommand ReplaceColorsCommand { get; private set; }
public void Initialise(ItemFilterScript itemFilterScript, IItemFilterBlock initialiseFromBlock)
public void Initialise(IItemFilterScript itemFilterScript, IItemFilterBlock initialiseFromBlock)
{
_replaceColorsParameterSet = new ReplaceColorsParameterSet();
@@ -67,7 +66,7 @@ namespace Filtration.ViewModels
public Color NewTextColor
{
get { return _replaceColorsParameterSet.NewTextColor; }
get => _replaceColorsParameterSet.NewTextColor;
set
{
_replaceColorsParameterSet.NewTextColor = value;
@@ -82,7 +81,7 @@ namespace Filtration.ViewModels
public bool ReplaceTextColor
{
get { return _replaceColorsParameterSet.ReplaceTextColor; }
get => _replaceColorsParameterSet.ReplaceTextColor;
set
{
_replaceColorsParameterSet.ReplaceTextColor = value;
@@ -92,7 +91,7 @@ namespace Filtration.ViewModels
public Color NewBackgroundColor
{
get { return _replaceColorsParameterSet.NewBackgroundColor; }
get => _replaceColorsParameterSet.NewBackgroundColor;
set
{
_replaceColorsParameterSet.NewBackgroundColor = value;
@@ -107,7 +106,7 @@ namespace Filtration.ViewModels
public bool ReplaceBackgroundColor
{
get { return _replaceColorsParameterSet.ReplaceBackgroundColor; }
get => _replaceColorsParameterSet.ReplaceBackgroundColor;
set
{
_replaceColorsParameterSet.ReplaceBackgroundColor = value;
@@ -117,7 +116,7 @@ namespace Filtration.ViewModels
public Color NewBorderColor
{
get { return _replaceColorsParameterSet.NewBorderColor; }
get => _replaceColorsParameterSet.NewBorderColor;
set
{
_replaceColorsParameterSet.NewBorderColor = value;
@@ -132,7 +131,7 @@ namespace Filtration.ViewModels
public bool ReplaceBorderColor
{
get { return _replaceColorsParameterSet.ReplaceBorderColor; }
get => _replaceColorsParameterSet.ReplaceBorderColor;
set
{
_replaceColorsParameterSet.ReplaceBorderColor = value;
@@ -142,7 +141,7 @@ namespace Filtration.ViewModels
public ReplaceColorsParameterSet ReplaceColorsParameterSet => _replaceColorsParameterSet;
public void Initialise(ItemFilterScript itemFilterScript)
public void Initialise(IItemFilterScript itemFilterScript)
{
_replaceColorsParameterSet = new ReplaceColorsParameterSet();
_itemFilterScript = itemFilterScript;

View File

@@ -17,9 +17,9 @@
<KeyBinding Command="{Binding CopyBlockStyleCommand}" Modifiers="Shift+Control" Key="C" />
<KeyBinding Command="{Binding PasteBlockStyleCommand}" Modifiers="Shift+Control" Key="V" />
</UserControl.InputBindings>
<utility:RoutedCommandHandlers.Commands>
<!--<utility:RoutedCommandHandlers.Commands>
<utility:RoutedCommandHandler RoutedCommand="{StaticResource MoveBlockUpRoutedCommand}" Command="{Binding MoveBlockUpCommand}" IsActive="{Binding IsActiveDocument}" />
</utility:RoutedCommandHandlers.Commands>
</utility:RoutedCommandHandlers.Commands>-->
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
@@ -42,7 +42,6 @@
</Grid.RowDefinitions>
<Border Grid.Row="0" BorderThickness="1" BorderBrush="DarkGray" Margin="5,5,5,0">
<StackPanel Margin="2,2,2,2">
<Button Command="{StaticResource MoveBlockUpRoutedCommand}">MOVE BLOCK UP TEST BUTTON</Button>
<Expander Style="{StaticResource ExpanderRightAlignStyle}">
<Expander.Header>
<TextBlock Text="Script Description" VerticalAlignment="Center" />

View File

@@ -8,7 +8,7 @@
<Grid>
<TextBlock FontStyle="Italic" Margin="5" FontSize="13">
Welcome to Filtration, to get started either
<Hyperlink Command="{Binding NewScriptCommand}">create a new script</Hyperlink> or <Hyperlink Command="{StaticResource OpenScriptRoutedCommand}">open an existing script</Hyperlink>
<Hyperlink Command="{Binding NewScriptCommand}">create a new script</Hyperlink> or <Hyperlink Command="{Binding OpenScriptCommand}">open an existing script</Hyperlink>
</TextBlock>
</Grid>
</UserControl>