using Common.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;

namespace MegaRobo.C00225155App.MenuViews
{
    public class BoxTemplateSelector : DataTemplateSelector
    {
        // 样品工装模板
        public DataTemplate SampleBoxTemplate { get; set; }

        // 原液工装模板
        public DataTemplate SourceLiquidBoxTemplate { get; set; }

        // 粉末工装模板 16ml
        public DataTemplate PowderBoxTemplate_16ml { get; set; }

        // 粉末工装模板 125ml
        public DataTemplate PowderBoxTemplate_125ml { get; set; }

        // 96孔的Tip头工装模板
        public DataTemplate TipHeadersBoxTemplate { get; set; }

        // 空工装模板
        public DataTemplate EmptyBoxTemplate { get; set; }

        public override DataTemplate SelectTemplate(object item, DependencyObject container)
        {
            // 直接判断 item 的类型（BaseBottleBox 及其派生类）
            if (item == null) return EmptyBoxTemplate;

            // 样品工装
            if (item is SampleBottleBoxModel)
            {
                return SampleBoxTemplate;
            }
            // 原液工装
            else if (item is SourceLiquidBottleBoxModel)
            {
                return SourceLiquidBoxTemplate;
            }
            // 16ml粉末工装
            else if (item is SourcePowderBottleBoxModel)
            {
                return PowderBoxTemplate_16ml;
            }
            // 125ml粉末工装
            else if (item is SourcePowderBottleBoxModel_125ml)
            {
                return PowderBoxTemplate_125ml;
            }
            // Tip头工装
            else if (item is TipBoxModel)
            {
                return TipHeadersBoxTemplate;
            }
            // 基类 BaseBottleBox（无具体工装类型，显示空）
            else if (item is BaseBottleBox baseBox && baseBox.IsEmpty)
            {
                return EmptyBoxTemplate;
            }

            // 其他情况默认空工装
            return EmptyBoxTemplate;
        }
    }

}
