﻿<hb:PluginControl x:Class="Plugin.TestBuilder.TestBuilder"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:hb="clr-namespace:HMI.Base;assembly=HMI.Base"
             xmlns:pw="https://opensource.panuon.com/wpf"
             xmlns:pu="https://opensource.panuon.com/wpf-ui"
             xmlns:ui="clr-namespace:Plugin.TestBuilder.UI"
             xmlns:dd="urn:gong-wpf-dragdrop"
             xmlns:dp="clr-namespace:HMI.UI.DpUtil;assembly=HMI.UI"
             xmlns:hui="clr-namespace:HMI.UI;assembly=HMI.UI"
             mc:Ignorable="d"
             d:DesignHeight="450" d:DesignWidth="800">
    <UserControl.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <pu:StyleDictionary Includes="ListBox"/>
                <ResourceDictionary Source="/HMI.UI;component/Controls/TreeGrid/Themes/TreeItemContentControl.xaml"/>
                <ResourceDictionary Source="/HMI.UI;component/Controls/TreeGrid/Themes/TreeGrid.xaml"/>
            </ResourceDictionary.MergedDictionaries>

            <!-- 树Grid组件 -->
            <hui:TreeItemDataConverter x:Key="TreeItemDataConverter"/>

            <CollectionViewSource x:Key="TreeGridFilter" Filter="CollectionViewSource_Filter" 
                       Source="{Binding Datasource,Converter={StaticResource TreeItemDataConverter},ConverterParameter=Children}">

            </CollectionViewSource>
        </ResourceDictionary>
    </UserControl.Resources>

    <Border Style="{StaticResource CardBoarder}">
        <Grid dp:GridHelper.Space="10" Cursor="">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition/>
            </Grid.RowDefinitions>


            <DockPanel>
                <StackPanel DockPanel.Dock="Right" Style="{StaticResource ButtonGroup}">
                    <Button Style="{StaticResource AddBtn}"
                            x:Name="addBtn" Click="Button_Click"/>
                    <Button Style="{StaticResource RfhBtn}"
                            x:Name="resetBtn" Click="Button_Click"/>
                    <Button x:Name="exportBtn"
                            Style="{StaticResource ExportBtn}" Click="Button_Click"/>
                </StackPanel>
                <TextBlock FontSize="{StaticResource TitleFontSize}" 
VerticalAlignment="Center" HorizontalAlignment="Left" Text="adsad"/>

                <!--<StackPanel Style="{StaticResource ButtonGroup}" HorizontalAlignment="Left">
                    <TextBlock Style="{StaticResource TitleBox}" FontSize="14" Text="{DynamicResource log.level}"/>
                    <ComboBox Style="{StaticResource FormComboxStyle}" x:Name="levelInput" 
                              Width="180"
                              SelectedValuePath="Content">
                        <ComboBoxItem Content="Debug"/>
                        <ComboBoxItem Content="Info"/>
                        <ComboBoxItem Content="Warn"/>
                        <ComboBoxItem Content="Error"/>
                    </ComboBox>

                    <TextBlock Style="{StaticResource TitleBox}" FontSize="14" Text="{DynamicResource App.StartTime}"/>
                    <pu:DateTimePicker Style="{StaticResource TimePicker}" x:Name="startTimeInput"/>

                    <TextBlock Style="{StaticResource TitleBox}" FontSize="14" Text="{DynamicResource App.EndTime}"/>
                    <pu:DateTimePicker Style="{StaticResource TimePicker}" x:Name="endTimeInput"/>

                    <TextBlock Style="{StaticResource TitleBox}" FontSize="14" Text="{DynamicResource log.source}"/>
                    <TextBox Style="{StaticResource EditorTextBoxStyle}" x:Name="sourceInput" Width="180"/>

                    <TextBlock Style="{StaticResource TitleBox}" FontSize="14" Text="{DynamicResource log.autoRefresh}"/>
                    <CheckBox x:Name="autoRfhInput" HorizontalAlignment="Center" VerticalAlignment="Center"
                              IsChecked="{Binding AutoRfh,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
                </StackPanel>-->
            </DockPanel>

            <hui:TreeDataGrid Grid.Row="1" x:Name="treeDataGrid" 
                              ExpandedChange="treeDataGrid_ExpandedChange" 
                              ItemsSource="{Binding Source={StaticResource TreeGridFilter}}" 
                              dd:DragDrop.IsDragSource="True"
                              dd:DragDrop.IsDropTarget="True"
                              dd:DragDrop.ShowAlwaysDropTargetAdorner="True"
                              dd:DragDrop.UseDefaultDragAdorner="True"
                              dd:DragDrop.DropHandler="{Binding dropHandler}"
                              
                              Style="{StaticResource DefaultDataGrid}" ColumnWidth="*">
                <!--LoadingRow="treeDataGrid_LoadingRow">-->
                <!--<hui:TreeDataGrid.Resources>
                   
                </hui:TreeDataGrid.Resources>-->
                <hui:TreeDataGrid.Columns>
                    <DataGridTemplateColumn IsReadOnly="True">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <hui:TreeItemContentControl IconLineStroke="Black" TreeData="{Binding }"/>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>

                    

                    <DataGridTextColumn Header="名称" x:Name="nameCol" Binding="{Binding Data.Name}"></DataGridTextColumn>
                    <DataGridTextColumn Header="测试项" Binding="{Binding Item}"></DataGridTextColumn>
                    <DataGridTextColumn Header="上限" Binding="{Binding LimitUp}"></DataGridTextColumn>
                    <DataGridTextColumn Header="下限" Binding="{Binding LimitDown}"></DataGridTextColumn>
                    <DataGridTextColumn Header="单位" Binding="{Binding Unit}"></DataGridTextColumn>
                    <DataGridTextColumn Header="启用" Binding="{Binding IsEnable}"></DataGridTextColumn>
                    <DataGridTextColumn Header="MES上传" Binding="{Binding IsUploadMes}"></DataGridTextColumn>
                    <DataGridTextColumn Header="重测" Binding="{Binding IsRetest}"></DataGridTextColumn>

                </hui:TreeDataGrid.Columns>
            </hui:TreeDataGrid>

            <!--<DataGrid Style="{StaticResource DefaultDataGrid}" AutoGenerateColumns="False"
                CanUserSortColumns="False"
              FrozenColumnCount="1" Background="#FFF" Grid.Row="1" 
              BorderThickness="0"
              dd:DragDrop.IsDragSource="True"
              dd:DragDrop.IsDropTarget="True"
              dd:DragDrop.ShowAlwaysDropTargetAdorner="True"
              dd:DragDrop.UseDefaultDragAdorner="True"
            IsReadOnly="False"
                      x:Name="table"
              dd:DragDrop.SelectDroppedItems="True"
              dd:DragDrop.DropHandler="{Binding dropHandler}"       
                      RowDetailsVisibilityMode="Collapsed"
              ItemsSource="{Binding Datasource}">

                <DataGrid.RowDetailsTemplate>
                    <DataTemplate>
                        <DataGrid Style="{StaticResource DefaultDataGrid}"
            HeadersVisibility="None"
                          ItemsSource="{Binding Children}">
                            <DataGrid.Columns>
                                <DataGridTemplateColumn Header="#" CanUserResize="False">
                                    <DataGridTemplateColumn.CellTemplate>
                                        <DataTemplate>
                                            <TextBlock Text="{Binding Converter={StaticResource rowNumber},
RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
                                        </DataTemplate>
                                    </DataGridTemplateColumn.CellTemplate>
                                </DataGridTemplateColumn>

                                <DataGridTextColumn Header="名称" Width="{Binding ElementName=nameCol,Path=Width}"
                                                    Binding="{Binding Name}"></DataGridTextColumn>
                            </DataGrid.Columns>
                        </DataGrid>
                    </DataTemplate>
                </DataGrid.RowDetailsTemplate>


                --><!--<DataGrid.GroupStyle>
                    -->
                <!-- Style for groups at top level. -->
                <!--
                    <GroupStyle>
                        <GroupStyle.ContainerStyle>
                            <Style TargetType="{x:Type GroupItem}">
                                <Setter Property="Margin" Value="0,0,0,5"/>
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="{x:Type GroupItem}">
                                            <Expander IsExpanded="True" Background="Pink" BorderBrush="Pink" BorderThickness="1,1,1,5">
                                                <Expander.Header>
                                                    <DockPanel>
                                                        <TextBlock FontWeight="Bold" Text="{Binding Path=Name}" Margin="5,0,0,0" Width="100"/>
                                                        <TextBlock FontWeight="Bold" Text="{Binding Path=ItemCount}"/>
                                                    </DockPanel>
                                                </Expander.Header>
                                                <Expander.Content>
                                                    <ItemsPresenter />
                                                </Expander.Content>
                                            </Expander>
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                            </Style>
                        </GroupStyle.ContainerStyle>
                    </GroupStyle>
                    -->
                <!-- Style for groups under the top level. -->
                <!--
                    <GroupStyle>
                        <GroupStyle.HeaderTemplate>
                            <DataTemplate>
                                <DockPanel Background="LightBlue">
                                    <TextBlock Text="{Binding Path=Name}" Foreground="Blue" Margin="30,0,0,0" Width="100"/>
                                    <TextBlock Text="{Binding Path=ItemCount}" Foreground="Blue"/>
                                </DockPanel>
                            </DataTemplate>
                        </GroupStyle.HeaderTemplate>
                    </GroupStyle>
                </DataGrid.GroupStyle>--><!--

                <DataGrid.Columns>
                    <DataGridTemplateColumn Header="#" x:Name="numCol" CanUserResize="False">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <TextBlock Text="{Binding Converter={StaticResource rowNumber},
RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>

                    <DataGridTextColumn Header="名称" x:Name="nameCol" Binding="{Binding Name}"></DataGridTextColumn>
                    <DataGridTextColumn Header="测试项" Binding="{Binding Item}"></DataGridTextColumn>
                    <DataGridTextColumn Header="上限" Binding="{Binding LimitUp}"></DataGridTextColumn>
                    <DataGridTextColumn Header="下限" Binding="{Binding LimitDown}"></DataGridTextColumn>
                    <DataGridTextColumn Header="单位" Binding="{Binding Unit}"></DataGridTextColumn>
                    <DataGridTextColumn Header="启用" Binding="{Binding IsEnable}"></DataGridTextColumn>
                    <DataGridTextColumn Header="MES上传" Binding="{Binding IsUploadMes}"></DataGridTextColumn>
                    <DataGridTextColumn Header="重测" Binding="{Binding IsRetest}"></DataGridTextColumn>
                    --><!--<DataGridTextColumn Header="下一步" Binding="{Binding NextSeq}"></DataGridTextColumn>--><!--

                    <DataGridTemplateColumn x:Name="opt" Width="*" Header="操作">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <Button Style="{StaticResource EditLink}" Margin="0,0,20,0"/>
                                    <Button Style="{StaticResource DeleteLink}"/>
                                    <Button Style="{StaticResource DeleteLink}" Click="Button_Click"
                                            DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor,
                                        AncestorType=DataGridRow,AncestorLevel=1}}"
                                            Tag="{Binding }"
                                            x:Name="sda"
                                            Content="展开"/>
                                </StackPanel>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                </DataGrid.Columns>
            </DataGrid>-->
        </Grid>
    </Border>
</hb:PluginControl>
