From 02969b385045ea0ab0332dc4af7553bd11c8e9ec Mon Sep 17 00:00:00 2001 From: TheXamlGuy Date: Sun, 16 Jun 2024 15:48:53 +0100 Subject: [PATCH] More renaming --- Toolkit.Avalonia/ContentDialogHandler.cs | 37 ++++++--- Toolkit.Foundation/AppService.cs | 2 +- Toolkit.Foundation/AsyncLock.cs | 4 +- Toolkit.Foundation/ComponentHost.cs | 2 +- Toolkit.Foundation/ComponentInitializer.cs | 2 +- .../ConfigurationInitializer.cs | 2 +- Toolkit.Foundation/ContentFactory.cs | 4 +- Toolkit.Foundation/IActivated.cs | 5 -- Toolkit.Foundation/IActivityIndicator.cs | 2 +- .../IConfigurationInitializer.cs | 2 +- Toolkit.Foundation/IDeactivatable.cs | 8 -- Toolkit.Foundation/IDeactivating.cs | 5 -- Toolkit.Foundation/IInitialization.cs | 7 +- Toolkit.Foundation/Observable.cs | 38 ++++----- Toolkit.Foundation/ObservableCollection.cs | 78 ++++++++----------- 15 files changed, 91 insertions(+), 107 deletions(-) delete mode 100644 Toolkit.Foundation/IDeactivatable.cs diff --git a/Toolkit.Avalonia/ContentDialogHandler.cs b/Toolkit.Avalonia/ContentDialogHandler.cs index c1aeef8..8eafbb2 100644 --- a/Toolkit.Avalonia/ContentDialogHandler.cs +++ b/Toolkit.Avalonia/ContentDialogHandler.cs @@ -62,17 +62,28 @@ public class ContentDialogHandler(IDispatcher dispatcher) : contentDialog.Closing -= HandleClosing; if (contentDialog.DataContext is object content) { + bool cancelled = false; if (content is IConfirmation confirmation) { Deferral deferral = args.GetDeferral(); if (!await confirmation.Confirm()) { args.Cancel = true; + cancelled = true; + contentDialog.Closing += HandleClosing; } deferral.Complete(); } + + if (!cancelled) + { + if (content is IDeactivating deactivating) + { + await deactivating.OnDeactivating(); + } + } } } } @@ -83,17 +94,6 @@ public class ContentDialogHandler(IDispatcher dispatcher) : contentDialog.Opened -= HandleOpened; if (contentDialog.DataContext is object content) { - if (content is IDeactivatable deactivatable) - { - async void DeactivateHandler(object? sender, EventArgs args) - { - deactivatable.DeactivateHandler -= DeactivateHandler; - await dispatcher.Invoke(contentDialog.Hide); - } - - deactivatable.DeactivateHandler += DeactivateHandler; - } - if (content is IActivated activated) { await activated.OnActivated(); @@ -101,8 +101,23 @@ public class ContentDialogHandler(IDispatcher dispatcher) : } } + async void HandleClosed(FluentAvalonia.UI.Controls.ContentDialog sender, + FluentAvalonia.UI.Controls.ContentDialogClosedEventArgs args) + { + contentDialog.Closed -= HandleClosed; + if (contentDialog.DataContext is object content) + { + if (content is IDeactivated deactivated) + { + await deactivated.OnDeactivated(); + } + } + } + contentDialog.Opened += HandleOpened; contentDialog.Closing += HandleClosing; + contentDialog.Closed += HandleClosed; + contentDialog.PrimaryButtonClick += HandlePrimaryButtonClick; contentDialog.SecondaryButtonClick += HandleSecondaryButtonClick; diff --git a/Toolkit.Foundation/AppService.cs b/Toolkit.Foundation/AppService.cs index dd3f5e4..72a551b 100644 --- a/Toolkit.Foundation/AppService.cs +++ b/Toolkit.Foundation/AppService.cs @@ -10,7 +10,7 @@ public class AppService(IEnumerable initializers, { foreach (IInitialization initializer in initializers) { - await initializer.Initialize(); + await initializer.OnInitialize(); } publisher.Publish(); diff --git a/Toolkit.Foundation/AsyncLock.cs b/Toolkit.Foundation/AsyncLock.cs index 0d6382e..a8f1e3b 100644 --- a/Toolkit.Foundation/AsyncLock.cs +++ b/Toolkit.Foundation/AsyncLock.cs @@ -6,13 +6,13 @@ public class ActivityLock(IActivityIndicator activityIndicator) : AsyncLock { public override TaskAwaiter GetAwaiter() { - activityIndicator.Active = true; + activityIndicator.IsActive = true; return base.GetAwaiter(); } public override void Dispose() { - activityIndicator.Active = false; + activityIndicator.IsActive = false; base.Dispose(); } } diff --git a/Toolkit.Foundation/ComponentHost.cs b/Toolkit.Foundation/ComponentHost.cs index e6cfb31..609fc68 100644 --- a/Toolkit.Foundation/ComponentHost.cs +++ b/Toolkit.Foundation/ComponentHost.cs @@ -23,7 +23,7 @@ public class ComponentHost(IServiceProvider services, { foreach (IInitialization initializer in initializers) { - await initializer.Initialize(); + await initializer.OnInitialize(); } foreach (IHostedService service in hostedServices) diff --git a/Toolkit.Foundation/ComponentInitializer.cs b/Toolkit.Foundation/ComponentInitializer.cs index f5c183e..37f6f2f 100644 --- a/Toolkit.Foundation/ComponentInitializer.cs +++ b/Toolkit.Foundation/ComponentInitializer.cs @@ -9,7 +9,7 @@ public class ComponentInitializer(IEnumerable components, IServiceProvider provider) : IInitialization { - public async Task Initialize() + public async Task OnInitialize() { foreach (IComponent component in components) { diff --git a/Toolkit.Foundation/ConfigurationInitializer.cs b/Toolkit.Foundation/ConfigurationInitializer.cs index c17b03c..a75cdc9 100644 --- a/Toolkit.Foundation/ConfigurationInitializer.cs +++ b/Toolkit.Foundation/ConfigurationInitializer.cs @@ -9,7 +9,7 @@ public class ConfigurationInitializer(IConfigurationReader { if (args is IInitialization initialization) { - initialization.Initialize(); + initialization.OnInitialize(); } }, descriptor.Key); diff --git a/Toolkit.Foundation/IActivated.cs b/Toolkit.Foundation/IActivated.cs index 3e00d74..d335a1e 100644 --- a/Toolkit.Foundation/IActivated.cs +++ b/Toolkit.Foundation/IActivated.cs @@ -3,9 +3,4 @@ public interface IActivated { Task OnActivated(); -} - -public interface IActivated -{ - Task Activated(TResult result); } \ No newline at end of file diff --git a/Toolkit.Foundation/IActivityIndicator.cs b/Toolkit.Foundation/IActivityIndicator.cs index 91968d0..aa25262 100644 --- a/Toolkit.Foundation/IActivityIndicator.cs +++ b/Toolkit.Foundation/IActivityIndicator.cs @@ -2,5 +2,5 @@ public interface IActivityIndicator { - bool Active { get; set; } + bool IsActive { get; set; } } \ No newline at end of file diff --git a/Toolkit.Foundation/IConfigurationInitializer.cs b/Toolkit.Foundation/IConfigurationInitializer.cs index a573f89..b8873af 100644 --- a/Toolkit.Foundation/IConfigurationInitializer.cs +++ b/Toolkit.Foundation/IConfigurationInitializer.cs @@ -4,5 +4,5 @@ public interface IConfigurationInitializer where TConfiguration : class { - Task Initialize(); + Task OnInitialize(); } \ No newline at end of file diff --git a/Toolkit.Foundation/IDeactivatable.cs b/Toolkit.Foundation/IDeactivatable.cs deleted file mode 100644 index 4a598ac..0000000 --- a/Toolkit.Foundation/IDeactivatable.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Toolkit.Foundation; - -public interface IDeactivatable -{ - public event EventHandler? DeactivateHandler; - - public Task Deactivate(); -} \ No newline at end of file diff --git a/Toolkit.Foundation/IDeactivating.cs b/Toolkit.Foundation/IDeactivating.cs index 78a0427..4b58970 100644 --- a/Toolkit.Foundation/IDeactivating.cs +++ b/Toolkit.Foundation/IDeactivating.cs @@ -3,9 +3,4 @@ public interface IDeactivating { Task OnDeactivating(); -} - -public interface IDeactivating -{ - Task Deactivating(); } \ No newline at end of file diff --git a/Toolkit.Foundation/IInitialization.cs b/Toolkit.Foundation/IInitialization.cs index 4c8c3b2..71c8733 100644 --- a/Toolkit.Foundation/IInitialization.cs +++ b/Toolkit.Foundation/IInitialization.cs @@ -2,10 +2,5 @@ public interface IInitialization { - Task Initialize(); -} - -public interface IInitialization -{ - Task Initialize(); + Task OnInitialize(); } \ No newline at end of file diff --git a/Toolkit.Foundation/Observable.cs b/Toolkit.Foundation/Observable.cs index 420c77c..38e0c11 100644 --- a/Toolkit.Foundation/Observable.cs +++ b/Toolkit.Foundation/Observable.cs @@ -15,7 +15,6 @@ public partial class Observable(IServiceProvider provider, IActivated, IDeactivating, IDeactivated, - IDeactivatable, IDisposable, IServiceProviderRequired, IServiceFactoryRequired, @@ -26,12 +25,10 @@ public partial class Observable(IServiceProvider provider, private readonly Dictionary trackedProperties = []; [ObservableProperty] - private bool active; + private bool isActive; [ObservableProperty] - private bool initialized; - - public event EventHandler? DeactivateHandler; + private bool isInitialized; public IDisposer Disposer { get; } = disposer; @@ -42,6 +39,7 @@ public partial class Observable(IServiceProvider provider, public IServiceProvider Provider { get; } = provider; public IPublisher Publisher { get; } = publisher; + public ISubscriber Subscriber { get; } = subscriber; public void Commit() @@ -52,36 +50,40 @@ public partial class Observable(IServiceProvider provider, } } - public Task Deactivate() - { - DeactivateHandler?.Invoke(this, new EventArgs()); - return Task.CompletedTask; - } - public virtual void Dispose() { GC.SuppressFinalize(this); Disposer.Dispose(this); } - public virtual Task Initialize() + public virtual Task OnInitialize() { - if (Initialized) + if (IsInitialized) { return Task.CompletedTask; } - Initialized = true; + IsInitialized = true; Subscriber.Subscribe(this); return Task.CompletedTask; } - public virtual Task OnActivated() => - Task.CompletedTask; + [ObservableProperty] + private bool isActivated; - public virtual Task OnDeactivated() => - Task.CompletedTask; + public virtual Task OnActivated() + { + IsActivated = true; + return Task.CompletedTask; + } + + + public virtual Task OnDeactivated() + { + IsActivated = false; + return Task.CompletedTask; + } public virtual Task OnDeactivating() => Task.CompletedTask; diff --git a/Toolkit.Foundation/ObservableCollection.cs b/Toolkit.Foundation/ObservableCollection.cs index 95283d6..28a7499 100644 --- a/Toolkit.Foundation/ObservableCollection.cs +++ b/Toolkit.Foundation/ObservableCollection.cs @@ -13,7 +13,6 @@ public partial class ObservableCollection : IActivated, IDeactivating, IDeactivated, - IDeactivatable, IList, IList, IReadOnlyList, @@ -42,16 +41,16 @@ public partial class ObservableCollection : private readonly Dictionary trackedProperties = []; - [ObservableProperty] - private bool activated; - - private bool clearing; - [ObservableProperty] private int count; [ObservableProperty] - private bool initialized; + private bool isActivated; + + private bool isClearing; + + [ObservableProperty] + private bool isInitialized; [ObservableProperty] private TItem? selectedItem; @@ -97,8 +96,6 @@ public partial class ObservableCollection : public event NotifyCollectionChangedEventHandler? CollectionChanged; - public event EventHandler? DeactivateHandler; - public IDisposer Disposer { get; private set; } public IServiceFactory Factory { get; private set; } @@ -154,7 +151,7 @@ public partial class ObservableCollection : { if (args is IInitialization initialization) { - initialization.Initialize(); + initialization.OnInitialize(); } }, parameters); @@ -210,7 +207,7 @@ public partial class ObservableCollection : public void Clear() { - clearing = true; + isClearing = true; foreach (TItem item in this.ToList()) { @@ -219,7 +216,7 @@ public partial class ObservableCollection : } ClearItems(); - clearing = false; + isClearing = false; } public void Commit() @@ -242,12 +239,6 @@ public partial class ObservableCollection : void ICollection.CopyTo(Array array, int index) => collection.CopyTo((TItem[])array, index); - public Task Deactivate() - { - DeactivateHandler?.Invoke(this, new EventArgs()); - return Task.CompletedTask; - } - public virtual void Dispose() { GC.SuppressFinalize(this); @@ -274,7 +265,7 @@ public partial class ObservableCollection : public Task Handle(RemoveEventArgs args) { - if (Activated) + if (IsActivated) { foreach (TItem item in this.ToList()) { @@ -294,7 +285,7 @@ public partial class ObservableCollection : public Task Handle(CreateEventArgs args) { - if (Activated) + if (IsActivated) { if (args.Sender is TItem item) { @@ -311,7 +302,7 @@ public partial class ObservableCollection : public Task Handle(InsertEventArgs args) { - if (Activated) + if (IsActivated) { if (args.Sender is TItem item) { @@ -328,7 +319,7 @@ public partial class ObservableCollection : public Task Handle(MoveToEventArgs args) { - if (Activated) + if (IsActivated) { Move(args.OldIndex, args.NewIndex); } @@ -342,7 +333,7 @@ public partial class ObservableCollection : public Task Handle(MoveEventArgs args) { - if (Activated) + if (IsActivated) { if (args.Sender is TItem item) { @@ -359,7 +350,7 @@ public partial class ObservableCollection : public Task Handle(ReplaceEventArgs args) { - if (Activated) + if (IsActivated) { if (args.Sender is TItem item) { @@ -376,7 +367,7 @@ public partial class ObservableCollection : public Task Handle(RemoveAtEventArgs args) { - if (Activated) + if (IsActivated) { int index = args.Index; if (index >= 0 && index <= Count - 1) @@ -403,21 +394,6 @@ public partial class ObservableCollection : IsCompatibleObject(value) ? IndexOf((TItem)value!) : -1; - public virtual Task Initialize() - { - if (Initialized) - { - return Task.CompletedTask; - } - - Initialized = true; - - Subscriber.Subscribe(this); - Synchronize(); - - return Task.CompletedTask; - } - public TItem Insert(int index = 0, params object?[] parameters) where T : @@ -427,7 +403,7 @@ public partial class ObservableCollection : { if (args is IInitialization initialization) { - initialization.Initialize(); + initialization.OnInitialize(); } }, parameters); @@ -504,7 +480,7 @@ public partial class ObservableCollection : public virtual Task OnActivated() { - Activated = true; + IsActivated = true; while (pendingEvents.Count > 0) { object current = pendingEvents.Dequeue(); @@ -516,13 +492,27 @@ public partial class ObservableCollection : public virtual Task OnDeactivated() { - Activated = false; + IsActivated = false; return Task.CompletedTask; } public virtual Task OnDeactivating() => Task.CompletedTask; + public virtual Task OnInitialize() + { + if (IsInitialized) + { + return Task.CompletedTask; + } + + IsInitialized = true; + + Subscriber.Subscribe(this); + Synchronize(); + + return Task.CompletedTask; + } public bool Remove(TItem item) { int index = collection.IndexOf(item); @@ -612,7 +602,7 @@ public partial class ObservableCollection : Disposer.Add(this, item); Disposer.Add(item, Disposable.Create(() => { - if (item is IRemovable && !clearing) + if (item is IRemovable && !isClearing) { if (item is IList collection) {