From 687f484c9a033ccfd80ad74db49fd405ebfa27b6 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 28 Aug 2015 13:16:23 +0200 Subject: [PATCH] Tidied up xaml stuff a bit. --- Perspex.sln | 7 - .../XamlTestApplication/Views/MainWindow.cs | 5 +- .../XamlTestApplication.csproj | 4 - .../InflatableResourceTranslator.cs | 78 -------- .../Perspex.Xaml.Desktop.csproj | 185 ------------------ .../Perspex.Xaml.Desktop/PerspexWindow.cs | 13 -- .../Properties/AssemblyInfo.cs | 9 - .../Perspex.Xaml.Desktop/packages.config | 23 --- .../HighLevel/IResourceProvider.cs | 10 - .../HighLevel/PerspexLoaderFactory.cs | 20 -- .../PerspexObjectAssemblerFactory.cs | 21 -- src/Markup/Perspex.Xaml/Perspex.Xaml.csproj | 4 +- .../PerspexParserFactory.cs | 5 +- 13 files changed, 5 insertions(+), 379 deletions(-) delete mode 100644 src/Markup/Perspex.Xaml.Desktop/InflatableResourceTranslator.cs delete mode 100644 src/Markup/Perspex.Xaml.Desktop/Perspex.Xaml.Desktop.csproj delete mode 100644 src/Markup/Perspex.Xaml.Desktop/PerspexWindow.cs delete mode 100644 src/Markup/Perspex.Xaml.Desktop/Properties/AssemblyInfo.cs delete mode 100644 src/Markup/Perspex.Xaml.Desktop/packages.config delete mode 100644 src/Markup/Perspex.Xaml/HighLevel/IResourceProvider.cs delete mode 100644 src/Markup/Perspex.Xaml/HighLevel/PerspexLoaderFactory.cs delete mode 100644 src/Markup/Perspex.Xaml/HighLevel/PerspexObjectAssemblerFactory.cs rename src/Markup/{Perspex.Xaml.Desktop => Perspex.Xaml}/PerspexParserFactory.cs (93%) diff --git a/Perspex.sln b/Perspex.sln index 874bab37ef..26a0fd1273 100644 --- a/Perspex.sln +++ b/Perspex.sln @@ -59,8 +59,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Direct2D1.UnitTests EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Xaml", "src\Markup\Perspex.Xaml\Perspex.Xaml.csproj", "{3E53A01A-B331-47F3-B828-4A5717E77A24}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Xaml.Desktop", "src\Markup\Perspex.Xaml.Desktop\Perspex.Xaml.Desktop.csproj", "{EB468C39-AAC4-4963-A7B2-0A405EA63EDD}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XamlTestApplication", "samples\XamlTestApplication\XamlTestApplication.csproj", "{78CAFE33-DBEB-4132-8A28-81CFE8A4933C}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Markup", "Markup", "{8B6A8209-894F-4BA1-B880-965FD453982C}" @@ -178,10 +176,6 @@ Global {3E53A01A-B331-47F3-B828-4A5717E77A24}.Debug|Any CPU.Build.0 = Debug|Any CPU {3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|Any CPU.ActiveCfg = Release|Any CPU {3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|Any CPU.Build.0 = Release|Any CPU - {EB468C39-AAC4-4963-A7B2-0A405EA63EDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EB468C39-AAC4-4963-A7B2-0A405EA63EDD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EB468C39-AAC4-4963-A7B2-0A405EA63EDD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EB468C39-AAC4-4963-A7B2-0A405EA63EDD}.Release|Any CPU.Build.0 = Release|Any CPU {78CAFE33-DBEB-4132-8A28-81CFE8A4933C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {78CAFE33-DBEB-4132-8A28-81CFE8A4933C}.Debug|Any CPU.Build.0 = Debug|Any CPU {78CAFE33-DBEB-4132-8A28-81CFE8A4933C}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -205,7 +199,6 @@ Global {AC18926A-E784-40FE-B09D-BB0FE2B599F0} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {3E53A01A-B331-47F3-B828-4A5717E77A24} = {8B6A8209-894F-4BA1-B880-965FD453982C} - {EB468C39-AAC4-4963-A7B2-0A405EA63EDD} = {8B6A8209-894F-4BA1-B880-965FD453982C} {78CAFE33-DBEB-4132-8A28-81CFE8A4933C} = {9B9E3891-2366-4253-A952-D08BCEB71098} EndGlobalSection EndGlobal diff --git a/samples/XamlTestApplication/Views/MainWindow.cs b/samples/XamlTestApplication/Views/MainWindow.cs index b1d74acbc8..e6053ce51b 100644 --- a/samples/XamlTestApplication/Views/MainWindow.cs +++ b/samples/XamlTestApplication/Views/MainWindow.cs @@ -6,12 +6,11 @@ using System.Reflection; using System.Resources; using OmniXaml; - using OmniXaml.AppServices.Mvvm; + using Perspex.Controls; using Perspex.Diagnostics; using Perspex.Xaml.Desktop; - [ViewToken("Main", typeof(MainWindow))] - public class MainWindow : PerspexWindow + public class MainWindow : Window { public MainWindow() { diff --git a/samples/XamlTestApplication/XamlTestApplication.csproj b/samples/XamlTestApplication/XamlTestApplication.csproj index ef9447af18..5ea8e34004 100644 --- a/samples/XamlTestApplication/XamlTestApplication.csproj +++ b/samples/XamlTestApplication/XamlTestApplication.csproj @@ -177,10 +177,6 @@ {3e10a5fa-e8da-48b1-ad44-6a5b6cb7750f} Perspex.Themes.Default - - {eb468c39-aac4-4963-a7b2-0a405ea63edd} - Perspex.Xaml.Desktop - {3e53a01a-b331-47f3-b828-4a5717e77a24} Perspex.Xaml diff --git a/src/Markup/Perspex.Xaml.Desktop/InflatableResourceTranslator.cs b/src/Markup/Perspex.Xaml.Desktop/InflatableResourceTranslator.cs deleted file mode 100644 index 0c4e8e228f..0000000000 --- a/src/Markup/Perspex.Xaml.Desktop/InflatableResourceTranslator.cs +++ /dev/null @@ -1,78 +0,0 @@ -namespace Perspex.Xaml.Desktop -{ - using System; - using System.Globalization; - using System.IO; - using System.Linq; - using System.Reflection; - using System.Resources; - using OmniXaml.AppServices; - - public class InflatableResourceTranslator : IInflatableTranslator - { - public Stream GetStream(Type type) - { - var uri = GetUriFor(type); - var assembly = Assembly.GetEntryAssembly(); - var resourceName = assembly.GetName().Name + ".g"; - var manager = new ResourceManager(resourceName, assembly); - - using (ResourceSet resourceSet = manager.GetResourceSet(CultureInfo.CurrentCulture, true, true)) - { - Stream s = (Stream)resourceSet.GetObject(uri.ToString(), true); - - if (s == null) - { - throw new IOException( - "The requested resource could not be found: " + - uri.OriginalString); - } - - return s; - } - } - - private static Uri GetUriFor(Type type) - { - if (type.Namespace != null) - { - var toRemove = type.Assembly.GetName().Name; - var substracted = toRemove.Length < type.Namespace.Length ? type.Namespace.Remove(0, toRemove.Length + 1) : ""; - var replace = substracted.Replace('.', Path.PathSeparator); - if (replace != string.Empty) - { - replace = replace + "/"; - } - return new Uri(replace + type.Name + ".xaml", UriKind.Relative); - } - - return null; - } - - public Type GetTypeFor(Uri uri) - { - var withExt = uri.OriginalString; - var lastSlash = withExt.LastIndexOf("/", StringComparison.Ordinal); - var innerNs = withExt.Substring(0, lastSlash); - var fileName = withExt.Substring(lastSlash + 1, withExt.Length - lastSlash - 1); - - var className = fileName.Substring(0, fileName.LastIndexOf('.')); - - - var assemblies = AppDomain.CurrentDomain.GetAssemblies().ToList(); - var type = from assembly in assemblies - let t = assembly.GetType(GetName(assembly, innerNs, className)) - where t != null - select t; - - return type.First(); - } - - private static string GetName(Assembly assembly, string innerNs, string className) - { - var ns = assembly.GetName().Name + "." + innerNs; - var fullLocator = ns + "." + className; - return fullLocator; - } - } -} \ No newline at end of file diff --git a/src/Markup/Perspex.Xaml.Desktop/Perspex.Xaml.Desktop.csproj b/src/Markup/Perspex.Xaml.Desktop/Perspex.Xaml.Desktop.csproj deleted file mode 100644 index fd2fc5de1d..0000000000 --- a/src/Markup/Perspex.Xaml.Desktop/Perspex.Xaml.Desktop.csproj +++ /dev/null @@ -1,185 +0,0 @@ - - - - - Debug - AnyCPU - {EB468C39-AAC4-4963-A7B2-0A405EA63EDD} - Library - Properties - Perspex.Xaml.Desktop - Perspex.Xaml.Desktop - v4.6 - 512 - - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - ..\..\..\packages\Glass.1.4.4.0\lib\portable-net451+win81+wpa81\Glass.dll - True - - - ..\..\..\packages\OmniXaml.1.4.4.0\lib\portable-net451+win81+wpa81\OmniXaml.dll - True - - - ..\..\..\packages\OmniXaml.AppServices.1.4.4.0\lib\portable-net451+win81+wpa81\OmniXaml.AppServices.dll - True - - - ..\..\..\packages\OmniXaml.AppServices.Mvvm.1.4.4.0\lib\portable-net451+win81+wpa81\OmniXaml.AppServices.Mvvm.dll - True - - - ..\..\..\packages\OmniXaml.AppServices.NetCore.1.4.4.0\lib\net46\OmniXaml.AppServices.NetCore.dll - True - - - ..\..\..\packages\reactiveui-core.6.5.0\lib\Net45\ReactiveUI.dll - True - - - ..\..\..\packages\Serilog.1.5.9\lib\net45\Serilog.dll - True - - - ..\..\..\packages\Serilog.1.5.9\lib\net45\Serilog.FullNetFx.dll - True - - - False - $(SharpDXPackageBinDir)\SharpDX.dll - - - False - $(SharpDXPackageBinDir)\SharpDX.Direct2D1.dll - - - False - $(SharpDXPackageBinDir)\SharpDX.DXGI.dll - - - ..\..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll - True - - - ..\..\..\packages\Sprache.SuperJMN.2.0.0.46\lib\portable-net451+win81+wpa81\Sprache.dll - True - - - - - - ..\..\..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll - True - - - ..\..\..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll - True - - - ..\..\..\packages\Rx-Linq.2.2.5\lib\net45\System.Reactive.Linq.dll - True - - - ..\..\..\packages\Rx-PlatformServices.2.2.5\lib\net45\System.Reactive.PlatformServices.dll - True - - - ..\..\..\packages\Rx-XAML.2.2.5\lib\net45\System.Reactive.Windows.Threading.dll - True - - - - - - - - - - - - - Properties\SharedAssemblyInfo.cs - - - - - - - - - {d211e587-d8bc-45b9-95a4-f297c8fa5200} - Perspex.Animation - - - {b09b78d8-9b26-48b0-9149-d64a2f120f3f} - Perspex.Base - - - {d2221c82-4a25-4583-9b43-d791e3f6820c} - Perspex.Controls - - - {62024b2d-53eb-4638-b26b-85eeaa54866e} - Perspex.Input - - - {6b0ed19d-a08b-461c-a9d9-a9ee40b0c06b} - Perspex.Interactivity - - - {42472427-4774-4c81-8aff-9f27b8e31721} - Perspex.Layout - - - {eb582467-6abb-43a1-b052-e981ba910e3a} - Perspex.SceneGraph - - - {f1baa01a-f176-4c6a-b39d-5b40bb1b148f} - Perspex.Styling - - - {3E53A01A-B331-47F3-B828-4A5717E77A24} - Perspex.Xaml - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - \ No newline at end of file diff --git a/src/Markup/Perspex.Xaml.Desktop/PerspexWindow.cs b/src/Markup/Perspex.Xaml.Desktop/PerspexWindow.cs deleted file mode 100644 index 23c727e5b5..0000000000 --- a/src/Markup/Perspex.Xaml.Desktop/PerspexWindow.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace Perspex.Xaml.Desktop -{ - using Controls; - using OmniXaml.AppServices.Mvvm; - - public class PerspexWindow : Window, IView - { - public void SetViewModel(object viewModel) - { - this.DataContext = viewModel; - } - } -} \ No newline at end of file diff --git a/src/Markup/Perspex.Xaml.Desktop/Properties/AssemblyInfo.cs b/src/Markup/Perspex.Xaml.Desktop/Properties/AssemblyInfo.cs deleted file mode 100644 index 841674882b..0000000000 --- a/src/Markup/Perspex.Xaml.Desktop/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,9 +0,0 @@ -// ----------------------------------------------------------------------- -// -// Copyright 2015 MIT Licence. See licence.md for more information. -// -// ----------------------------------------------------------------------- - -using System.Reflection; - -[assembly: AssemblyTitle("Perspex.Xaml.Desktop")] diff --git a/src/Markup/Perspex.Xaml.Desktop/packages.config b/src/Markup/Perspex.Xaml.Desktop/packages.config deleted file mode 100644 index 50be3b2d3b..0000000000 --- a/src/Markup/Perspex.Xaml.Desktop/packages.config +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Markup/Perspex.Xaml/HighLevel/IResourceProvider.cs b/src/Markup/Perspex.Xaml/HighLevel/IResourceProvider.cs deleted file mode 100644 index 151a06d60f..0000000000 --- a/src/Markup/Perspex.Xaml/HighLevel/IResourceProvider.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Perspex.Xaml.HighLevel -{ - using System; - using System.IO; - - public interface IResourceProvider - { - Stream GetStream(Uri uri); - } -} \ No newline at end of file diff --git a/src/Markup/Perspex.Xaml/HighLevel/PerspexLoaderFactory.cs b/src/Markup/Perspex.Xaml/HighLevel/PerspexLoaderFactory.cs deleted file mode 100644 index aafad7c322..0000000000 --- a/src/Markup/Perspex.Xaml/HighLevel/PerspexLoaderFactory.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace Perspex.Xaml.HighLevel -{ - using Context; - using OmniXaml; - - public static class PerspexWiringContextFactory - { - private static IWiringContext context; - - public static IWiringContext GetContext(ITypeFactory factory) - { - if (context == null) - { - context = new PerspexWiringContext(factory); - } - - return context; - } - } -} \ No newline at end of file diff --git a/src/Markup/Perspex.Xaml/HighLevel/PerspexObjectAssemblerFactory.cs b/src/Markup/Perspex.Xaml/HighLevel/PerspexObjectAssemblerFactory.cs deleted file mode 100644 index 6de80663fb..0000000000 --- a/src/Markup/Perspex.Xaml/HighLevel/PerspexObjectAssemblerFactory.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace Perspex.Xaml.HighLevel -{ - using OmniXaml; - using Context; - using OmniXaml.ObjectAssembler; - - public class PerspexObjectAssemblerFactory : IObjectAssemblerFactory - { - private readonly WiringContext context; - - public PerspexObjectAssemblerFactory(WiringContext context) - { - this.context = context; - } - - public IObjectAssembler CreateAssembler(ObjectAssemblerSettings settings) - { - return new PerspexObjectAssembler(context, settings); - } - } -} \ No newline at end of file diff --git a/src/Markup/Perspex.Xaml/Perspex.Xaml.csproj b/src/Markup/Perspex.Xaml/Perspex.Xaml.csproj index 00ae1936a3..aca6e00e59 100644 --- a/src/Markup/Perspex.Xaml/Perspex.Xaml.csproj +++ b/src/Markup/Perspex.Xaml/Perspex.Xaml.csproj @@ -38,9 +38,6 @@ Properties\SharedAssemblyInfo.cs - - - @@ -50,6 +47,7 @@ + diff --git a/src/Markup/Perspex.Xaml.Desktop/PerspexParserFactory.cs b/src/Markup/Perspex.Xaml/PerspexParserFactory.cs similarity index 93% rename from src/Markup/Perspex.Xaml.Desktop/PerspexParserFactory.cs rename to src/Markup/Perspex.Xaml/PerspexParserFactory.cs index 3253d53f85..28617ea20a 100644 --- a/src/Markup/Perspex.Xaml.Desktop/PerspexParserFactory.cs +++ b/src/Markup/Perspex.Xaml/PerspexParserFactory.cs @@ -1,11 +1,10 @@ namespace Perspex.Xaml.Desktop { - using Context; - using HighLevel; using OmniXaml; using OmniXaml.ObjectAssembler; using OmniXaml.Parsers.ProtoParser; using OmniXaml.Parsers.XamlNodes; + using Perspex.Xaml.Context; public class PerspexParserFactory : IXamlParserFactory { @@ -13,7 +12,7 @@ namespace Perspex.Xaml.Desktop public PerspexParserFactory(ITypeFactory typeFactory) { - wiringContext = PerspexWiringContextFactory.GetContext(typeFactory); + wiringContext = new PerspexWiringContext(typeFactory); } public IXamlParser CreateForReadingFree()