mirror of
https://github.com/rmcrackan/Libation.git
synced 2026-03-27 03:15:31 -04:00
- Added `MockLibraryBook` which contains factories for easily creating mock LibraryBooks and Books
- Added mock Configuration
- New `IPersistentDictionary` interface
- New `MockPersistentDictionary` class which uses a `JObject` as its data store
- Added `public static Configuration CreateMockInstance()`
- This method returns a mock Configuration instance **and also sets the `Configuration.Instance` property**
- Throws an exception if not in debug
- Updated all chardonnay controls to use the mocks in design mode. Previously I was using my actual database and settings file, but that approach is fragile and is unfriendly towards anyone else trying to work on it.
53 lines
2.0 KiB
C#
53 lines
2.0 KiB
C#
using ApplicationServices;
|
|
using Avalonia;
|
|
using Avalonia.Controls;
|
|
using DataLayer;
|
|
using LibationUiBase;
|
|
using LibationUiBase.ProcessQueue;
|
|
|
|
#nullable enable
|
|
namespace LibationAvalonia.Views
|
|
{
|
|
public delegate void QueueItemPositionButtonClicked(ProcessBookViewModel? item, QueuePosition queueButton);
|
|
public delegate void QueueItemCancelButtonClicked(ProcessBookViewModel? item);
|
|
public partial class ProcessBookControl : UserControl
|
|
{
|
|
public static event QueueItemPositionButtonClicked? PositionButtonClicked;
|
|
public static event QueueItemCancelButtonClicked? CancelButtonClicked;
|
|
|
|
public static readonly StyledProperty<ProcessBookStatus> ProcessBookStatusProperty =
|
|
AvaloniaProperty.Register<ProcessBookControl, ProcessBookStatus>(nameof(ProcessBookStatus), enableDataValidation: true);
|
|
|
|
public ProcessBookStatus ProcessBookStatus
|
|
{
|
|
get => GetValue(ProcessBookStatusProperty);
|
|
set => SetValue(ProcessBookStatusProperty, value);
|
|
}
|
|
|
|
public ProcessBookControl()
|
|
{
|
|
InitializeComponent();
|
|
|
|
if (Design.IsDesignMode)
|
|
{
|
|
ViewModels.MainVM.Configure_NonUI();
|
|
DataContext = new ProcessBookViewModel(MockLibraryBook.CreateBook());
|
|
return;
|
|
}
|
|
}
|
|
|
|
private ProcessBookViewModel? DataItem => DataContext as ProcessBookViewModel;
|
|
|
|
public void Cancel_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e)
|
|
=> CancelButtonClicked?.Invoke(DataItem);
|
|
public void MoveFirst_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e)
|
|
=> PositionButtonClicked?.Invoke(DataItem, QueuePosition.First);
|
|
public void MoveUp_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e)
|
|
=> PositionButtonClicked?.Invoke(DataItem, QueuePosition.OneUp);
|
|
public void MoveDown_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e)
|
|
=> PositionButtonClicked?.Invoke(DataItem, QueuePosition.OneDown);
|
|
public void MoveLast_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e)
|
|
=> PositionButtonClicked?.Invoke(DataItem, QueuePosition.Last);
|
|
}
|
|
}
|