using System.Windows;
using System.Windows.Controls;

namespace CyberX8_MainPages.Unity
{
    public class ConfigValueTemplateSelector : DataTemplateSelector
    {
        public DataTemplate EnumTemplate { get; set; }
        public DataTemplate BoolTemplate { get; set; }
        public DataTemplate NumbericTemplate { get; set; }
        public DataTemplate StringTemplate { get; set; }

        public override DataTemplate SelectTemplate(object item, DependencyObject container)
        {
            if (!(item is ConfigItem))
                return null;

            ConfigItem configItem = item as ConfigItem;

            DataTemplate curTemplate = null;
            switch (configItem.Type)
            {
                case DataType.Bool:
                    curTemplate = BoolTemplate;
                    break;
                case DataType.Enum:
                    curTemplate = EnumTemplate;
                    break;
                case DataType.Int:
                case DataType.Double:
                    curTemplate = StringTemplate;  // NumbericTemplate;
                    break;
                case DataType.String:
                    curTemplate = StringTemplate;
                    break;
            }

            return curTemplate;
        }
    }
}