From 4f243eba2e6371f9570b4fad2a6fb2e1fc99a478 Mon Sep 17 00:00:00 2001 From: Daniel Clark Date: Sat, 10 Dec 2022 15:52:58 +0000 Subject: [PATCH] Wrap FluentAvalonia controls within same named classes allowing us to declare the xmlns namespace in our assembly --- Avalonia/Avalonia.csproj | 12 +++++++ Avalonia/ContentDialog/ContentDialog.cs | 8 +++++ Avalonia/Frame/Frame.cs | 8 +++++ Avalonia/NavigationView/NavigationView.cs | 8 +++++ Avalonia/NavigationView/NavigationViewItem.cs | 8 +++++ Avalonia/Properties/Assembly.cs | 3 ++ .../Avalonia/Avalonia.csproj | 4 ++- .../Extensions/EventArgsExtensions.cs | 0 .../Extensions/IHostBuilderExtensions.cs | 5 +-- .../IServiceCollectionExtensions.cs | 0 .../Avalonia}/Extensions/MarkupExtensions.cs | 0 .../Extensions/PropertyPathHelper..cs | 0 .../Avalonia}/Markups/CompositeExtension.cs | 0 .../Markups/EventParameterExtension.cs | 0 .../Avalonia}/Markups/InvokeExtension.cs | 0 .../Avalonia}/Markups/NavigateExtension.cs | 0 .../Markups/NavigationRouteExtension.cs | 0 .../Markups/ParameterBindingExtension.cs | 0 .../Avalonia}/Markups/TriggerCollection.cs | 0 .../Avalonia}/Markups/TriggerExtension.cs | 0 .../Navigation/ContentControlNavigation.cs | 0 .../ContentControlNavigationHandler.cs | 0 .../Navigation/ContentDialogNavigation.cs | 0 .../ContentDialogNavigationHandler.cs | 11 +----- .../Avalonia}/Navigation/FrameNavigation.cs | 0 .../Navigation/FrameNavigationHandler.cs | 0 .../Navigation/NavigateBackHandler.cs | 0 .../Avalonia}/Navigation/NavigateHandler.cs | 27 +++++++++----- .../Avalonia}/Navigation/Navigation.cs | 0 .../Navigation/NavigationPageFactory.cs | 0 .../Navigation/NavigationRouteHandler.cs | 0 .../Avalonia}/Properties/Assembly.cs | 0 .../Avalonia}/Templates/TemplateSelector.cs | 0 .../Configurations/ConfigurationChanged.cs | 0 .../ConfigurationInitializer.cs | 0 .../Configurations/ConfigurationWriter.cs | 0 .../Configurations/IConfigurationWriter.cs | 0 .../IWritableConfigurationProvider.cs | 0 .../IWritableJsonConfigurationBuilder.cs | 0 .../IWritableJsonConfigurationDescriptor.cs | 0 .../WritableJsonConfigurationBuilder.cs | 0 .../WritableJsonConfigurationDescriptor.cs | 0 .../WritableJsonConfigurationExtensions.cs | 0 .../WritableJsonConfigurationFile.cs | 0 .../WritableJsonConfigurationProvider.cs | 0 .../WritableJsonConfigurationSource.cs | 0 .../Foundation}/Configurations/Write.cs | 0 .../Configurations/WriteHandler.cs | 0 .../Extensions/IHostBuilderExtensions.cs | 0 .../IServiceCollectionExtensions.cs | 1 + .../Extensions/IServiceFactoryExtensions.cs | 0 .../Foundation/Foundation.csproj | 2 ++ .../Foundation}/Lifecycles/AppService.cs | 0 .../Foundation}/Lifecycles/ICache.cs | 0 .../Foundation}/Lifecycles/IInitializable.cs | 0 .../Foundation}/Lifecycles/IInitialization.cs | 0 .../Foundation}/Lifecycles/Initialization.cs | 0 .../Foundation}/Lifecycles/Initialize.cs | 0 .../Lifecycles/InitializeHandler.cs | 0 .../Foundation}/Lifecycles/Initialized.cs | 0 .../Foundation}/Navigation/IEventParameter.cs | 0 .../Navigation/INavigationConfirmation.cs | 13 +++++++ .../Navigation/INavigationRouteDescriptor.cs | 0 .../INavigationRouteDescriptorCollection.cs | 0 .../Foundation}/Navigation/IParameter.cs | 0 .../Foundation}/Navigation/Navigate.cs | 0 .../Foundation}/Navigation/NavigateBack.cs | 0 .../Foundation}/Navigation/NavigationRoute.cs | 0 .../Navigation/NavigationRouteDescriptor.cs | 0 .../NavigationRouteDescriptorCollection.cs | 0 .../Foundation}/Services/IServiceCreator.cs | 0 .../Foundation}/Services/IServiceFactory.cs | 0 .../Foundation}/Services/ServiceCreator.cs | 0 .../Foundation}/Services/ServiceFactory.cs | 0 .../Services/ServiceFactoryDescriptor.cs | 0 .../Templates/INamedDataTemplateFactory.cs | 0 .../Templates/INamedTemplateFactory.cs | 0 .../Foundation}/Templates/ITemplateBuilder.cs | 0 .../Templates/ITemplateDescriptor.cs | 2 +- .../Templates/ITemplateDescriptorProvider.cs | 0 .../Foundation}/Templates/ITemplateFactory.cs | 0 .../Templates/ITemplateSelector.cs | 0 .../Templates/ITypedDataTemplateFactory.cs | 0 .../Templates/NamedDataTemplateFactory.cs | 2 +- .../Templates/NamedTemplateFactory.cs | 0 .../Foundation}/Templates/TemplateBuilder.cs | 0 .../Templates/TemplateDescriptor.cs | 4 +-- .../Templates/TemplateDescriptorProvider.cs | 4 +-- .../Foundation}/Templates/TemplateFactory.cs | 0 .../Templates/TypedDataTemplateFactory.cs | 4 +-- .../Navigation/INavigationConfirmation.cs | 7 ---- .../INavigationConfirmationAsync.cs | 8 ----- Toolkit.Foundation/Navigation/Navigated.cs | 30 ---------------- Toolkit.sln | 35 +++++++++++++------ 94 files changed, 121 insertions(+), 85 deletions(-) create mode 100644 Avalonia/Avalonia.csproj create mode 100644 Avalonia/ContentDialog/ContentDialog.cs create mode 100644 Avalonia/Frame/Frame.cs create mode 100644 Avalonia/NavigationView/NavigationView.cs create mode 100644 Avalonia/NavigationView/NavigationViewItem.cs create mode 100644 Avalonia/Properties/Assembly.cs rename Toolkit.Foundation.Avalonia/Toolkit.Foundation.Avalonia.csproj => Framework/Avalonia/Avalonia.csproj (72%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Extensions/EventArgsExtensions.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Extensions/IHostBuilderExtensions.cs (91%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Extensions/IServiceCollectionExtensions.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Extensions/MarkupExtensions.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Extensions/PropertyPathHelper..cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Markups/CompositeExtension.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Markups/EventParameterExtension.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Markups/InvokeExtension.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Markups/NavigateExtension.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Markups/NavigationRouteExtension.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Markups/ParameterBindingExtension.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Markups/TriggerCollection.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Markups/TriggerExtension.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Navigation/ContentControlNavigation.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Navigation/ContentControlNavigationHandler.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Navigation/ContentDialogNavigation.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Navigation/ContentDialogNavigationHandler.cs (81%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Navigation/FrameNavigation.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Navigation/FrameNavigationHandler.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Navigation/NavigateBackHandler.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Navigation/NavigateHandler.cs (78%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Navigation/Navigation.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Navigation/NavigationPageFactory.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Navigation/NavigationRouteHandler.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Properties/Assembly.cs (100%) rename {Toolkit.Foundation.Avalonia => Framework/Avalonia}/Templates/TemplateSelector.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Configurations/ConfigurationChanged.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Configurations/ConfigurationInitializer.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Configurations/ConfigurationWriter.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Configurations/IConfigurationWriter.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Configurations/IWritableConfigurationProvider.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Configurations/IWritableJsonConfigurationBuilder.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Configurations/IWritableJsonConfigurationDescriptor.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Configurations/WritableJsonConfigurationBuilder.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Configurations/WritableJsonConfigurationDescriptor.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Configurations/WritableJsonConfigurationExtensions.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Configurations/WritableJsonConfigurationFile.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Configurations/WritableJsonConfigurationProvider.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Configurations/WritableJsonConfigurationSource.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Configurations/Write.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Configurations/WriteHandler.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Extensions/IHostBuilderExtensions.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Extensions/IServiceCollectionExtensions.cs (99%) rename {Toolkit.Foundation => Framework/Foundation}/Extensions/IServiceFactoryExtensions.cs (100%) rename Toolkit.Foundation/Toolkit.Foundation.csproj => Framework/Foundation/Foundation.csproj (88%) rename {Toolkit.Foundation => Framework/Foundation}/Lifecycles/AppService.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Lifecycles/ICache.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Lifecycles/IInitializable.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Lifecycles/IInitialization.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Lifecycles/Initialization.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Lifecycles/Initialize.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Lifecycles/InitializeHandler.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Lifecycles/Initialized.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Navigation/IEventParameter.cs (100%) create mode 100644 Framework/Foundation/Navigation/INavigationConfirmation.cs rename {Toolkit.Foundation => Framework/Foundation}/Navigation/INavigationRouteDescriptor.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Navigation/INavigationRouteDescriptorCollection.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Navigation/IParameter.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Navigation/Navigate.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Navigation/NavigateBack.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Navigation/NavigationRoute.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Navigation/NavigationRouteDescriptor.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Navigation/NavigationRouteDescriptorCollection.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Services/IServiceCreator.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Services/IServiceFactory.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Services/ServiceCreator.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Services/ServiceFactory.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Services/ServiceFactoryDescriptor.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Templates/INamedDataTemplateFactory.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Templates/INamedTemplateFactory.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Templates/ITemplateBuilder.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Templates/ITemplateDescriptor.cs (87%) rename {Toolkit.Foundation => Framework/Foundation}/Templates/ITemplateDescriptorProvider.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Templates/ITemplateFactory.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Templates/ITemplateSelector.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Templates/ITypedDataTemplateFactory.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Templates/NamedDataTemplateFactory.cs (91%) rename {Toolkit.Foundation => Framework/Foundation}/Templates/NamedTemplateFactory.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Templates/TemplateBuilder.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Templates/TemplateDescriptor.cs (88%) rename {Toolkit.Foundation => Framework/Foundation}/Templates/TemplateDescriptorProvider.cs (81%) rename {Toolkit.Foundation => Framework/Foundation}/Templates/TemplateFactory.cs (100%) rename {Toolkit.Foundation => Framework/Foundation}/Templates/TypedDataTemplateFactory.cs (82%) delete mode 100644 Toolkit.Foundation/Navigation/INavigationConfirmation.cs delete mode 100644 Toolkit.Foundation/Navigation/INavigationConfirmationAsync.cs delete mode 100644 Toolkit.Foundation/Navigation/Navigated.cs diff --git a/Avalonia/Avalonia.csproj b/Avalonia/Avalonia.csproj new file mode 100644 index 0000000..312672e --- /dev/null +++ b/Avalonia/Avalonia.csproj @@ -0,0 +1,12 @@ + + + net7.0 + enable + enable + Toolkit.Controls.Avalonia + Toolkit.Controls.Avalonia + + + + + \ No newline at end of file diff --git a/Avalonia/ContentDialog/ContentDialog.cs b/Avalonia/ContentDialog/ContentDialog.cs new file mode 100644 index 0000000..3d2f7c6 --- /dev/null +++ b/Avalonia/ContentDialog/ContentDialog.cs @@ -0,0 +1,8 @@ +using Avalonia.Styling; + +namespace Toolkit.Controls.Avalonia; + +public class ContentDialog : FluentAvalonia.UI.Controls.ContentDialog, IStyleable +{ + Type IStyleable.StyleKey => typeof(FluentAvalonia.UI.Controls.ContentDialog); +} \ No newline at end of file diff --git a/Avalonia/Frame/Frame.cs b/Avalonia/Frame/Frame.cs new file mode 100644 index 0000000..338ac19 --- /dev/null +++ b/Avalonia/Frame/Frame.cs @@ -0,0 +1,8 @@ +using Avalonia.Styling; + +namespace Toolkit.Controls.Avalonia; + +public class Frame : FluentAvalonia.UI.Controls.Frame, IStyleable +{ + Type IStyleable.StyleKey => typeof(FluentAvalonia.UI.Controls.Frame); +} \ No newline at end of file diff --git a/Avalonia/NavigationView/NavigationView.cs b/Avalonia/NavigationView/NavigationView.cs new file mode 100644 index 0000000..45ef5ed --- /dev/null +++ b/Avalonia/NavigationView/NavigationView.cs @@ -0,0 +1,8 @@ +using Avalonia.Styling; + +namespace Toolkit.Controls.Avalonia; + +public class NavigationView : FluentAvalonia.UI.Controls.NavigationView, IStyleable +{ + Type IStyleable.StyleKey => typeof(FluentAvalonia.UI.Controls.NavigationView); +} diff --git a/Avalonia/NavigationView/NavigationViewItem.cs b/Avalonia/NavigationView/NavigationViewItem.cs new file mode 100644 index 0000000..0da829c --- /dev/null +++ b/Avalonia/NavigationView/NavigationViewItem.cs @@ -0,0 +1,8 @@ +using Avalonia.Styling; + +namespace Toolkit.Controls.Avalonia; + +public class NavigationViewItem : FluentAvalonia.UI.Controls.NavigationViewItem, IStyleable +{ + Type IStyleable.StyleKey => typeof(FluentAvalonia.UI.Controls.NavigationViewItem); +} \ No newline at end of file diff --git a/Avalonia/Properties/Assembly.cs b/Avalonia/Properties/Assembly.cs new file mode 100644 index 0000000..728e2ac --- /dev/null +++ b/Avalonia/Properties/Assembly.cs @@ -0,0 +1,3 @@ +using Avalonia.Metadata; + +[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Toolkit.Controls.Avalonia")] diff --git a/Toolkit.Foundation.Avalonia/Toolkit.Foundation.Avalonia.csproj b/Framework/Avalonia/Avalonia.csproj similarity index 72% rename from Toolkit.Foundation.Avalonia/Toolkit.Foundation.Avalonia.csproj rename to Framework/Avalonia/Avalonia.csproj index dae5e10..a2edd3d 100644 --- a/Toolkit.Foundation.Avalonia/Toolkit.Foundation.Avalonia.csproj +++ b/Framework/Avalonia/Avalonia.csproj @@ -4,6 +4,8 @@ net7.0 enable enable + Toolkit.Foundation.Avalonia + Toolkit.Foundation.Avalonia @@ -13,7 +15,7 @@ - + diff --git a/Toolkit.Foundation.Avalonia/Extensions/EventArgsExtensions.cs b/Framework/Avalonia/Extensions/EventArgsExtensions.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Extensions/EventArgsExtensions.cs rename to Framework/Avalonia/Extensions/EventArgsExtensions.cs diff --git a/Toolkit.Foundation.Avalonia/Extensions/IHostBuilderExtensions.cs b/Framework/Avalonia/Extensions/IHostBuilderExtensions.cs similarity index 91% rename from Toolkit.Foundation.Avalonia/Extensions/IHostBuilderExtensions.cs rename to Framework/Avalonia/Extensions/IHostBuilderExtensions.cs index 68249f1..71b2199 100644 --- a/Toolkit.Foundation.Avalonia/Extensions/IHostBuilderExtensions.cs +++ b/Framework/Avalonia/Extensions/IHostBuilderExtensions.cs @@ -1,4 +1,5 @@ -using Microsoft.Extensions.DependencyInjection; +using Mediator; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Hosting; @@ -24,7 +25,7 @@ namespace Toolkit.Foundation.Avalonia foreach (ITemplateDescriptor? descriptor in builder.Descriptors) { serviceCollection.Add(new ServiceDescriptor(descriptor.TemplateType, descriptor.TemplateType, descriptor.Lifetime)); - serviceCollection.Add(new ServiceDescriptor(descriptor.DataType, descriptor.DataType, descriptor.Lifetime)); + serviceCollection.Add(new ServiceDescriptor(descriptor.ContentType, descriptor.ContentType, descriptor.Lifetime)); } }); diff --git a/Toolkit.Foundation.Avalonia/Extensions/IServiceCollectionExtensions.cs b/Framework/Avalonia/Extensions/IServiceCollectionExtensions.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Extensions/IServiceCollectionExtensions.cs rename to Framework/Avalonia/Extensions/IServiceCollectionExtensions.cs diff --git a/Toolkit.Foundation.Avalonia/Extensions/MarkupExtensions.cs b/Framework/Avalonia/Extensions/MarkupExtensions.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Extensions/MarkupExtensions.cs rename to Framework/Avalonia/Extensions/MarkupExtensions.cs diff --git a/Toolkit.Foundation.Avalonia/Extensions/PropertyPathHelper..cs b/Framework/Avalonia/Extensions/PropertyPathHelper..cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Extensions/PropertyPathHelper..cs rename to Framework/Avalonia/Extensions/PropertyPathHelper..cs diff --git a/Toolkit.Foundation.Avalonia/Markups/CompositeExtension.cs b/Framework/Avalonia/Markups/CompositeExtension.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Markups/CompositeExtension.cs rename to Framework/Avalonia/Markups/CompositeExtension.cs diff --git a/Toolkit.Foundation.Avalonia/Markups/EventParameterExtension.cs b/Framework/Avalonia/Markups/EventParameterExtension.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Markups/EventParameterExtension.cs rename to Framework/Avalonia/Markups/EventParameterExtension.cs diff --git a/Toolkit.Foundation.Avalonia/Markups/InvokeExtension.cs b/Framework/Avalonia/Markups/InvokeExtension.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Markups/InvokeExtension.cs rename to Framework/Avalonia/Markups/InvokeExtension.cs diff --git a/Toolkit.Foundation.Avalonia/Markups/NavigateExtension.cs b/Framework/Avalonia/Markups/NavigateExtension.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Markups/NavigateExtension.cs rename to Framework/Avalonia/Markups/NavigateExtension.cs diff --git a/Toolkit.Foundation.Avalonia/Markups/NavigationRouteExtension.cs b/Framework/Avalonia/Markups/NavigationRouteExtension.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Markups/NavigationRouteExtension.cs rename to Framework/Avalonia/Markups/NavigationRouteExtension.cs diff --git a/Toolkit.Foundation.Avalonia/Markups/ParameterBindingExtension.cs b/Framework/Avalonia/Markups/ParameterBindingExtension.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Markups/ParameterBindingExtension.cs rename to Framework/Avalonia/Markups/ParameterBindingExtension.cs diff --git a/Toolkit.Foundation.Avalonia/Markups/TriggerCollection.cs b/Framework/Avalonia/Markups/TriggerCollection.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Markups/TriggerCollection.cs rename to Framework/Avalonia/Markups/TriggerCollection.cs diff --git a/Toolkit.Foundation.Avalonia/Markups/TriggerExtension.cs b/Framework/Avalonia/Markups/TriggerExtension.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Markups/TriggerExtension.cs rename to Framework/Avalonia/Markups/TriggerExtension.cs diff --git a/Toolkit.Foundation.Avalonia/Navigation/ContentControlNavigation.cs b/Framework/Avalonia/Navigation/ContentControlNavigation.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Navigation/ContentControlNavigation.cs rename to Framework/Avalonia/Navigation/ContentControlNavigation.cs diff --git a/Toolkit.Foundation.Avalonia/Navigation/ContentControlNavigationHandler.cs b/Framework/Avalonia/Navigation/ContentControlNavigationHandler.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Navigation/ContentControlNavigationHandler.cs rename to Framework/Avalonia/Navigation/ContentControlNavigationHandler.cs diff --git a/Toolkit.Foundation.Avalonia/Navigation/ContentDialogNavigation.cs b/Framework/Avalonia/Navigation/ContentDialogNavigation.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Navigation/ContentDialogNavigation.cs rename to Framework/Avalonia/Navigation/ContentDialogNavigation.cs diff --git a/Toolkit.Foundation.Avalonia/Navigation/ContentDialogNavigationHandler.cs b/Framework/Avalonia/Navigation/ContentDialogNavigationHandler.cs similarity index 81% rename from Toolkit.Foundation.Avalonia/Navigation/ContentDialogNavigationHandler.cs rename to Framework/Avalonia/Navigation/ContentDialogNavigationHandler.cs index edbacaf..6b020f1 100644 --- a/Toolkit.Foundation.Avalonia/Navigation/ContentDialogNavigationHandler.cs +++ b/Framework/Avalonia/Navigation/ContentDialogNavigationHandler.cs @@ -12,18 +12,9 @@ namespace Toolkit.Foundation.Avalonia async void HandleButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args) { ContentDialogButtonClickDeferral defferal = args.GetDeferral(); - - if (sender.DataContext is INavigationConfirmationAsync confirmationAsync) - { - if (!await confirmationAsync.CanConfirmAsync()) - { - args.Cancel = true; - } - } - if (sender.DataContext is INavigationConfirmation confirmation) { - if (!confirmation.CanConfirm()) + if (!await confirmation.CanConfirm()) { args.Cancel = true; } diff --git a/Toolkit.Foundation.Avalonia/Navigation/FrameNavigation.cs b/Framework/Avalonia/Navigation/FrameNavigation.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Navigation/FrameNavigation.cs rename to Framework/Avalonia/Navigation/FrameNavigation.cs diff --git a/Toolkit.Foundation.Avalonia/Navigation/FrameNavigationHandler.cs b/Framework/Avalonia/Navigation/FrameNavigationHandler.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Navigation/FrameNavigationHandler.cs rename to Framework/Avalonia/Navigation/FrameNavigationHandler.cs diff --git a/Toolkit.Foundation.Avalonia/Navigation/NavigateBackHandler.cs b/Framework/Avalonia/Navigation/NavigateBackHandler.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Navigation/NavigateBackHandler.cs rename to Framework/Avalonia/Navigation/NavigateBackHandler.cs diff --git a/Toolkit.Foundation.Avalonia/Navigation/NavigateHandler.cs b/Framework/Avalonia/Navigation/NavigateHandler.cs similarity index 78% rename from Toolkit.Foundation.Avalonia/Navigation/NavigateHandler.cs rename to Framework/Avalonia/Navigation/NavigateHandler.cs index 8fb5960..7be55a6 100644 --- a/Toolkit.Foundation.Avalonia/Navigation/NavigateHandler.cs +++ b/Framework/Avalonia/Navigation/NavigateHandler.cs @@ -65,29 +65,38 @@ namespace Toolkit.Foundation.Avalonia if (template is not null) { - object? route = null; + object? target = null; if (descriptors.FirstOrDefault(x => request.Route is string { } name && name == x.Name) is NavigationRouteDescriptor descriptor) { - route = descriptor.Route; + target = descriptor.Route; } else { - route = template; + target = template; } - if (route is Frame frame) + bool hasNavigated = false; + if (target is Frame frame) { - await mediator.Send(new FrameNavigation(frame, content, template, keyedParameters)); + hasNavigated = await mediator.Send(new FrameNavigation(frame, content, template, keyedParameters)); } - if (route is ContentDialog dialog) + if (target is ContentDialog dialog) { - await mediator.Send(new ContentDialogNavigation(dialog, content, template, keyedParameters)); + hasNavigated = await mediator.Send(new ContentDialogNavigation(dialog, content, template, keyedParameters)); } - if (route is ContentControl contentControl) + if (target is ContentControl contentControl) { - await mediator.Send(new ContentControlNavigation(contentControl, content, template, keyedParameters)); + hasNavigated = await mediator.Send(new ContentControlNavigation(contentControl, content, template, keyedParameters)); + } + + if (hasNavigated) + { + if (content is INavigated navigated) + { + await navigated.Navigated(); + } } } else diff --git a/Toolkit.Foundation.Avalonia/Navigation/Navigation.cs b/Framework/Avalonia/Navigation/Navigation.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Navigation/Navigation.cs rename to Framework/Avalonia/Navigation/Navigation.cs diff --git a/Toolkit.Foundation.Avalonia/Navigation/NavigationPageFactory.cs b/Framework/Avalonia/Navigation/NavigationPageFactory.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Navigation/NavigationPageFactory.cs rename to Framework/Avalonia/Navigation/NavigationPageFactory.cs diff --git a/Toolkit.Foundation.Avalonia/Navigation/NavigationRouteHandler.cs b/Framework/Avalonia/Navigation/NavigationRouteHandler.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Navigation/NavigationRouteHandler.cs rename to Framework/Avalonia/Navigation/NavigationRouteHandler.cs diff --git a/Toolkit.Foundation.Avalonia/Properties/Assembly.cs b/Framework/Avalonia/Properties/Assembly.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Properties/Assembly.cs rename to Framework/Avalonia/Properties/Assembly.cs diff --git a/Toolkit.Foundation.Avalonia/Templates/TemplateSelector.cs b/Framework/Avalonia/Templates/TemplateSelector.cs similarity index 100% rename from Toolkit.Foundation.Avalonia/Templates/TemplateSelector.cs rename to Framework/Avalonia/Templates/TemplateSelector.cs diff --git a/Toolkit.Foundation/Configurations/ConfigurationChanged.cs b/Framework/Foundation/Configurations/ConfigurationChanged.cs similarity index 100% rename from Toolkit.Foundation/Configurations/ConfigurationChanged.cs rename to Framework/Foundation/Configurations/ConfigurationChanged.cs diff --git a/Toolkit.Foundation/Configurations/ConfigurationInitializer.cs b/Framework/Foundation/Configurations/ConfigurationInitializer.cs similarity index 100% rename from Toolkit.Foundation/Configurations/ConfigurationInitializer.cs rename to Framework/Foundation/Configurations/ConfigurationInitializer.cs diff --git a/Toolkit.Foundation/Configurations/ConfigurationWriter.cs b/Framework/Foundation/Configurations/ConfigurationWriter.cs similarity index 100% rename from Toolkit.Foundation/Configurations/ConfigurationWriter.cs rename to Framework/Foundation/Configurations/ConfigurationWriter.cs diff --git a/Toolkit.Foundation/Configurations/IConfigurationWriter.cs b/Framework/Foundation/Configurations/IConfigurationWriter.cs similarity index 100% rename from Toolkit.Foundation/Configurations/IConfigurationWriter.cs rename to Framework/Foundation/Configurations/IConfigurationWriter.cs diff --git a/Toolkit.Foundation/Configurations/IWritableConfigurationProvider.cs b/Framework/Foundation/Configurations/IWritableConfigurationProvider.cs similarity index 100% rename from Toolkit.Foundation/Configurations/IWritableConfigurationProvider.cs rename to Framework/Foundation/Configurations/IWritableConfigurationProvider.cs diff --git a/Toolkit.Foundation/Configurations/IWritableJsonConfigurationBuilder.cs b/Framework/Foundation/Configurations/IWritableJsonConfigurationBuilder.cs similarity index 100% rename from Toolkit.Foundation/Configurations/IWritableJsonConfigurationBuilder.cs rename to Framework/Foundation/Configurations/IWritableJsonConfigurationBuilder.cs diff --git a/Toolkit.Foundation/Configurations/IWritableJsonConfigurationDescriptor.cs b/Framework/Foundation/Configurations/IWritableJsonConfigurationDescriptor.cs similarity index 100% rename from Toolkit.Foundation/Configurations/IWritableJsonConfigurationDescriptor.cs rename to Framework/Foundation/Configurations/IWritableJsonConfigurationDescriptor.cs diff --git a/Toolkit.Foundation/Configurations/WritableJsonConfigurationBuilder.cs b/Framework/Foundation/Configurations/WritableJsonConfigurationBuilder.cs similarity index 100% rename from Toolkit.Foundation/Configurations/WritableJsonConfigurationBuilder.cs rename to Framework/Foundation/Configurations/WritableJsonConfigurationBuilder.cs diff --git a/Toolkit.Foundation/Configurations/WritableJsonConfigurationDescriptor.cs b/Framework/Foundation/Configurations/WritableJsonConfigurationDescriptor.cs similarity index 100% rename from Toolkit.Foundation/Configurations/WritableJsonConfigurationDescriptor.cs rename to Framework/Foundation/Configurations/WritableJsonConfigurationDescriptor.cs diff --git a/Toolkit.Foundation/Configurations/WritableJsonConfigurationExtensions.cs b/Framework/Foundation/Configurations/WritableJsonConfigurationExtensions.cs similarity index 100% rename from Toolkit.Foundation/Configurations/WritableJsonConfigurationExtensions.cs rename to Framework/Foundation/Configurations/WritableJsonConfigurationExtensions.cs diff --git a/Toolkit.Foundation/Configurations/WritableJsonConfigurationFile.cs b/Framework/Foundation/Configurations/WritableJsonConfigurationFile.cs similarity index 100% rename from Toolkit.Foundation/Configurations/WritableJsonConfigurationFile.cs rename to Framework/Foundation/Configurations/WritableJsonConfigurationFile.cs diff --git a/Toolkit.Foundation/Configurations/WritableJsonConfigurationProvider.cs b/Framework/Foundation/Configurations/WritableJsonConfigurationProvider.cs similarity index 100% rename from Toolkit.Foundation/Configurations/WritableJsonConfigurationProvider.cs rename to Framework/Foundation/Configurations/WritableJsonConfigurationProvider.cs diff --git a/Toolkit.Foundation/Configurations/WritableJsonConfigurationSource.cs b/Framework/Foundation/Configurations/WritableJsonConfigurationSource.cs similarity index 100% rename from Toolkit.Foundation/Configurations/WritableJsonConfigurationSource.cs rename to Framework/Foundation/Configurations/WritableJsonConfigurationSource.cs diff --git a/Toolkit.Foundation/Configurations/Write.cs b/Framework/Foundation/Configurations/Write.cs similarity index 100% rename from Toolkit.Foundation/Configurations/Write.cs rename to Framework/Foundation/Configurations/Write.cs diff --git a/Toolkit.Foundation/Configurations/WriteHandler.cs b/Framework/Foundation/Configurations/WriteHandler.cs similarity index 100% rename from Toolkit.Foundation/Configurations/WriteHandler.cs rename to Framework/Foundation/Configurations/WriteHandler.cs diff --git a/Toolkit.Foundation/Extensions/IHostBuilderExtensions.cs b/Framework/Foundation/Extensions/IHostBuilderExtensions.cs similarity index 100% rename from Toolkit.Foundation/Extensions/IHostBuilderExtensions.cs rename to Framework/Foundation/Extensions/IHostBuilderExtensions.cs diff --git a/Toolkit.Foundation/Extensions/IServiceCollectionExtensions.cs b/Framework/Foundation/Extensions/IServiceCollectionExtensions.cs similarity index 99% rename from Toolkit.Foundation/Extensions/IServiceCollectionExtensions.cs rename to Framework/Foundation/Extensions/IServiceCollectionExtensions.cs index e6c737a..975c3d2 100644 --- a/Toolkit.Foundation/Extensions/IServiceCollectionExtensions.cs +++ b/Framework/Foundation/Extensions/IServiceCollectionExtensions.cs @@ -11,6 +11,7 @@ public static class IServiceCollectionExtensions return serviceCollection; } + public static IServiceCollection AddFoundation(this IServiceCollection serviceCollection) { serviceCollection.AddSingleton(provider => new ServiceFactory(provider.GetService, (instanceType, parameters) => ActivatorUtilities.CreateInstance(provider, instanceType, parameters!))) diff --git a/Toolkit.Foundation/Extensions/IServiceFactoryExtensions.cs b/Framework/Foundation/Extensions/IServiceFactoryExtensions.cs similarity index 100% rename from Toolkit.Foundation/Extensions/IServiceFactoryExtensions.cs rename to Framework/Foundation/Extensions/IServiceFactoryExtensions.cs diff --git a/Toolkit.Foundation/Toolkit.Foundation.csproj b/Framework/Foundation/Foundation.csproj similarity index 88% rename from Toolkit.Foundation/Toolkit.Foundation.csproj rename to Framework/Foundation/Foundation.csproj index 72e5a1a..cf587bd 100644 --- a/Toolkit.Foundation/Toolkit.Foundation.csproj +++ b/Framework/Foundation/Foundation.csproj @@ -4,6 +4,8 @@ net7.0 enable enable + Toolkit.Foundation + Toolkit.Foundation diff --git a/Toolkit.Foundation/Lifecycles/AppService.cs b/Framework/Foundation/Lifecycles/AppService.cs similarity index 100% rename from Toolkit.Foundation/Lifecycles/AppService.cs rename to Framework/Foundation/Lifecycles/AppService.cs diff --git a/Toolkit.Foundation/Lifecycles/ICache.cs b/Framework/Foundation/Lifecycles/ICache.cs similarity index 100% rename from Toolkit.Foundation/Lifecycles/ICache.cs rename to Framework/Foundation/Lifecycles/ICache.cs diff --git a/Toolkit.Foundation/Lifecycles/IInitializable.cs b/Framework/Foundation/Lifecycles/IInitializable.cs similarity index 100% rename from Toolkit.Foundation/Lifecycles/IInitializable.cs rename to Framework/Foundation/Lifecycles/IInitializable.cs diff --git a/Toolkit.Foundation/Lifecycles/IInitialization.cs b/Framework/Foundation/Lifecycles/IInitialization.cs similarity index 100% rename from Toolkit.Foundation/Lifecycles/IInitialization.cs rename to Framework/Foundation/Lifecycles/IInitialization.cs diff --git a/Toolkit.Foundation/Lifecycles/Initialization.cs b/Framework/Foundation/Lifecycles/Initialization.cs similarity index 100% rename from Toolkit.Foundation/Lifecycles/Initialization.cs rename to Framework/Foundation/Lifecycles/Initialization.cs diff --git a/Toolkit.Foundation/Lifecycles/Initialize.cs b/Framework/Foundation/Lifecycles/Initialize.cs similarity index 100% rename from Toolkit.Foundation/Lifecycles/Initialize.cs rename to Framework/Foundation/Lifecycles/Initialize.cs diff --git a/Toolkit.Foundation/Lifecycles/InitializeHandler.cs b/Framework/Foundation/Lifecycles/InitializeHandler.cs similarity index 100% rename from Toolkit.Foundation/Lifecycles/InitializeHandler.cs rename to Framework/Foundation/Lifecycles/InitializeHandler.cs diff --git a/Toolkit.Foundation/Lifecycles/Initialized.cs b/Framework/Foundation/Lifecycles/Initialized.cs similarity index 100% rename from Toolkit.Foundation/Lifecycles/Initialized.cs rename to Framework/Foundation/Lifecycles/Initialized.cs diff --git a/Toolkit.Foundation/Navigation/IEventParameter.cs b/Framework/Foundation/Navigation/IEventParameter.cs similarity index 100% rename from Toolkit.Foundation/Navigation/IEventParameter.cs rename to Framework/Foundation/Navigation/IEventParameter.cs diff --git a/Framework/Foundation/Navigation/INavigationConfirmation.cs b/Framework/Foundation/Navigation/INavigationConfirmation.cs new file mode 100644 index 0000000..2d8737c --- /dev/null +++ b/Framework/Foundation/Navigation/INavigationConfirmation.cs @@ -0,0 +1,13 @@ + +namespace Toolkit.Foundation +{ + public interface INavigationConfirmation + { + ValueTask CanConfirm(); + } + + public interface INavigated + { + ValueTask Navigated(); + } +} \ No newline at end of file diff --git a/Toolkit.Foundation/Navigation/INavigationRouteDescriptor.cs b/Framework/Foundation/Navigation/INavigationRouteDescriptor.cs similarity index 100% rename from Toolkit.Foundation/Navigation/INavigationRouteDescriptor.cs rename to Framework/Foundation/Navigation/INavigationRouteDescriptor.cs diff --git a/Toolkit.Foundation/Navigation/INavigationRouteDescriptorCollection.cs b/Framework/Foundation/Navigation/INavigationRouteDescriptorCollection.cs similarity index 100% rename from Toolkit.Foundation/Navigation/INavigationRouteDescriptorCollection.cs rename to Framework/Foundation/Navigation/INavigationRouteDescriptorCollection.cs diff --git a/Toolkit.Foundation/Navigation/IParameter.cs b/Framework/Foundation/Navigation/IParameter.cs similarity index 100% rename from Toolkit.Foundation/Navigation/IParameter.cs rename to Framework/Foundation/Navigation/IParameter.cs diff --git a/Toolkit.Foundation/Navigation/Navigate.cs b/Framework/Foundation/Navigation/Navigate.cs similarity index 100% rename from Toolkit.Foundation/Navigation/Navigate.cs rename to Framework/Foundation/Navigation/Navigate.cs diff --git a/Toolkit.Foundation/Navigation/NavigateBack.cs b/Framework/Foundation/Navigation/NavigateBack.cs similarity index 100% rename from Toolkit.Foundation/Navigation/NavigateBack.cs rename to Framework/Foundation/Navigation/NavigateBack.cs diff --git a/Toolkit.Foundation/Navigation/NavigationRoute.cs b/Framework/Foundation/Navigation/NavigationRoute.cs similarity index 100% rename from Toolkit.Foundation/Navigation/NavigationRoute.cs rename to Framework/Foundation/Navigation/NavigationRoute.cs diff --git a/Toolkit.Foundation/Navigation/NavigationRouteDescriptor.cs b/Framework/Foundation/Navigation/NavigationRouteDescriptor.cs similarity index 100% rename from Toolkit.Foundation/Navigation/NavigationRouteDescriptor.cs rename to Framework/Foundation/Navigation/NavigationRouteDescriptor.cs diff --git a/Toolkit.Foundation/Navigation/NavigationRouteDescriptorCollection.cs b/Framework/Foundation/Navigation/NavigationRouteDescriptorCollection.cs similarity index 100% rename from Toolkit.Foundation/Navigation/NavigationRouteDescriptorCollection.cs rename to Framework/Foundation/Navigation/NavigationRouteDescriptorCollection.cs diff --git a/Toolkit.Foundation/Services/IServiceCreator.cs b/Framework/Foundation/Services/IServiceCreator.cs similarity index 100% rename from Toolkit.Foundation/Services/IServiceCreator.cs rename to Framework/Foundation/Services/IServiceCreator.cs diff --git a/Toolkit.Foundation/Services/IServiceFactory.cs b/Framework/Foundation/Services/IServiceFactory.cs similarity index 100% rename from Toolkit.Foundation/Services/IServiceFactory.cs rename to Framework/Foundation/Services/IServiceFactory.cs diff --git a/Toolkit.Foundation/Services/ServiceCreator.cs b/Framework/Foundation/Services/ServiceCreator.cs similarity index 100% rename from Toolkit.Foundation/Services/ServiceCreator.cs rename to Framework/Foundation/Services/ServiceCreator.cs diff --git a/Toolkit.Foundation/Services/ServiceFactory.cs b/Framework/Foundation/Services/ServiceFactory.cs similarity index 100% rename from Toolkit.Foundation/Services/ServiceFactory.cs rename to Framework/Foundation/Services/ServiceFactory.cs diff --git a/Toolkit.Foundation/Services/ServiceFactoryDescriptor.cs b/Framework/Foundation/Services/ServiceFactoryDescriptor.cs similarity index 100% rename from Toolkit.Foundation/Services/ServiceFactoryDescriptor.cs rename to Framework/Foundation/Services/ServiceFactoryDescriptor.cs diff --git a/Toolkit.Foundation/Templates/INamedDataTemplateFactory.cs b/Framework/Foundation/Templates/INamedDataTemplateFactory.cs similarity index 100% rename from Toolkit.Foundation/Templates/INamedDataTemplateFactory.cs rename to Framework/Foundation/Templates/INamedDataTemplateFactory.cs diff --git a/Toolkit.Foundation/Templates/INamedTemplateFactory.cs b/Framework/Foundation/Templates/INamedTemplateFactory.cs similarity index 100% rename from Toolkit.Foundation/Templates/INamedTemplateFactory.cs rename to Framework/Foundation/Templates/INamedTemplateFactory.cs diff --git a/Toolkit.Foundation/Templates/ITemplateBuilder.cs b/Framework/Foundation/Templates/ITemplateBuilder.cs similarity index 100% rename from Toolkit.Foundation/Templates/ITemplateBuilder.cs rename to Framework/Foundation/Templates/ITemplateBuilder.cs diff --git a/Toolkit.Foundation/Templates/ITemplateDescriptor.cs b/Framework/Foundation/Templates/ITemplateDescriptor.cs similarity index 87% rename from Toolkit.Foundation/Templates/ITemplateDescriptor.cs rename to Framework/Foundation/Templates/ITemplateDescriptor.cs index 18b7b1a..0e501d6 100644 --- a/Toolkit.Foundation/Templates/ITemplateDescriptor.cs +++ b/Framework/Foundation/Templates/ITemplateDescriptor.cs @@ -4,7 +4,7 @@ namespace Toolkit.Foundation { public interface ITemplateDescriptor { - Type DataType { get; } + Type ContentType { get; } ServiceLifetime Lifetime { get; } diff --git a/Toolkit.Foundation/Templates/ITemplateDescriptorProvider.cs b/Framework/Foundation/Templates/ITemplateDescriptorProvider.cs similarity index 100% rename from Toolkit.Foundation/Templates/ITemplateDescriptorProvider.cs rename to Framework/Foundation/Templates/ITemplateDescriptorProvider.cs diff --git a/Toolkit.Foundation/Templates/ITemplateFactory.cs b/Framework/Foundation/Templates/ITemplateFactory.cs similarity index 100% rename from Toolkit.Foundation/Templates/ITemplateFactory.cs rename to Framework/Foundation/Templates/ITemplateFactory.cs diff --git a/Toolkit.Foundation/Templates/ITemplateSelector.cs b/Framework/Foundation/Templates/ITemplateSelector.cs similarity index 100% rename from Toolkit.Foundation/Templates/ITemplateSelector.cs rename to Framework/Foundation/Templates/ITemplateSelector.cs diff --git a/Toolkit.Foundation/Templates/ITypedDataTemplateFactory.cs b/Framework/Foundation/Templates/ITypedDataTemplateFactory.cs similarity index 100% rename from Toolkit.Foundation/Templates/ITypedDataTemplateFactory.cs rename to Framework/Foundation/Templates/ITypedDataTemplateFactory.cs diff --git a/Toolkit.Foundation/Templates/NamedDataTemplateFactory.cs b/Framework/Foundation/Templates/NamedDataTemplateFactory.cs similarity index 91% rename from Toolkit.Foundation/Templates/NamedDataTemplateFactory.cs rename to Framework/Foundation/Templates/NamedDataTemplateFactory.cs index 448c17a..7008fcc 100644 --- a/Toolkit.Foundation/Templates/NamedDataTemplateFactory.cs +++ b/Framework/Foundation/Templates/NamedDataTemplateFactory.cs @@ -23,7 +23,7 @@ if (descriptors.FirstOrDefault(x => x.Name == name) is ITemplateDescriptor descriptor) { - data = parameters is { Length: > 0 } ? serviceFactory.Create(descriptor.DataType, parameters) : serviceFactory.Create(descriptor.DataType); + data = parameters is { Length: > 0 } ? serviceFactory.Create(descriptor.ContentType, parameters) : serviceFactory.Create(descriptor.ContentType); if (data is ICache cache) { this.cache[name] = cache; diff --git a/Toolkit.Foundation/Templates/NamedTemplateFactory.cs b/Framework/Foundation/Templates/NamedTemplateFactory.cs similarity index 100% rename from Toolkit.Foundation/Templates/NamedTemplateFactory.cs rename to Framework/Foundation/Templates/NamedTemplateFactory.cs diff --git a/Toolkit.Foundation/Templates/TemplateBuilder.cs b/Framework/Foundation/Templates/TemplateBuilder.cs similarity index 100% rename from Toolkit.Foundation/Templates/TemplateBuilder.cs rename to Framework/Foundation/Templates/TemplateBuilder.cs diff --git a/Toolkit.Foundation/Templates/TemplateDescriptor.cs b/Framework/Foundation/Templates/TemplateDescriptor.cs similarity index 88% rename from Toolkit.Foundation/Templates/TemplateDescriptor.cs rename to Framework/Foundation/Templates/TemplateDescriptor.cs index 2e738ff..442d179 100644 --- a/Toolkit.Foundation/Templates/TemplateDescriptor.cs +++ b/Framework/Foundation/Templates/TemplateDescriptor.cs @@ -10,7 +10,7 @@ namespace Toolkit.Foundation ServiceLifetime lifetime = ServiceLifetime.Transient) { TemplateType = templateType; - DataType = dataType; + ContentType = dataType; Name = name; Lifetime = lifetime; } @@ -19,7 +19,7 @@ namespace Toolkit.Foundation public Type TemplateType { get; } - public Type DataType { get; } + public Type ContentType { get; } public string? Name { get; } } diff --git a/Toolkit.Foundation/Templates/TemplateDescriptorProvider.cs b/Framework/Foundation/Templates/TemplateDescriptorProvider.cs similarity index 81% rename from Toolkit.Foundation/Templates/TemplateDescriptorProvider.cs rename to Framework/Foundation/Templates/TemplateDescriptorProvider.cs index 56b50fe..fab923d 100644 --- a/Toolkit.Foundation/Templates/TemplateDescriptorProvider.cs +++ b/Framework/Foundation/Templates/TemplateDescriptorProvider.cs @@ -21,7 +21,7 @@ public ITemplateDescriptor? Get(Type type) { - if (descriptors.FirstOrDefault(x => x.DataType == type) is ITemplateDescriptor descriptor) + if (descriptors.FirstOrDefault(x => x.ContentType == type) is ITemplateDescriptor descriptor) { return descriptor; } @@ -31,7 +31,7 @@ public ITemplateDescriptor? Get() { - if (descriptors.FirstOrDefault(x => x.DataType == typeof(T)) is ITemplateDescriptor descriptor) + if (descriptors.FirstOrDefault(x => x.ContentType == typeof(T)) is ITemplateDescriptor descriptor) { return descriptor; } diff --git a/Toolkit.Foundation/Templates/TemplateFactory.cs b/Framework/Foundation/Templates/TemplateFactory.cs similarity index 100% rename from Toolkit.Foundation/Templates/TemplateFactory.cs rename to Framework/Foundation/Templates/TemplateFactory.cs diff --git a/Toolkit.Foundation/Templates/TypedDataTemplateFactory.cs b/Framework/Foundation/Templates/TypedDataTemplateFactory.cs similarity index 82% rename from Toolkit.Foundation/Templates/TypedDataTemplateFactory.cs rename to Framework/Foundation/Templates/TypedDataTemplateFactory.cs index 6b8bf2b..c60359e 100644 --- a/Toolkit.Foundation/Templates/TypedDataTemplateFactory.cs +++ b/Framework/Foundation/Templates/TypedDataTemplateFactory.cs @@ -21,9 +21,9 @@ return data; } - if (descriptors.FirstOrDefault(x => x.DataType == type) is ITemplateDescriptor descriptor) + if (descriptors.FirstOrDefault(x => x.ContentType == type) is ITemplateDescriptor descriptor) { - data = parameters is { Length: > 0 } ? serviceFactory.Create(descriptor.DataType, parameters) : serviceFactory.Create(descriptor.DataType); + data = parameters is { Length: > 0 } ? serviceFactory.Create(descriptor.ContentType, parameters) : serviceFactory.Create(descriptor.ContentType); if (data is ICache cache) { this.cache[type] = cache; diff --git a/Toolkit.Foundation/Navigation/INavigationConfirmation.cs b/Toolkit.Foundation/Navigation/INavigationConfirmation.cs deleted file mode 100644 index 251d699..0000000 --- a/Toolkit.Foundation/Navigation/INavigationConfirmation.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Toolkit.Foundation -{ - public interface INavigationConfirmation - { - bool CanConfirm(); - } -} \ No newline at end of file diff --git a/Toolkit.Foundation/Navigation/INavigationConfirmationAsync.cs b/Toolkit.Foundation/Navigation/INavigationConfirmationAsync.cs deleted file mode 100644 index a41f0cb..0000000 --- a/Toolkit.Foundation/Navigation/INavigationConfirmationAsync.cs +++ /dev/null @@ -1,8 +0,0 @@ - -namespace Toolkit.Foundation -{ - public interface INavigationConfirmationAsync - { - Task CanConfirmAsync(); - } -} \ No newline at end of file diff --git a/Toolkit.Foundation/Navigation/Navigated.cs b/Toolkit.Foundation/Navigation/Navigated.cs deleted file mode 100644 index 118d51d..0000000 --- a/Toolkit.Foundation/Navigation/Navigated.cs +++ /dev/null @@ -1,30 +0,0 @@ -namespace Toolkit.Foundation -{ - public class Navigated where TTemplate : class where TContent : class - { - public Navigated() - { - } - - public Navigated(TTemplate template, TContent content, IDictionary? parameters = null) - { - Template = template; - Content = content; - Parameters = parameters; - } - - public TTemplate? Template { get; } - - public TContent? Content { get; } - - public IDictionary? Parameters { get; } - } - - public class Navigated - { - public static Navigated Create(TTemplate template, TContent? content, IDictionary? parameters = null) where TTemplate : class where TContent : class - { - return new Navigated(template, content, parameters); - } - } -} \ No newline at end of file diff --git a/Toolkit.sln b/Toolkit.sln index 3fba99a..50b1ec4 100644 --- a/Toolkit.sln +++ b/Toolkit.sln @@ -3,9 +3,15 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.4.33110.190 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Toolkit.Foundation", "Toolkit.Foundation\Toolkit.Foundation.csproj", "{A3332A95-DF10-4A3F-A500-18513BF1EE2E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Framework", "Framework", "{B8DD190E-DB19-479B-B614-6160932C2AB6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Toolkit.Foundation.Avalonia", "Toolkit.Foundation.Avalonia\Toolkit.Foundation.Avalonia.csproj", "{31217E1F-8F2D-468C-A9DC-839EE9B6F9D4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Foundation", "Framework\Foundation\Foundation.csproj", "{9931E7E1-566A-4306-B243-FEC67128E9B7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia", "Framework\Avalonia\Avalonia.csproj", "{73182B24-1F04-40B5-9C26-4BDD269E998D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Controls", "Controls", "{75BCD316-4955-4CA1-9CB3-F4A65495F5F2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia", "Avalonia\Avalonia.csproj", "{13DE3ACD-FEEE-4DDF-B020-6A566701112D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -13,18 +19,27 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A3332A95-DF10-4A3F-A500-18513BF1EE2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A3332A95-DF10-4A3F-A500-18513BF1EE2E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A3332A95-DF10-4A3F-A500-18513BF1EE2E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A3332A95-DF10-4A3F-A500-18513BF1EE2E}.Release|Any CPU.Build.0 = Release|Any CPU - {31217E1F-8F2D-468C-A9DC-839EE9B6F9D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {31217E1F-8F2D-468C-A9DC-839EE9B6F9D4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {31217E1F-8F2D-468C-A9DC-839EE9B6F9D4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {31217E1F-8F2D-468C-A9DC-839EE9B6F9D4}.Release|Any CPU.Build.0 = Release|Any CPU + {9931E7E1-566A-4306-B243-FEC67128E9B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9931E7E1-566A-4306-B243-FEC67128E9B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9931E7E1-566A-4306-B243-FEC67128E9B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9931E7E1-566A-4306-B243-FEC67128E9B7}.Release|Any CPU.Build.0 = Release|Any CPU + {73182B24-1F04-40B5-9C26-4BDD269E998D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {73182B24-1F04-40B5-9C26-4BDD269E998D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {73182B24-1F04-40B5-9C26-4BDD269E998D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {73182B24-1F04-40B5-9C26-4BDD269E998D}.Release|Any CPU.Build.0 = Release|Any CPU + {13DE3ACD-FEEE-4DDF-B020-6A566701112D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {13DE3ACD-FEEE-4DDF-B020-6A566701112D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {13DE3ACD-FEEE-4DDF-B020-6A566701112D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {13DE3ACD-FEEE-4DDF-B020-6A566701112D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {9931E7E1-566A-4306-B243-FEC67128E9B7} = {B8DD190E-DB19-479B-B614-6160932C2AB6} + {73182B24-1F04-40B5-9C26-4BDD269E998D} = {B8DD190E-DB19-479B-B614-6160932C2AB6} + {13DE3ACD-FEEE-4DDF-B020-6A566701112D} = {75BCD316-4955-4CA1-9CB3-F4A65495F5F2} + EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {A526C950-2F32-44D7-BF18-331B6B38D52D} EndGlobalSection