57 lines
1.6 KiB
C#
57 lines
1.6 KiB
C#
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using Filtration.ThemeEditor.ViewModels;
|
|
using Filtration.ViewModels;
|
|
using Filtration.ViewModels.ToolPanes;
|
|
using Xceed.Wpf.AvalonDock.Layout;
|
|
|
|
namespace Filtration.Views.AvalonDock
|
|
{
|
|
class PanesTemplateSelector : DataTemplateSelector
|
|
{
|
|
public DataTemplate ItemFilterScriptTemplate { get; set; }
|
|
public DataTemplate BlockGroupBrowserTemplate { get; set; }
|
|
public DataTemplate SectionBrowserTemplate { get; set; }
|
|
public DataTemplate BlockOutputPreviewTemplate { get; set; }
|
|
public DataTemplate StartPageTemplate { get; set; }
|
|
public DataTemplate ThemeTemplate { get; set; }
|
|
|
|
public override DataTemplate SelectTemplate(object item, DependencyObject container)
|
|
{
|
|
var itemAsLayoutContent = item as LayoutContent;
|
|
|
|
if (item is ItemFilterScriptViewModel)
|
|
{
|
|
return ItemFilterScriptTemplate;
|
|
}
|
|
|
|
if (item is IThemeEditorViewModel)
|
|
{
|
|
return ThemeTemplate;
|
|
}
|
|
|
|
if (item is SectionBrowserViewModel)
|
|
{
|
|
return SectionBrowserTemplate;
|
|
}
|
|
|
|
if (item is BlockGroupBrowserViewModel)
|
|
{
|
|
return BlockGroupBrowserTemplate;
|
|
}
|
|
|
|
if (item is BlockOutputPreviewViewModel)
|
|
{
|
|
return BlockOutputPreviewTemplate;
|
|
}
|
|
|
|
if (item is StartPageViewModel)
|
|
{
|
|
return StartPageTemplate;
|
|
}
|
|
|
|
return base.SelectTemplate(item, container);
|
|
}
|
|
}
|
|
}
|