mirror of
https://github.com/AntonyCorbett/JWLMerge
synced 2026-01-16 23:04:47 -05:00
88 lines
2.6 KiB
C#
88 lines
2.6 KiB
C#
namespace JWLMerge.ViewModel
|
|
{
|
|
using System.Collections.ObjectModel;
|
|
using Models;
|
|
using MaterialDesignThemes.Wpf;
|
|
using Microsoft.Toolkit.Mvvm.ComponentModel;
|
|
using Microsoft.Toolkit.Mvvm.Input;
|
|
|
|
internal sealed class RemoveUnderliningByPubAndColourViewModel : ObservableObject
|
|
{
|
|
private bool _removeAssociatedNotes;
|
|
private PublicationDef? _selectedPublication;
|
|
private ColourListItem? _selectedColour;
|
|
|
|
public RemoveUnderliningByPubAndColourViewModel()
|
|
{
|
|
OkCommand = new RelayCommand(Ok);
|
|
CancelCommand = new RelayCommand(Cancel);
|
|
}
|
|
|
|
public RelayCommand OkCommand { get; }
|
|
|
|
public RelayCommand CancelCommand { get; }
|
|
|
|
public ObservableCollection<PublicationDef> PublicationList { get; } = new();
|
|
|
|
public ObservableCollection<ColourListItem> ColourItems { get; } = new();
|
|
|
|
public PublicationDef? SelectedPublication
|
|
{
|
|
get => _selectedPublication;
|
|
set
|
|
{
|
|
if (_selectedPublication != value)
|
|
{
|
|
_selectedPublication = value;
|
|
OnPropertyChanged();
|
|
OnPropertyChanged(nameof(SelectionMade));
|
|
}
|
|
}
|
|
}
|
|
|
|
public ColourListItem? SelectedColour
|
|
{
|
|
get => _selectedColour;
|
|
set
|
|
{
|
|
if (_selectedColour != value)
|
|
{
|
|
_selectedColour = value;
|
|
OnPropertyChanged();
|
|
OnPropertyChanged(nameof(SelectionMade));
|
|
}
|
|
}
|
|
}
|
|
|
|
public bool SelectionMade => SelectedPublication != null && SelectedColour != null;
|
|
|
|
public PubColourResult? Result { get; private set; }
|
|
|
|
public bool RemoveAssociatedNotes
|
|
{
|
|
get => _removeAssociatedNotes;
|
|
set => SetProperty(ref _removeAssociatedNotes, value);
|
|
}
|
|
|
|
private void Cancel()
|
|
{
|
|
Result = null;
|
|
DialogHost.CloseDialogCommand.Execute(null, null);
|
|
}
|
|
|
|
private void Ok()
|
|
{
|
|
Result = new PubColourResult
|
|
{
|
|
PublicationSymbol = SelectedPublication?.KeySymbol,
|
|
AnyPublication = SelectedPublication?.IsAllPublicationsSymbol ?? false,
|
|
ColorIndex = SelectedColour?.Id ?? 0,
|
|
AnyColor = SelectedColour?.Id == 0,
|
|
RemoveAssociatedNotes = RemoveAssociatedNotes,
|
|
};
|
|
|
|
DialogHost.CloseDialogCommand.Execute(null, null);
|
|
}
|
|
}
|
|
}
|