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