﻿<pu:WindowX x:Class="HMI.DataViewer.DbSettingModal"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:HMI.DataViewer"
            xmlns:pw="https://opensource.panuon.com/wpf"
            xmlns:pu="https://opensource.panuon.com/wpf-ui"
            xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
            xmlns:ui="clr-namespace:HMI.UI;assembly=HMI.UI"
            xmlns:dp="clr-namespace:HMI.UI.DpUtil;assembly=HMI.UI"
            mc:Ignorable="d"
            Title="Form"
            SizeToContent="Height"
            Width="800"
            WindowStartupLocation="CenterOwner"
            BorderBrush="#3E3E45"
            BorderThickness="1"
            Foreground="Black"
            pu:WindowXCaption.Background="{StaticResource PrimaryColor}"
            pu:WindowXModalDialog.ButtonStyle="{StaticResource ModalButton}"
            pu:WindowXCaption.Foreground="#FFF"
            pu:WindowXCaption.Buttons="Close"
            pu:WindowXModalDialog.Buttons="OKCancel"
            pu:WindowXModalDialog.CancelButtonContent="取消"
            pu:WindowXModalDialog.OKButtonContent="保存"
            pu:WindowXModalDialog.ButtonPanelMargin="0,30,10,10">
    <Grid Margin="10">
        <StackPanel x:Name="formPanel">
            <pu:FormGroup dp:FormGroupHelper.IsRequired="True" Header="名称" GroupName="MyFormGroup">
                <TextBox Style="{StaticResource EditorTextBoxStyle}" x:Name="programInput"/>
            </pu:FormGroup>

            <pu:FormGroup dp:FormGroupHelper.IsRequired="True" Header="数据文件" GroupName="MyFormGroup">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition/>
                        <ColumnDefinition Width="Auto"/>
                    </Grid.ColumnDefinitions>
                    <TextBox Style="{StaticResource EditorTextBoxStyle}" IsReadOnly="True" x:Name="dbFilePathInput"/>
                    <Button Style="{StaticResource SearchButton}" x:Name="searchBtn" Click="Button_Click" Grid.Column="1"/>
                </Grid>
            </pu:FormGroup>

            <pu:FormGroup dp:FormGroupHelper.IsRequired="True" Header="数据表" GroupName="MyFormGroup">
                <ComboBox Style="{StaticResource FormComboxStyle}" SelectedValuePath="Content" 
                          x:Name="tableNameInput" SelectionChanged="ComboxSelectionChanged"/>
            </pu:FormGroup>

            <pu:FormGroup Header="字段设置" Orientation="Vertical" GroupName="MyFormGroup">
                <Grid dp:GridHelper.Space="10">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition/>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition/>
                    </Grid.ColumnDefinitions>

                    <DataGrid Style="{StaticResource DefaultDataGrid}"
                              BorderThickness="1"
                              pu:DataGridHelper.ColumnHeaderFontSize="12"
                              SelectionMode="Extended"
                              ItemsSource="{Binding Columns}" x:Name="columnTable">
                        <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 Width="*" Binding="{Binding }" Header="字段名" />
                        </DataGrid.Columns>
                    </DataGrid>

                    <StackPanel Grid.Column="1" VerticalAlignment="Stretch" dp:StackPanelHelper.ChildSpace="10">
                        <Button Style="{StaticResource PrimaryButton}" x:Name="selectAllBtn" Click="Button_Click">全选</Button>
                        <Button Style="{StaticResource PrimaryButton}" x:Name="addBtn" Click="Button_Click">添加</Button>
                        <Button Style="{StaticResource PrimaryButton}" x:Name="delBtn" Click="Button_Click">删除</Button>
                    </StackPanel>

                    <DataGrid Grid.Column="2" Style="{StaticResource DefaultDataGrid}"
                              BorderThickness="1"
                              IsReadOnly="False"
                              pu:DataGridHelper.ColumnHeaderFontSize="12"
                              ItemsSource="{Binding Conditions}" x:Name="conditionTable">
                        <DataGrid.Columns>
                            <DataGridTemplateColumn Header="#" CanUserResize="False" IsReadOnly="True">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock Text="{Binding Converter={StaticResource rowNumber},
RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>
                            <DataGridTextColumn Width="*" IsReadOnly="True" Binding="{Binding Key}" Header="字段名" />
                            <DataGridTextColumn Width="*" Binding="{Binding Desc}" Header="显示名" />
                            <DataGridTemplateColumn Width="*" Header="映射时间" IsReadOnly="True">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <RadioButton IsChecked="{Binding IsTimeCol,Mode=OneWay}" 
                                                     Click="RadioButton_Click"
                                                     ></RadioButton>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>
                        </DataGrid.Columns>
                    </DataGrid>
                </Grid>
            </pu:FormGroup>
        </StackPanel>
    </Grid>
</pu:WindowX>
