From eb6bd28664bf43f5318d11708c78d4b92c055877 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Wed, 29 Jul 2015 01:58:01 +0200 Subject: [PATCH] Rename TypedItemContainerGenerator As ItemContainerGenerator. --- .../Generators/ItemContainerGenerator`1.cs | 40 +++++++++++++++++++ .../Generators/TypedItemContainerGenerator.cs | 31 -------------- Perspex.Controls/IContentControl.cs | 2 +- Perspex.Controls/ListBox.cs | 2 +- Perspex.Controls/Perspex.Controls.csproj | 2 +- Perspex.Controls/Primitives/TabStrip.cs | 2 +- .../Presenters/DeckPresenterTests.cs | 4 +- .../Presenters/ItemsPresenterTests.cs | 6 +-- 8 files changed, 49 insertions(+), 40 deletions(-) create mode 100644 Perspex.Controls/Generators/ItemContainerGenerator`1.cs delete mode 100644 Perspex.Controls/Generators/TypedItemContainerGenerator.cs diff --git a/Perspex.Controls/Generators/ItemContainerGenerator`1.cs b/Perspex.Controls/Generators/ItemContainerGenerator`1.cs new file mode 100644 index 0000000000..619bec6def --- /dev/null +++ b/Perspex.Controls/Generators/ItemContainerGenerator`1.cs @@ -0,0 +1,40 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + +namespace Perspex.Controls.Generators +{ + using Perspex.Controls.Templates; + + /// + /// Creates containers for items and maintains a list of created containers. + /// + /// The type of the container. + public class ItemContainerGenerator : ItemContainerGenerator where T : class, IContentControl, new() + { + /// + /// Initializes a new instance of the class. + /// + /// The owner control. + public ItemContainerGenerator(Control owner) + : base(owner) + { + } + + /// + protected override IControl CreateContainer(object item, IDataTemplate itemTemplate) + { + T result = item as T; + + if (result == null) + { + result = new T(); + result.Content = this.Owner.MaterializeDataTemplate(item); + } + + return result; + } + } +} diff --git a/Perspex.Controls/Generators/TypedItemContainerGenerator.cs b/Perspex.Controls/Generators/TypedItemContainerGenerator.cs deleted file mode 100644 index aca08bc3a6..0000000000 --- a/Perspex.Controls/Generators/TypedItemContainerGenerator.cs +++ /dev/null @@ -1,31 +0,0 @@ -// ----------------------------------------------------------------------- -// -// Copyright 2014 MIT Licence. See licence.md for more information. -// -// ----------------------------------------------------------------------- - -namespace Perspex.Controls.Generators -{ - using Perspex.Controls.Templates; - - public class TypedItemContainerGenerator : ItemContainerGenerator where T : ContentControl, new() - { - public TypedItemContainerGenerator(Control owner) - : base(owner) - { - } - - protected override IControl CreateContainer(object item, IDataTemplate itemTemplate) - { - T result = item as T; - - if (result == null) - { - result = new T(); - result.Content = this.Owner.MaterializeDataTemplate(item); - } - - return result; - } - } -} diff --git a/Perspex.Controls/IContentControl.cs b/Perspex.Controls/IContentControl.cs index 56aea20d37..ec6489e7f1 100644 --- a/Perspex.Controls/IContentControl.cs +++ b/Perspex.Controls/IContentControl.cs @@ -7,7 +7,7 @@ namespace Perspex.Controls { using Perspex.Layout; - public interface IContentControl + public interface IContentControl : IControl { object Content { get; set; } diff --git a/Perspex.Controls/ListBox.cs b/Perspex.Controls/ListBox.cs index d085b38b61..6e02a0a1be 100644 --- a/Perspex.Controls/ListBox.cs +++ b/Perspex.Controls/ListBox.cs @@ -13,7 +13,7 @@ namespace Perspex.Controls { protected override IItemContainerGenerator CreateItemContainerGenerator() { - return new TypedItemContainerGenerator(this); + return new ItemContainerGenerator(this); } } } diff --git a/Perspex.Controls/Perspex.Controls.csproj b/Perspex.Controls/Perspex.Controls.csproj index 8dd68a6c89..ea0d640022 100644 --- a/Perspex.Controls/Perspex.Controls.csproj +++ b/Perspex.Controls/Perspex.Controls.csproj @@ -91,7 +91,7 @@ - + diff --git a/Perspex.Controls/Primitives/TabStrip.cs b/Perspex.Controls/Primitives/TabStrip.cs index 4a5eece014..069819ded7 100644 --- a/Perspex.Controls/Primitives/TabStrip.cs +++ b/Perspex.Controls/Primitives/TabStrip.cs @@ -45,7 +45,7 @@ namespace Perspex.Controls.Primitives } else { - result = new TypedItemContainerGenerator(this); + result = new ItemContainerGenerator(this); } ////result.StateChanged += this.ItemsContainerGeneratorStateChanged; diff --git a/Tests/Perspex.Controls.UnitTests/Presenters/DeckPresenterTests.cs b/Tests/Perspex.Controls.UnitTests/Presenters/DeckPresenterTests.cs index 7cd807006a..abff01ccc6 100644 --- a/Tests/Perspex.Controls.UnitTests/Presenters/DeckPresenterTests.cs +++ b/Tests/Perspex.Controls.UnitTests/Presenters/DeckPresenterTests.cs @@ -34,7 +34,7 @@ namespace Perspex.Controls.UnitTests.Presenters TemplatedParent = parent, }; - Assert.IsType>(target.ItemContainerGenerator); + Assert.IsType>(target.ItemContainerGenerator); } [Fact] @@ -76,7 +76,7 @@ namespace Perspex.Controls.UnitTests.Presenters { protected override IItemContainerGenerator CreateItemContainerGenerator() { - return new TypedItemContainerGenerator(this); + return new ItemContainerGenerator(this); } } } diff --git a/Tests/Perspex.Controls.UnitTests/Presenters/ItemsPresenterTests.cs b/Tests/Perspex.Controls.UnitTests/Presenters/ItemsPresenterTests.cs index 1b71d8c000..8ea0724bf1 100644 --- a/Tests/Perspex.Controls.UnitTests/Presenters/ItemsPresenterTests.cs +++ b/Tests/Perspex.Controls.UnitTests/Presenters/ItemsPresenterTests.cs @@ -42,7 +42,7 @@ namespace Perspex.Controls.UnitTests.Presenters Items = new[] { "foo", "bar" }, }; - target.ItemContainerGenerator = new TypedItemContainerGenerator(target); + target.ItemContainerGenerator = new ItemContainerGenerator(target); target.ApplyTemplate(); Assert.Equal(2, target.Panel.Children.Count); @@ -59,7 +59,7 @@ namespace Perspex.Controls.UnitTests.Presenters TemplatedParent = parent, }; - Assert.IsType>(target.ItemContainerGenerator); + Assert.IsType>(target.ItemContainerGenerator); } [Fact] @@ -195,7 +195,7 @@ namespace Perspex.Controls.UnitTests.Presenters { protected override IItemContainerGenerator CreateItemContainerGenerator() { - return new TypedItemContainerGenerator(this); + return new ItemContainerGenerator(this); } } }