Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/xamarin/Xamarin.PropertyEditing.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Maupin <ermaup@microsoft.com>2018-04-18 22:23:14 +0300
committerEric Maupin <ermaup@microsoft.com>2018-05-01 00:53:55 +0300
commitfa28e9cca17eb158ea9a59202f448b041c43a9f4 (patch)
tree21a1277a7fc23ed351c1b8a50120c6f54f0f2296
parentd6321d4d839b8515d76e8ea5b5e7a5e2a3c84557 (diff)
[Core] Move IEditorProvider into TargetPlatform
-rw-r--r--Xamarin.PropertyEditing.Tests/BrushPropertyViewModelTests.cs6
-rw-r--r--Xamarin.PropertyEditing.Tests/EventViewModelTests.cs10
-rw-r--r--Xamarin.PropertyEditing.Tests/MaterialDesignColorViewModelTests.cs2
-rw-r--r--Xamarin.PropertyEditing.Tests/MockEditorProvider.cs2
-rw-r--r--Xamarin.PropertyEditing.Tests/ObjectPropertyViewModelTests.cs14
-rw-r--r--Xamarin.PropertyEditing.Tests/PanelViewModelTests.cs73
-rw-r--r--Xamarin.PropertyEditing.Tests/PropertyGroupViewModelTests.cs32
-rw-r--r--Xamarin.PropertyEditing.Tests/PropertyViewModelTests.cs6
-rw-r--r--Xamarin.PropertyEditing.Tests/SolidBrushPropertyViewModelTests.cs2
-rw-r--r--Xamarin.PropertyEditing.Windows.Standalone/MainWindow.xaml.cs5
-rw-r--r--Xamarin.PropertyEditing.Windows/PropertyEditorPanel.cs21
-rw-r--r--Xamarin.PropertyEditing/TargetPlatform.cs21
-rw-r--r--Xamarin.PropertyEditing/ViewModels/ObjectPropertyViewModel.cs10
-rw-r--r--Xamarin.PropertyEditing/ViewModels/ObjectViewModel.cs4
-rw-r--r--Xamarin.PropertyEditing/ViewModels/PanelViewModel.cs4
-rw-r--r--Xamarin.PropertyEditing/ViewModels/PropertiesViewModel.cs13
16 files changed, 108 insertions, 117 deletions
diff --git a/Xamarin.PropertyEditing.Tests/BrushPropertyViewModelTests.cs b/Xamarin.PropertyEditing.Tests/BrushPropertyViewModelTests.cs
index 952266b..d0f0f95 100644
--- a/Xamarin.PropertyEditing.Tests/BrushPropertyViewModelTests.cs
+++ b/Xamarin.PropertyEditing.Tests/BrushPropertyViewModelTests.cs
@@ -20,7 +20,7 @@ namespace Xamarin.PropertyEditing.Tests
mockProperty.SetupGet (pi => pi.Type).Returns (typeof (CommonBrush));
var mockEditor = new MockObjectEditor (mockProperty.Object);
- var vm = new BrushPropertyViewModel (TargetPlatform.Default, mockProperty.Object, new[] { mockEditor });
+ var vm = new BrushPropertyViewModel (MockEditorProvider.MockPlatform, mockProperty.Object, new[] { mockEditor });
var changed = false;
vm.PropertyChanged += (s, e) => {
if (e.PropertyName == nameof(BrushPropertyViewModel.Opacity)) {
@@ -37,7 +37,7 @@ namespace Xamarin.PropertyEditing.Tests
var mockProperty = new Mock<IPropertyInfo> ();
mockProperty.SetupGet (pi => pi.Type).Returns (typeof (CommonBrush));
var mockEditor = new MockObjectEditor (mockProperty.Object);
- var vm = new BrushPropertyViewModel (TargetPlatform.Default, mockProperty.Object, new [] { mockEditor });
+ var vm = new BrushPropertyViewModel (MockEditorProvider.MockPlatform, mockProperty.Object, new [] { mockEditor });
vm.ResourceProvider = new MockResourceProvider ();
var changed = false;
vm.PropertyChanged += (s, e) => {
@@ -58,7 +58,7 @@ namespace Xamarin.PropertyEditing.Tests
var mockProperty = new Mock<IPropertyInfo> ();
mockProperty.SetupGet (pi => pi.Type).Returns (typeof (CommonBrush));
var mockEditor = new MockObjectEditor (mockProperty.Object);
- var vm = new BrushPropertyViewModel (TargetPlatform.Default, mockProperty.Object, new [] { mockEditor });
+ var vm = new BrushPropertyViewModel (MockEditorProvider.MockPlatform, mockProperty.Object, new [] { mockEditor });
var changed = false;
vm.PropertyChanged += (s, e) => {
diff --git a/Xamarin.PropertyEditing.Tests/EventViewModelTests.cs b/Xamarin.PropertyEditing.Tests/EventViewModelTests.cs
index fa65f76..994e417 100644
--- a/Xamarin.PropertyEditing.Tests/EventViewModelTests.cs
+++ b/Xamarin.PropertyEditing.Tests/EventViewModelTests.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -25,7 +25,7 @@ namespace Xamarin.PropertyEditing.Tests
const string handler = "handler";
editor.AttachHandlerAsync (info.Object, handler);
- var ev = new EventViewModel (TargetPlatform.Default, info.Object, new[] { editor });
+ var ev = new EventViewModel (MockEditorProvider.MockPlatform, info.Object, new[] { editor });
Assert.That (ev.MethodName, Is.EqualTo (handler));
}
@@ -41,7 +41,7 @@ namespace Xamarin.PropertyEditing.Tests
var eeditor = editor.As<IObjectEventEditor> ();
eeditor.SetupGet (e => e.Events).Returns (new[] { info.Object });
- var vm = new EventViewModel (TargetPlatform.Default, info.Object, new[] { editor.Object });
+ var vm = new EventViewModel (MockEditorProvider.MockPlatform, info.Object, new[] { editor.Object });
Assume.That (vm.MethodName, Is.Null);
bool changed = false;
@@ -69,7 +69,7 @@ namespace Xamarin.PropertyEditing.Tests
var eeditor = editor.As<IObjectEventEditor> ();
eeditor.SetupGet (e => e.Events).Returns (new[] { info.Object });
eeditor.Setup (e => e.GetHandlersAsync (info.Object)).ReturnsAsync (new[] { oldHandler });
- var vm = new EventViewModel (TargetPlatform.Default, info.Object, new[] { editor.Object });
+ var vm = new EventViewModel (MockEditorProvider.MockPlatform, info.Object, new[] { editor.Object });
Assume.That (vm.MethodName, Is.EqualTo (oldHandler));
bool changed = false;
@@ -104,7 +104,7 @@ namespace Xamarin.PropertyEditing.Tests
};
editor.AttachHandlerAsync (info.Object, "handler2");
- var ev = new EventViewModel (TargetPlatform.Default, info.Object, new[] { editor, editor2 });
+ var ev = new EventViewModel (MockEditorProvider.MockPlatform, info.Object, new[] { editor, editor2 });
Assert.That (ev.MethodName, Is.Null);
Assert.That (ev.MultipleValues, Is.True);
diff --git a/Xamarin.PropertyEditing.Tests/MaterialDesignColorViewModelTests.cs b/Xamarin.PropertyEditing.Tests/MaterialDesignColorViewModelTests.cs
index 8ee38a6..b816965 100644
--- a/Xamarin.PropertyEditing.Tests/MaterialDesignColorViewModelTests.cs
+++ b/Xamarin.PropertyEditing.Tests/MaterialDesignColorViewModelTests.cs
@@ -284,7 +284,7 @@ namespace Xamarin.PropertyEditing.Tests
private static BrushPropertyViewModel PrepareMockViewModel ()
{
- var platform = new TargetPlatform {
+ var platform = new TargetPlatform (new MockEditorProvider()) {
SupportsMaterialDesign = true
};
var mockProperty = new Mock<IPropertyInfo> ();
diff --git a/Xamarin.PropertyEditing.Tests/MockEditorProvider.cs b/Xamarin.PropertyEditing.Tests/MockEditorProvider.cs
index 0f6a6de..047f8e9 100644
--- a/Xamarin.PropertyEditing.Tests/MockEditorProvider.cs
+++ b/Xamarin.PropertyEditing.Tests/MockEditorProvider.cs
@@ -9,6 +9,8 @@ namespace Xamarin.PropertyEditing.Tests
public class MockEditorProvider
: IEditorProvider
{
+ public static readonly TargetPlatform MockPlatform = new TargetPlatform (new MockEditorProvider ());
+
public Task<IObjectEditor> GetObjectEditorAsync (object item)
{
if (this.editorCache.TryGetValue (item, out IObjectEditor cachedEditor)) {
diff --git a/Xamarin.PropertyEditing.Tests/ObjectPropertyViewModelTests.cs b/Xamarin.PropertyEditing.Tests/ObjectPropertyViewModelTests.cs
index 4536da7..426cdd7 100644
--- a/Xamarin.PropertyEditing.Tests/ObjectPropertyViewModelTests.cs
+++ b/Xamarin.PropertyEditing.Tests/ObjectPropertyViewModelTests.cs
@@ -42,7 +42,7 @@ namespace Xamarin.PropertyEditing.Tests
var providerMock = CreateProviderMock (value, new MockObjectEditor { Target = value });
- var vm = new ObjectPropertyViewModel (providerMock.Object, TargetPlatform.Default, p.Object, new[] { editor });
+ var vm = new ObjectPropertyViewModel (new TargetPlatform (providerMock.Object), p.Object, new[] { editor });
bool requested = false;
vm.TypeRequested += (sender, args) => {
@@ -76,7 +76,7 @@ namespace Xamarin.PropertyEditing.Tests
var providerMock = CreateProviderMock (value, new MockObjectEditor { Target = value });
- var vm = new ObjectPropertyViewModel (providerMock.Object, TargetPlatform.Default, p.Object, new[] { editor });
+ var vm = new ObjectPropertyViewModel (new TargetPlatform (providerMock.Object), p.Object, new[] { editor });
bool requested = false;
vm.TypeRequested += (sender, args) => {
@@ -117,7 +117,7 @@ namespace Xamarin.PropertyEditing.Tests
var providerMock = CreateProviderMock (value, new MockObjectEditor { Target = value });
- var vm = new ObjectPropertyViewModel (providerMock.Object, TargetPlatform.Default, p.Object, new[] { editor, editor2 });
+ var vm = new ObjectPropertyViewModel (new TargetPlatform (providerMock.Object), p.Object, new[] { editor, editor2 });
Assert.That (vm.ValueSource, Is.EqualTo (ValueSource.Unknown));
}
@@ -140,7 +140,7 @@ namespace Xamarin.PropertyEditing.Tests
var providerMock = CreateProviderMock (value, new MockObjectEditor { Target = value });
- var vm = new ObjectPropertyViewModel (providerMock.Object, TargetPlatform.Default, p.Object, new[] { editor });
+ var vm = new ObjectPropertyViewModel (new TargetPlatform (providerMock.Object), p.Object, new[] { editor });
Assume.That (vm.ValueSource, Is.EqualTo (ValueSource.Local));
bool changed = false;
@@ -162,7 +162,7 @@ namespace Xamarin.PropertyEditing.Tests
var p = CreatePropertyMock ("prop");
var providerMock = CreateProviderMock (value, new MockObjectEditor { Target = value });
- var vm = new ObjectPropertyViewModel (providerMock.Object, TargetPlatform.Default, p.Object, new IObjectEditor[0]);
+ var vm = new ObjectPropertyViewModel (new TargetPlatform (providerMock.Object), p.Object, new IObjectEditor[0]);
Assume.That (vm.ValueType, Is.Null);
Assume.That (vm.ValueSource, Is.EqualTo (ValueSource.Default));
@@ -192,7 +192,7 @@ namespace Xamarin.PropertyEditing.Tests
var providerMock = CreateProviderMock (value, new MockObjectEditor { Target = value });
- var vm = new ObjectPropertyViewModel (providerMock.Object, TargetPlatform.Default, p.Object, new IObjectEditor[0]);
+ var vm = new ObjectPropertyViewModel (new TargetPlatform (providerMock.Object), p.Object, new IObjectEditor[0]);
Assert.That (vm.CanDelve, Is.False);
bool changed = false;
@@ -250,7 +250,7 @@ namespace Xamarin.PropertyEditing.Tests
var providerMock = CreateProviderMock (value, new MockObjectEditor { Target = value });
providerMock.Setup (a => a.GetObjectEditorAsync (value2)).ReturnsAsync (new MockObjectEditor { Target = value2 });
- var vm = new ObjectPropertyViewModel (providerMock.Object, TargetPlatform.Default, p.Object, new[] { editor, editor2 });
+ var vm = new ObjectPropertyViewModel (new TargetPlatform (providerMock.Object), p.Object, new[] { editor, editor2 });
Assume.That (vm.ValueSource, Is.EqualTo (ValueSource.Local));
Assert.That (vm.ValueType, Is.Null);
}
diff --git a/Xamarin.PropertyEditing.Tests/PanelViewModelTests.cs b/Xamarin.PropertyEditing.Tests/PanelViewModelTests.cs
index 3128b02..f7a1e74 100644
--- a/Xamarin.PropertyEditing.Tests/PanelViewModelTests.cs
+++ b/Xamarin.PropertyEditing.Tests/PanelViewModelTests.cs
@@ -31,7 +31,7 @@ namespace Xamarin.PropertyEditing.Tests
var editor = await provider.GetObjectEditorAsync (obj);
Assume.That (editor.Properties.Count, Is.EqualTo (1));
- var vm = new PanelViewModel (provider, TargetPlatform.Default);
+ var vm = new PanelViewModel (new TargetPlatform (provider));
vm.SelectedObjects.Add (obj);
Assert.That (vm.Properties, Is.Not.Empty);
@@ -59,7 +59,7 @@ namespace Xamarin.PropertyEditing.Tests
providerMock.Setup (ep => ep.GetObjectEditorAsync (obj1)).ReturnsAsync (editor1Mock.Object);
providerMock.Setup (ep => ep.GetObjectEditorAsync (obj2)).ReturnsAsync (editor2Mock.Object);
- var vm = new PanelViewModel (providerMock.Object, TargetPlatform.Default);
+ var vm = new PanelViewModel (new TargetPlatform (providerMock.Object));
vm.SelectedObjects.Add (obj1);
Assume.That (vm.Properties.Count, Is.EqualTo (1));
@@ -92,7 +92,7 @@ namespace Xamarin.PropertyEditing.Tests
providerMock.Setup (ep => ep.GetObjectEditorAsync (obj1)).ReturnsAsync (editor1Mock.Object);
providerMock.Setup (ep => ep.GetObjectEditorAsync (obj2)).ReturnsAsync (editor2Mock.Object);
- var vm = new PanelViewModel (providerMock.Object, TargetPlatform.Default);
+ var vm = new PanelViewModel (new TargetPlatform (providerMock.Object));
vm.SelectedObjects.Add (obj2);
Assume.That (vm.Properties.Count, Is.EqualTo (2));
@@ -114,7 +114,7 @@ namespace Xamarin.PropertyEditing.Tests
var obj1 = new TestClass ();
var obj2 = new TestClass ();
- var vm = new PanelViewModel (provider, TargetPlatform.Default);
+ var vm = new PanelViewModel (new TargetPlatform (provider));
vm.SelectedObjects.Add (obj1);
var property = vm.Properties[0];
@@ -137,7 +137,7 @@ namespace Xamarin.PropertyEditing.Tests
var obj1 = new TestClass ();
var obj2 = new TestClass ();
- var vm = new PanelViewModel (provider, TargetPlatform.Default);
+ var vm = new PanelViewModel (new TargetPlatform (provider));
vm.SelectedObjects.Add (obj1);
vm.SelectedObjects.Add (obj2);
@@ -169,7 +169,7 @@ namespace Xamarin.PropertyEditing.Tests
var provider = new Mock<IEditorProvider> ();
provider.Setup (ep => ep.GetObjectEditorAsync (obj)).ReturnsAsync (editorMock.Object);
- var vm = new PanelViewModel (provider.Object, TargetPlatform.Default);
+ var vm = new PanelViewModel (new TargetPlatform (provider.Object));
vm.SelectedObjects.Add (obj);
Assume.That (vm.Properties.Count, Is.EqualTo (2));
@@ -199,7 +199,7 @@ namespace Xamarin.PropertyEditing.Tests
var provider = new Mock<IEditorProvider> ();
provider.Setup (ep => ep.GetObjectEditorAsync (obj)).ReturnsAsync (editorMock.Object);
- var vm = new PanelViewModel (provider.Object, TargetPlatform.Default);
+ var vm = new PanelViewModel (new TargetPlatform (provider.Object));
vm.SelectedObjects.Add (obj);
Assume.That (vm.Properties.Count, Is.EqualTo (1));
@@ -230,7 +230,7 @@ namespace Xamarin.PropertyEditing.Tests
var provider = new Mock<IEditorProvider> ();
provider.Setup (ep => ep.GetObjectEditorAsync (obj)).ReturnsAsync (editorMock.Object);
- var vm = new PanelViewModel (provider.Object, TargetPlatform.Default);
+ var vm = new PanelViewModel (new TargetPlatform (provider.Object));
// We need access to the custom reset method here to ensure compliance
// It's a bit hacky but this is unlikely to change. If it does, this test
@@ -272,7 +272,7 @@ namespace Xamarin.PropertyEditing.Tests
providerMock.Setup (ep => ep.GetObjectEditorAsync (baseObj)).ReturnsAsync (baseEditorMock.Object);
providerMock.Setup (ep => ep.GetObjectEditorAsync (derivedObj)).ReturnsAsync (derivedEditorMock.Object);
- var vm = new PanelViewModel (providerMock.Object, TargetPlatform.Default);
+ var vm = new PanelViewModel (new TargetPlatform (providerMock.Object));
vm.SelectedObjects.AddItems (new[] { baseObj, derivedObj });
Assume.That (vm.Properties.Count, Is.EqualTo (1));
@@ -306,7 +306,7 @@ namespace Xamarin.PropertyEditing.Tests
providerMock.Setup (ep => ep.GetObjectEditorAsync (baseObj)).ReturnsAsync (baseEditorMock.Object);
providerMock.Setup (ep => ep.GetObjectEditorAsync (derivedObj)).ReturnsAsync (derivedEditorMock.Object);
- var vm = new PanelViewModel (providerMock.Object, TargetPlatform.Default);
+ var vm = new PanelViewModel (new TargetPlatform (providerMock.Object));
vm.SelectedObjects.AddItems (new[] { baseObj, derivedObj });
Assume.That (vm.Properties.Count, Is.EqualTo (1));
@@ -344,7 +344,7 @@ namespace Xamarin.PropertyEditing.Tests
providerMock.Setup (ep => ep.GetObjectEditorAsync (baseObj)).ReturnsAsync (baseEditorMock.Object);
providerMock.Setup (ep => ep.GetObjectEditorAsync (derivedObj)).ReturnsAsync (derivedEditorMock.Object);
- var vm = new PanelViewModel (providerMock.Object, TargetPlatform.Default);
+ var vm = new PanelViewModel (new TargetPlatform (providerMock.Object));
vm.SelectedObjects.AddItems (new[] { baseObj, derivedObj });
Assume.That (vm.Properties.Count, Is.EqualTo (1));
@@ -386,7 +386,7 @@ namespace Xamarin.PropertyEditing.Tests
});
provider.Setup (ep => ep.GetObjectEditorAsync (obj2)).ReturnsAsync (editor2.Object);
- var vm = new PanelViewModel (provider.Object, TargetPlatform.Default);
+ var vm = new PanelViewModel (new TargetPlatform (provider.Object));
vm.SelectedObjects.Add (obj1);
Assume.That (returnObject, Is.Not.Null);
@@ -410,7 +410,7 @@ namespace Xamarin.PropertyEditing.Tests
var editor = await provider.GetObjectEditorAsync (obj);
Assume.That (editor.Properties.Count, Is.EqualTo (2));
- var vm = new PanelViewModel (provider, TargetPlatform.Default);
+ var vm = new PanelViewModel (new TargetPlatform (provider));
Assume.That (vm.ArrangeMode, Is.EqualTo (PropertyArrangeMode.Name));
vm.SelectedObjects.Add (obj);
@@ -429,7 +429,7 @@ namespace Xamarin.PropertyEditing.Tests
var editor = await provider.GetObjectEditorAsync (obj);
Assume.That (editor.Properties.Count, Is.EqualTo (2));
- var vm = new PanelViewModel (provider, TargetPlatform.Default);
+ var vm = new PanelViewModel (new TargetPlatform (provider));
Assume.That (vm.ArrangeMode, Is.EqualTo (PropertyArrangeMode.Name));
vm.SelectedObjects.Add (obj);
@@ -464,7 +464,7 @@ namespace Xamarin.PropertyEditing.Tests
var editor = await provider.GetObjectEditorAsync (obj);
Assume.That (editor.Properties.Count, Is.EqualTo (2));
- var vm = new PanelViewModel (provider, TargetPlatform.Default);
+ var vm = new PanelViewModel (new TargetPlatform (provider));
Assume.That (vm.ArrangeMode, Is.EqualTo (PropertyArrangeMode.Name));
vm.SelectedObjects.Add (obj);
@@ -486,7 +486,7 @@ namespace Xamarin.PropertyEditing.Tests
var editor = await provider.GetObjectEditorAsync (obj);
Assume.That (editor.Properties.Count, Is.EqualTo (2));
- var vm = new PanelViewModel (provider, TargetPlatform.Default) { ArrangeMode = PropertyArrangeMode.Category };
+ var vm = new PanelViewModel (new TargetPlatform (provider)) { ArrangeMode = PropertyArrangeMode.Category };
vm.SelectedObjects.Add (obj);
Assume.That (vm.ArrangedEditors, Is.Not.Empty);
@@ -510,13 +510,13 @@ namespace Xamarin.PropertyEditing.Tests
var provider = new Mock<IEditorProvider> ();
provider.Setup (p => p.GetObjectEditorAsync (editor.Target)).ReturnsAsync (editor);
- var platform = new TargetPlatform {
+ var platform = new TargetPlatform (provider.Object) {
GroupedTypes = new Dictionary<Type, string> {
{ typeof(string), "B" }
}
};
- var vm = new PanelViewModel (provider.Object, platform);
+ var vm = new PanelViewModel (platform);
Assume.That (vm.ArrangeMode, Is.EqualTo (PropertyArrangeMode.Name));
vm.ArrangeMode = PropertyArrangeMode.Category;
@@ -534,7 +534,7 @@ namespace Xamarin.PropertyEditing.Tests
var editor = await provider.GetObjectEditorAsync (obj);
Assume.That (editor.Properties.Count, Is.EqualTo (2));
- var vm = new PanelViewModel (provider, TargetPlatform.Default) { ArrangeMode = PropertyArrangeMode.Category };
+ var vm = new PanelViewModel (new TargetPlatform (provider)) { ArrangeMode = PropertyArrangeMode.Category };
vm.SelectedObjects.Add (obj);
Assume.That (vm.ArrangedEditors, Is.Not.Empty);
@@ -558,22 +558,22 @@ namespace Xamarin.PropertyEditing.Tests
var groupProp = new Mock<IPropertyInfo> ();
groupProp.SetupGet (p => p.Type).Returns (typeof(int));
- var mockPlatform = new TargetPlatform {
- GroupedTypes = new Dictionary<Type, string> {
- { typeof(int), "ints" }
- }
- };
-
var target = new object ();
var provider = new Mock<IEditorProvider> ();
provider.Setup (p => p.GetObjectEditorAsync (target))
.ReturnsAsync (new MockObjectEditor (normalProp.Object, groupProp.Object));
+ var mockPlatform = new TargetPlatform (provider.Object) {
+ GroupedTypes = new Dictionary<Type, string> {
+ { typeof(int), "ints" }
+ }
+ };
+
var editor = await provider.Object.GetObjectEditorAsync (target);
Assume.That (editor.Properties.Count, Is.EqualTo (2));
- var vm = new PanelViewModel (provider.Object, mockPlatform) { ArrangeMode = PropertyArrangeMode.Category };
+ var vm = new PanelViewModel (mockPlatform) { ArrangeMode = PropertyArrangeMode.Category };
vm.SelectedObjects.Add (target);
Assert.That (vm.ArrangedEditors.Count, Is.EqualTo (2));
@@ -591,22 +591,21 @@ namespace Xamarin.PropertyEditing.Tests
var groupProp = new Mock<IPropertyInfo> ();
groupProp.SetupGet (p => p.Type).Returns (typeof(int));
- var mockPlatform = new TargetPlatform {
- GroupedTypes = new Dictionary<Type, string> {
- { typeof(int), "ints" }
- }
- };
-
var target = new object ();
-
var provider = new Mock<IEditorProvider> ();
provider.Setup (p => p.GetObjectEditorAsync (target))
.ReturnsAsync (new MockObjectEditor (normalProp.Object, groupProp.Object));
+ var mockPlatform = new TargetPlatform (provider.Object) {
+ GroupedTypes = new Dictionary<Type, string> {
+ { typeof(int), "ints" }
+ }
+ };
+
var editor = await provider.Object.GetObjectEditorAsync (target);
Assume.That (editor.Properties.Count, Is.EqualTo (2));
- var vm = new PanelViewModel (provider.Object, mockPlatform) { ArrangeMode = PropertyArrangeMode.Category };
+ var vm = new PanelViewModel (mockPlatform) { ArrangeMode = PropertyArrangeMode.Category };
vm.SelectedObjects.Add (target);
Assume.That (vm.ArrangedEditors.Count, Is.EqualTo (2));
@@ -634,10 +633,10 @@ namespace Xamarin.PropertyEditing.Tests
provider.Setup (p => p.GetObjectEditorAsync (target))
.ReturnsAsync (new MockObjectEditor (normalProp.Object, groupProp.Object));
- var platform = new TargetPlatform ();
+ var platform = new TargetPlatform (provider.Object);
Assume.That (platform.GroupedTypes, Is.Null);
- var vm = new PanelViewModel (provider.Object, platform) {
+ var vm = new PanelViewModel (platform) {
ArrangeMode = PropertyArrangeMode.Category
};
@@ -646,7 +645,7 @@ namespace Xamarin.PropertyEditing.Tests
internal override PanelViewModel CreateVm (IEditorProvider provider)
{
- return new PanelViewModel (provider, TargetPlatform.Default);
+ return new PanelViewModel (new TargetPlatform (provider));
}
private TestContext context;
diff --git a/Xamarin.PropertyEditing.Tests/PropertyGroupViewModelTests.cs b/Xamarin.PropertyEditing.Tests/PropertyGroupViewModelTests.cs
index 6ceb11a..f11950a 100644
--- a/Xamarin.PropertyEditing.Tests/PropertyGroupViewModelTests.cs
+++ b/Xamarin.PropertyEditing.Tests/PropertyGroupViewModelTests.cs
@@ -1,4 +1,4 @@
-using System.Collections.Specialized;
+using System.Collections.Specialized;
using Moq;
using NUnit.Framework;
using Xamarin.PropertyEditing.ViewModels;
@@ -20,10 +20,10 @@ namespace Xamarin.PropertyEditing.Tests
prop2.SetupGet (p => p.Type).Returns (typeof(int));
editor = new MockObjectEditor (prop.Object, prop2.Object);
- var pvm = new PropertyViewModel<int> (TargetPlatform.Default, prop.Object, new[] { editor });
- var pvm2 = new PropertyViewModel<int> (TargetPlatform.Default, prop2.Object, new[] { editor });
+ var pvm = new PropertyViewModel<int> (MockEditorProvider.MockPlatform, prop.Object, new[] { editor });
+ var pvm2 = new PropertyViewModel<int> (MockEditorProvider.MockPlatform, prop2.Object, new[] { editor });
- var vm = new PropertyGroupViewModel (TargetPlatform.Default, "category", new[] { pvm, pvm2 }, new [] { editor});
+ var vm = new PropertyGroupViewModel (MockEditorProvider.MockPlatform, "category", new[] { pvm, pvm2 }, new [] { editor});
Assert.That (vm.Properties, Contains.Item (pvm));
Assert.That (vm.Properties, Contains.Item (pvm2));
}
@@ -47,10 +47,10 @@ namespace Xamarin.PropertyEditing.Tests
constraint.Setup (c => c.GetIsAvailableAsync (editor)).ReturnsAsync (true);
constraint2.Setup (c => c.GetIsAvailableAsync (editor)).ReturnsAsync (false);
- var pvm = new PropertyViewModel<int> (TargetPlatform.Default, prop.Object, new[] { editor });
- var pvm2 = new PropertyViewModel<int> (TargetPlatform.Default, prop2.Object, new[] { editor });
+ var pvm = new PropertyViewModel<int> (MockEditorProvider.MockPlatform, prop.Object, new[] { editor });
+ var pvm2 = new PropertyViewModel<int> (MockEditorProvider.MockPlatform, prop2.Object, new[] { editor });
- var vm = new PropertyGroupViewModel (TargetPlatform.Default, "category", new[] { pvm, pvm2 }, new [] { editor});
+ var vm = new PropertyGroupViewModel (MockEditorProvider.MockPlatform, "category", new[] { pvm, pvm2 }, new [] { editor});
Assert.That (vm.Properties, Contains.Item (pvm));
Assert.That (vm.Properties, Does.Not.Contain (pvm2));
}
@@ -77,10 +77,10 @@ namespace Xamarin.PropertyEditing.Tests
constraint.Setup (c => c.GetIsAvailableAsync (editor)).ReturnsAsync (true);
constraint2.Setup (c => c.GetIsAvailableAsync (editor)).ReturnsAsync (() => isAvailable);
- var pvm = new PropertyViewModel<int> (TargetPlatform.Default, prop.Object, new[] { editor });
- var pvm2 = new PropertyViewModel<int> (TargetPlatform.Default, prop2.Object, new[] { editor });
+ var pvm = new PropertyViewModel<int> (MockEditorProvider.MockPlatform, prop.Object, new[] { editor });
+ var pvm2 = new PropertyViewModel<int> (MockEditorProvider.MockPlatform, prop2.Object, new[] { editor });
- var vm = new PropertyGroupViewModel (TargetPlatform.Default, "category", new[] { pvm, pvm2 }, new [] { editor});
+ var vm = new PropertyGroupViewModel (MockEditorProvider.MockPlatform, "category", new[] { pvm, pvm2 }, new [] { editor});
Assume.That (vm.Properties, Contains.Item (pvm));
Assume.That (vm.Properties, Does.Not.Contain (pvm2));
@@ -117,10 +117,10 @@ namespace Xamarin.PropertyEditing.Tests
prop2.SetupGet (p => p.Name).Returns ("two");
editor = new MockObjectEditor (prop.Object, prop2.Object);
- var pvm = new PropertyViewModel<int> (TargetPlatform.Default, prop.Object, new[] { editor });
- var pvm2 = new PropertyViewModel<int> (TargetPlatform.Default, prop2.Object, new[] { editor });
+ var pvm = new PropertyViewModel<int> (MockEditorProvider.MockPlatform, prop.Object, new[] { editor });
+ var pvm2 = new PropertyViewModel<int> (MockEditorProvider.MockPlatform, prop2.Object, new[] { editor });
- var vm = new PropertyGroupViewModel (TargetPlatform.Default, "category", new[] { pvm, pvm2 }, new [] { editor});
+ var vm = new PropertyGroupViewModel (MockEditorProvider.MockPlatform, "category", new[] { pvm, pvm2 }, new [] { editor});
Assume.That (vm.Properties, Contains.Item (pvm));
Assume.That (vm.Properties, Contains.Item (pvm2));
@@ -155,10 +155,10 @@ namespace Xamarin.PropertyEditing.Tests
prop2.SetupGet (p => p.Name).Returns ("two");
editor = new MockObjectEditor (prop.Object, prop2.Object);
- var pvm = new PropertyViewModel<int> (TargetPlatform.Default, prop.Object, new[] { editor });
- var pvm2 = new PropertyViewModel<int> (TargetPlatform.Default, prop2.Object, new[] { editor });
+ var pvm = new PropertyViewModel<int> (MockEditorProvider.MockPlatform, prop.Object, new[] { editor });
+ var pvm2 = new PropertyViewModel<int> (MockEditorProvider.MockPlatform, prop2.Object, new[] { editor });
- var vm = new PropertyGroupViewModel (TargetPlatform.Default, "category", new[] { pvm, pvm2 }, new [] { editor});
+ var vm = new PropertyGroupViewModel (MockEditorProvider.MockPlatform, "category", new[] { pvm, pvm2 }, new [] { editor});
Assume.That (vm.Properties, Contains.Item (pvm));
Assume.That (vm.Properties, Contains.Item (pvm2));
diff --git a/Xamarin.PropertyEditing.Tests/PropertyViewModelTests.cs b/Xamarin.PropertyEditing.Tests/PropertyViewModelTests.cs
index 18b8e30..e1300a8 100644
--- a/Xamarin.PropertyEditing.Tests/PropertyViewModelTests.cs
+++ b/Xamarin.PropertyEditing.Tests/PropertyViewModelTests.cs
@@ -847,7 +847,7 @@ namespace Xamarin.PropertyEditing.Tests
var value = GetNonDefaultRandomTestValue ();
string custom = value.ToString ();
- var platform = new TargetPlatform {
+ var platform = new TargetPlatform (new MockEditorProvider()) {
SupportsCustomExpressions = true
};
@@ -873,7 +873,7 @@ namespace Xamarin.PropertyEditing.Tests
var value = GetNonDefaultRandomTestValue ();
string custom = value.ToString ();
- var platform = new TargetPlatform {
+ var platform = new TargetPlatform (new MockEditorProvider()) {
SupportsCustomExpressions = true
};
@@ -1059,7 +1059,7 @@ namespace Xamarin.PropertyEditing.Tests
protected TViewModel GetViewModel (IPropertyInfo property, IEnumerable<IObjectEditor> editors)
{
- return GetViewModel (TargetPlatform.Default, property, editors);
+ return GetViewModel (MockEditorProvider.MockPlatform, property, editors);
}
protected abstract TViewModel GetViewModel (TargetPlatform platform, IPropertyInfo property, IEnumerable<IObjectEditor> editors);
diff --git a/Xamarin.PropertyEditing.Tests/SolidBrushPropertyViewModelTests.cs b/Xamarin.PropertyEditing.Tests/SolidBrushPropertyViewModelTests.cs
index 16ba562..fb5f0dd 100644
--- a/Xamarin.PropertyEditing.Tests/SolidBrushPropertyViewModelTests.cs
+++ b/Xamarin.PropertyEditing.Tests/SolidBrushPropertyViewModelTests.cs
@@ -330,7 +330,7 @@ namespace Xamarin.PropertyEditing.Tests
mockProperty.As<IColorSpaced> ().SetupGet (pi => pi.ColorSpaces).Returns (SampleColorSpaces);
var mockEditor = new MockObjectEditor (mockProperty.Object);
- return new BrushPropertyViewModel (TargetPlatform.Default, mockProperty.Object, new[] { mockEditor });
+ return new BrushPropertyViewModel (MockEditorProvider.MockPlatform, mockProperty.Object, new[] { mockEditor });
}
}
}
diff --git a/Xamarin.PropertyEditing.Windows.Standalone/MainWindow.xaml.cs b/Xamarin.PropertyEditing.Windows.Standalone/MainWindow.xaml.cs
index 0acdd2c..d7d4028 100644
--- a/Xamarin.PropertyEditing.Windows.Standalone/MainWindow.xaml.cs
+++ b/Xamarin.PropertyEditing.Windows.Standalone/MainWindow.xaml.cs
@@ -15,7 +15,7 @@ namespace Xamarin.PropertyEditing.Windows.Standalone
public MainWindow ()
{
InitializeComponent ();
- this.panel.TargetPlatform = new TargetPlatform {
+ this.panel.TargetPlatform = new TargetPlatform (new MockEditorProvider()) {
SupportsCustomExpressions = true,
SupportsMaterialDesign = true,
SupportsBrushOpacity = false,
@@ -23,7 +23,6 @@ namespace Xamarin.PropertyEditing.Windows.Standalone
{ typeof(CommonBrush), "Brush" }
}
};
- this.panel.EditorProvider = new MockEditorProvider ();
this.panel.ResourceProvider = new MockResourceProvider ();
#if USE_VS_ICONS
@@ -41,7 +40,7 @@ namespace Xamarin.PropertyEditing.Windows.Standalone
} else {
inspectedObject = mockedControl.MockedControl;
if (mockedControl is MockedSampleControlButton mockedButton) {
- IObjectEditor editor = await this.panel.EditorProvider.GetObjectEditorAsync (inspectedObject);
+ IObjectEditor editor = await this.panel.TargetPlatform.EditorProvider.GetObjectEditorAsync (inspectedObject);
await mockedButton.SetBrushInitialValueAsync (editor, new CommonSolidBrush (20, 120, 220, 240, "sRGB"));
await mockedButton.SetMaterialDesignBrushInitialValueAsync (editor, new CommonSolidBrush (0x65, 0x1F, 0xFF, 200));
await mockedButton.SetReadOnlyBrushInitialValueAsync (editor, new CommonSolidBrush (240, 220, 15, 190));
diff --git a/Xamarin.PropertyEditing.Windows/PropertyEditorPanel.cs b/Xamarin.PropertyEditing.Windows/PropertyEditorPanel.cs
index a83c194..421973b 100644
--- a/Xamarin.PropertyEditing.Windows/PropertyEditorPanel.cs
+++ b/Xamarin.PropertyEditing.Windows/PropertyEditorPanel.cs
@@ -28,17 +28,8 @@ namespace Xamarin.PropertyEditing.Windows
SelectedItems = selectedItems;
}
- public static readonly DependencyProperty EditorProviderProperty = DependencyProperty.Register (
- nameof(EditorProvider), typeof(IEditorProvider), typeof(PropertyEditorPanel), new PropertyMetadata (default(IEditorProvider), (o, args) => ((PropertyEditorPanel)o).OnProviderChanged()));
-
- public IEditorProvider EditorProvider
- {
- get { return (IEditorProvider) GetValue (EditorProviderProperty); }
- set { SetValue (EditorProviderProperty, value); }
- }
-
public static readonly DependencyProperty ResourceProviderProperty = DependencyProperty.Register (
- nameof(ResourceProvider), typeof(IResourceProvider), typeof(PropertyEditorPanel), new PropertyMetadata (default(IResourceProvider), (o, args) => ((PropertyEditorPanel)o).OnProviderChanged()));
+ nameof(ResourceProvider), typeof(IResourceProvider), typeof(PropertyEditorPanel), new PropertyMetadata (default(IResourceProvider), (o, args) => ((PropertyEditorPanel)o).OnTargetPlatformChanged()));
public IResourceProvider ResourceProvider
{
@@ -47,7 +38,7 @@ namespace Xamarin.PropertyEditing.Windows
}
public static readonly DependencyProperty TargetPlatformProperty = DependencyProperty.Register (
- "TargetPlatform", typeof(TargetPlatform), typeof(PropertyEditorPanel), new PropertyMetadata (TargetPlatform.Default));
+ "TargetPlatform", typeof(TargetPlatform), typeof(PropertyEditorPanel), new PropertyMetadata (null, (o,e) => ((PropertyEditorPanel)o).OnTargetPlatformChanged ()));
public TargetPlatform TargetPlatform
{
@@ -97,7 +88,7 @@ namespace Xamarin.PropertyEditing.Windows
this.paneSelector = (ChoiceControl) GetTemplateChild ("paneSelector");
this.paneSelector.SelectedValue = EditingPane.Properties;
this.paneSelector.SelectedItemChanged += OnPaneChanged;
- OnProviderChanged();
+ OnTargetPlatformChanged();
if (this.vm.SelectedObjects.Count > 0)
OnArrangeModeChanged (ArrangeMode);
@@ -153,7 +144,7 @@ namespace Xamarin.PropertyEditing.Windows
OnArrangeModeChanged (ArrangeMode);
}
- private void OnProviderChanged ()
+ private void OnTargetPlatformChanged ()
{
if (this.root == null)
return;
@@ -162,8 +153,8 @@ namespace Xamarin.PropertyEditing.Windows
this.vm.PropertyChanged -= OnVmPropertyChanged;
PanelViewModel newVm = null;
- if (EditorProvider != null) {
- newVm = new PanelViewModel (EditorProvider, TargetPlatform) {
+ if (TargetPlatform != null) {
+ newVm = new PanelViewModel (TargetPlatform) {
ResourceProvider = ResourceProvider
};
}
diff --git a/Xamarin.PropertyEditing/TargetPlatform.cs b/Xamarin.PropertyEditing/TargetPlatform.cs
index 2cc42fc..940307a 100644
--- a/Xamarin.PropertyEditing/TargetPlatform.cs
+++ b/Xamarin.PropertyEditing/TargetPlatform.cs
@@ -10,6 +10,22 @@ namespace Xamarin.PropertyEditing
/// </summary>
public sealed class TargetPlatform
{
+ public TargetPlatform (IEditorProvider provider)
+ {
+ if (provider == null)
+ throw new ArgumentNullException (nameof(provider));
+
+ EditorProvider = provider;
+ }
+
+ /// <summary>
+ /// Gets the <see cref="IEditorProvider"/> associated with this platform.
+ /// </summary>
+ public IEditorProvider EditorProvider
+ {
+ get;
+ }
+
/// <summary>
/// Gets or sets whether the platform supports custom expressions (default false).
/// </summary>
@@ -43,10 +59,5 @@ namespace Xamarin.PropertyEditing
set;
}
- public static readonly TargetPlatform Default = new TargetPlatform {
- GroupedTypes = new Dictionary<Type, string> {
- { typeof(CommonBrush), "Brush" }
- }
- };
}
}
diff --git a/Xamarin.PropertyEditing/ViewModels/ObjectPropertyViewModel.cs b/Xamarin.PropertyEditing/ViewModels/ObjectPropertyViewModel.cs
index 16f1b21..e491b23 100644
--- a/Xamarin.PropertyEditing/ViewModels/ObjectPropertyViewModel.cs
+++ b/Xamarin.PropertyEditing/ViewModels/ObjectPropertyViewModel.cs
@@ -26,16 +26,13 @@ namespace Xamarin.PropertyEditing.ViewModels
internal class ObjectPropertyViewModel
: PropertyViewModel
{
- public ObjectPropertyViewModel (IEditorProvider provider, TargetPlatform targetPlatform, IPropertyInfo property, IEnumerable<IObjectEditor> editors)
+ public ObjectPropertyViewModel (TargetPlatform targetPlatform, IPropertyInfo property, IEnumerable<IObjectEditor> editors)
: base (targetPlatform, property, editors)
{
- if (provider == null)
- throw new ArgumentNullException (nameof(provider));
if (targetPlatform == null)
throw new ArgumentNullException (nameof(targetPlatform));
- this.provider = provider;
- ValueModel = new ObjectViewModel (provider, targetPlatform);
+ ValueModel = new ObjectViewModel (targetPlatform);
RequestCurrentValueUpdate();
QueryTypes();
@@ -171,7 +168,6 @@ namespace Xamarin.PropertyEditing.ViewModels
}
}
- private readonly IEditorProvider provider;
private AsyncValue<IReadOnlyDictionary<IAssemblyInfo, ILookup<string, ITypeInfo>>> assignableTypes;
private bool createInstancePending;
private string customExpression;
@@ -282,7 +278,7 @@ namespace Xamarin.PropertyEditing.ViewModels
}
await SetValueAsync (new ValueInfo<object> {
- Value = await this.provider.CreateObjectAsync (selectedType),
+ Value = await TargetPlatform.EditorProvider.CreateObjectAsync (selectedType),
ValueDescriptor = selectedType,
Source = ValueSource.Local
});
diff --git a/Xamarin.PropertyEditing/ViewModels/ObjectViewModel.cs b/Xamarin.PropertyEditing/ViewModels/ObjectViewModel.cs
index 63f52c0..1d560e8 100644
--- a/Xamarin.PropertyEditing/ViewModels/ObjectViewModel.cs
+++ b/Xamarin.PropertyEditing/ViewModels/ObjectViewModel.cs
@@ -3,8 +3,8 @@ namespace Xamarin.PropertyEditing.ViewModels
internal class ObjectViewModel
: PropertiesViewModel
{
- public ObjectViewModel (IEditorProvider provider, TargetPlatform targetPlatform)
- : base (provider, targetPlatform)
+ public ObjectViewModel (TargetPlatform targetPlatform)
+ : base (targetPlatform)
{
}
}
diff --git a/Xamarin.PropertyEditing/ViewModels/PanelViewModel.cs b/Xamarin.PropertyEditing/ViewModels/PanelViewModel.cs
index b75167c..ec09f31 100644
--- a/Xamarin.PropertyEditing/ViewModels/PanelViewModel.cs
+++ b/Xamarin.PropertyEditing/ViewModels/PanelViewModel.cs
@@ -7,8 +7,8 @@ namespace Xamarin.PropertyEditing.ViewModels
internal class PanelViewModel
: PropertiesViewModel, IFilterable
{
- public PanelViewModel (IEditorProvider provider, TargetPlatform targetPlatform)
- : base (provider, targetPlatform)
+ public PanelViewModel (TargetPlatform targetPlatform)
+ : base (targetPlatform)
{
ArrangeModes = new List<ArrangeModeViewModel> {
new ArrangeModeViewModel (PropertyArrangeMode.Name, this),
diff --git a/Xamarin.PropertyEditing/ViewModels/PropertiesViewModel.cs b/Xamarin.PropertyEditing/ViewModels/PropertiesViewModel.cs
index d4ef9cb..51e0d27 100644
--- a/Xamarin.PropertyEditing/ViewModels/PropertiesViewModel.cs
+++ b/Xamarin.PropertyEditing/ViewModels/PropertiesViewModel.cs
@@ -13,14 +13,11 @@ namespace Xamarin.PropertyEditing.ViewModels
internal abstract class PropertiesViewModel
: NotifyingObject, INotifyDataErrorInfo
{
- public PropertiesViewModel (IEditorProvider provider, TargetPlatform targetPlatform)
+ public PropertiesViewModel (TargetPlatform targetPlatform)
{
- if (provider == null)
- throw new ArgumentNullException (nameof (provider));
if (targetPlatform == null)
throw new ArgumentNullException (nameof(targetPlatform));
- EditorProvider = provider;
TargetPlatform = targetPlatform;
this.selectedObjects.CollectionChanged += OnSelectedObjectsChanged;
@@ -109,10 +106,7 @@ namespace Xamarin.PropertyEditing.ViewModels
public bool HasErrors => this.errors.IsValueCreated && this.errors.Value.Count > 0;
- protected IEditorProvider EditorProvider
- {
- get;
- }
+ protected IEditorProvider EditorProvider => TargetPlatform.EditorProvider;
protected IReadOnlyList<IObjectEditor> ObjectEditors => this.objEditors;
@@ -450,8 +444,6 @@ namespace Xamarin.PropertyEditing.ViewModels
: typeof(PredefinedValuesViewModel<>).MakeGenericType (hasPredefinedValues.GenericTypeArguments[0]);
return (PropertyViewModel) Activator.CreateInstance (type, TargetPlatform, property, this.objEditors);
- } else if (property.Type == typeof(object)) {
- return new ObjectPropertyViewModel (EditorProvider, TargetPlatform, property, this.objEditors);
}
if (ViewModelMap.TryGetValue (property.Type, out var vmFactory))
@@ -475,6 +467,7 @@ namespace Xamarin.PropertyEditing.ViewModels
{ typeof(CommonSize), (tp,p,e) => new SizePropertyViewModel (tp, p, e) },
{ typeof(CommonRectangle), (tp,p,e) => new RectanglePropertyViewModel (tp, p, e) },
{ typeof(CommonThickness), (tp,p, e) => new ThicknessPropertyViewModel (tp, p, e) },
+ { typeof(object), (tp,p,e) => new ObjectPropertyViewModel (tp,p,e) },
};
}
}