Browse Source

Rename TypedItemContainerGenerator

As ItemContainerGenerator<T>.
pull/69/head
Steven Kirk 11 years ago
parent
commit
eb6bd28664
  1. 40
      Perspex.Controls/Generators/ItemContainerGenerator`1.cs
  2. 31
      Perspex.Controls/Generators/TypedItemContainerGenerator.cs
  3. 2
      Perspex.Controls/IContentControl.cs
  4. 2
      Perspex.Controls/ListBox.cs
  5. 2
      Perspex.Controls/Perspex.Controls.csproj
  6. 2
      Perspex.Controls/Primitives/TabStrip.cs
  7. 4
      Tests/Perspex.Controls.UnitTests/Presenters/DeckPresenterTests.cs
  8. 6
      Tests/Perspex.Controls.UnitTests/Presenters/ItemsPresenterTests.cs

40
Perspex.Controls/Generators/ItemContainerGenerator`1.cs

@ -0,0 +1,40 @@
// -----------------------------------------------------------------------
// <copyright file="ItemContainerGenerator`1.cs" company="Steven Kirk">
// Copyright 2015 MIT Licence. See licence.md for more information.
// </copyright>
// -----------------------------------------------------------------------
namespace Perspex.Controls.Generators
{
using Perspex.Controls.Templates;
/// <summary>
/// Creates containers for items and maintains a list of created containers.
/// </summary>
/// <typeparam name="T">The type of the container.</typeparam>
public class ItemContainerGenerator<T> : ItemContainerGenerator where T : class, IContentControl, new()
{
/// <summary>
/// Initializes a new instance of the <see cref="ItemContainerGenerator{T}"/> class.
/// </summary>
/// <param name="owner">The owner control.</param>
public ItemContainerGenerator(Control owner)
: base(owner)
{
}
/// <inheritdoc/>
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;
}
}
}

31
Perspex.Controls/Generators/TypedItemContainerGenerator.cs

@ -1,31 +0,0 @@
// -----------------------------------------------------------------------
// <copyright file="TypedItemContainerGenerator.cs" company="Steven Kirk">
// Copyright 2014 MIT Licence. See licence.md for more information.
// </copyright>
// -----------------------------------------------------------------------
namespace Perspex.Controls.Generators
{
using Perspex.Controls.Templates;
public class TypedItemContainerGenerator<T> : 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;
}
}
}

2
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; }

2
Perspex.Controls/ListBox.cs

@ -13,7 +13,7 @@ namespace Perspex.Controls
{
protected override IItemContainerGenerator CreateItemContainerGenerator()
{
return new TypedItemContainerGenerator<ListBoxItem>(this);
return new ItemContainerGenerator<ListBoxItem>(this);
}
}
}

2
Perspex.Controls/Perspex.Controls.csproj

@ -91,7 +91,7 @@
<Compile Include="Templates\DataTemplateExtensions.cs" />
<Compile Include="Templates\DataTemplate.cs" />
<Compile Include="Generators\TreeItemContainerGenerator.cs" />
<Compile Include="Generators\TypedItemContainerGenerator.cs" />
<Compile Include="Generators\ItemContainerGenerator`1.cs" />
<Compile Include="Generators\ItemContainerGenerator.cs" />
<Compile Include="IGlobalDataTemplates.cs" />
<Compile Include="Templates\DataTemplates.cs" />

2
Perspex.Controls/Primitives/TabStrip.cs

@ -45,7 +45,7 @@ namespace Perspex.Controls.Primitives
}
else
{
result = new TypedItemContainerGenerator<TabItem>(this);
result = new ItemContainerGenerator<TabItem>(this);
}
////result.StateChanged += this.ItemsContainerGeneratorStateChanged;

4
Tests/Perspex.Controls.UnitTests/Presenters/DeckPresenterTests.cs

@ -34,7 +34,7 @@ namespace Perspex.Controls.UnitTests.Presenters
TemplatedParent = parent,
};
Assert.IsType<TypedItemContainerGenerator<TestItem>>(target.ItemContainerGenerator);
Assert.IsType<ItemContainerGenerator<TestItem>>(target.ItemContainerGenerator);
}
[Fact]
@ -76,7 +76,7 @@ namespace Perspex.Controls.UnitTests.Presenters
{
protected override IItemContainerGenerator CreateItemContainerGenerator()
{
return new TypedItemContainerGenerator<TestItem>(this);
return new ItemContainerGenerator<TestItem>(this);
}
}
}

6
Tests/Perspex.Controls.UnitTests/Presenters/ItemsPresenterTests.cs

@ -42,7 +42,7 @@ namespace Perspex.Controls.UnitTests.Presenters
Items = new[] { "foo", "bar" },
};
target.ItemContainerGenerator = new TypedItemContainerGenerator<ListBoxItem>(target);
target.ItemContainerGenerator = new ItemContainerGenerator<ListBoxItem>(target);
target.ApplyTemplate();
Assert.Equal(2, target.Panel.Children.Count);
@ -59,7 +59,7 @@ namespace Perspex.Controls.UnitTests.Presenters
TemplatedParent = parent,
};
Assert.IsType<TypedItemContainerGenerator<TestItem>>(target.ItemContainerGenerator);
Assert.IsType<ItemContainerGenerator<TestItem>>(target.ItemContainerGenerator);
}
[Fact]
@ -195,7 +195,7 @@ namespace Perspex.Controls.UnitTests.Presenters
{
protected override IItemContainerGenerator CreateItemContainerGenerator()
{
return new TypedItemContainerGenerator<TestItem>(this);
return new ItemContainerGenerator<TestItem>(this);
}
}
}

Loading…
Cancel
Save