Added Replace Colors functionality

This commit is contained in:
Ben
2015-06-06 20:44:38 +01:00
parent a403fdb23c
commit db1b783f49
21 changed files with 546 additions and 35 deletions

View File

@@ -26,16 +26,19 @@ namespace Filtration.ViewModels
private readonly ILootFilterScriptViewModelFactory _lootFilterScriptViewModelFactory;
private readonly ILootFilterPersistenceService _persistenceService;
private readonly ILootFilterScriptTranslator _lootFilterScriptTranslator;
private readonly IReplaceColorsViewModel _replaceColorsViewModel;
private ILootFilterScriptViewModel _currentScriptViewModel;
private readonly ObservableCollection<ILootFilterScriptViewModel> _scriptViewModels;
public MainWindowViewModel(ILootFilterScriptViewModelFactory lootFilterScriptViewModelFactory,
ILootFilterPersistenceService persistenceService,
ILootFilterScriptTranslator lootFilterScriptTranslator)
ILootFilterScriptTranslator lootFilterScriptTranslator,
IReplaceColorsViewModel replaceColorsViewModel)
{
_lootFilterScriptViewModelFactory = lootFilterScriptViewModelFactory;
_persistenceService = persistenceService;
_lootFilterScriptTranslator = lootFilterScriptTranslator;
_replaceColorsViewModel = replaceColorsViewModel;
_scriptViewModels = new ObservableCollection<ILootFilterScriptViewModel>();
@@ -48,8 +51,9 @@ namespace Filtration.ViewModels
PasteCommand = new RelayCommand(OnPasteCommand, () => CurrentScriptViewModel != null);
NewScriptCommand = new RelayCommand(OnNewScriptCommand);
CloseScriptCommand = new RelayCommand<ILootFilterScriptViewModel>(OnCloseScriptCommand, v => CurrentScriptViewModel != null);
ReplaceColorsCommand = new RelayCommand(OnReplaceColorsCommand, () => CurrentScriptViewModel != null);
LoadScriptFromFile("C:\\ThioleLootFilter.txt");
//LoadScriptFromFile("C:\\ThioleLootFilter.txt");
SetLootFilterScriptDirectory();
}
@@ -63,6 +67,7 @@ namespace Filtration.ViewModels
public RelayCommand NewScriptCommand { get; private set; }
public RelayCommand<ILootFilterScriptViewModel> CloseScriptCommand { get; private set; }
public RelayCommand OpenAboutWindowCommand { get; private set; }
public RelayCommand ReplaceColorsCommand { get; private set; }
public ObservableCollection<ILootFilterScriptViewModel> ScriptViewModels
{
@@ -87,11 +92,17 @@ namespace Filtration.ViewModels
{
_currentScriptViewModel = value;
RaisePropertyChanged();
RaisePropertyChanged("NoScriptsOpen");
SaveScriptCommand.RaiseCanExecuteChanged();
SaveScriptAsCommand.RaiseCanExecuteChanged();
}
}
public bool NoScriptsOpen
{
get { return _currentScriptViewModel == null; }
}
private void OnOpenAboutWindowCommand()
{
var aboutWindow = new AboutWindow();
@@ -206,6 +217,13 @@ namespace Filtration.ViewModels
}
}
private void OnReplaceColorsCommand()
{
_replaceColorsViewModel.Initialise(CurrentScriptViewModel.Script);
var replaceColorsWindow = new ReplaceColorsWindow {DataContext = _replaceColorsViewModel};
replaceColorsWindow.ShowDialog();
}
private bool ValidateScript()
{
var result = CurrentScriptViewModel.Script.Validate();