﻿<hb:PluginControl x:Class="HMI.IOMonitor.IOMonitor"
             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:local="clr-namespace:HMI.IOMonitor"
             xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
             xmlns:ui="clr-namespace:HMI.UI;assembly=HMI.UI"
             xmlns:pw="https://opensource.panuon.com/wpf"
             xmlns:pu="https://opensource.panuon.com/wpf-ui"
             xmlns:dp="clr-namespace:HMI.UI.DpUtil;assembly=HMI.UI"
             mc:Ignorable="d"
             Loaded="UserControl_Loaded"
             Background="{StaticResource WorkspaceBackground}"
             d:DesignHeight="450" d:DesignWidth="800">

    <UserControl.Resources>
        <Style TargetType="Label">
            <Setter Property="VerticalContentAlignment" Value="Center"/>
            <Setter Property="VerticalAlignment" Value="Center"/>
        </Style>
        <CollectionViewSource x:Key="disFilter" Source="{Binding Dis}" Filter="CollectionViewSource_Filter"/>
        <CollectionViewSource x:Key="dosFilter" Source="{Binding Dos}" Filter="CollectionViewSource_Filter"/>
    </UserControl.Resources>

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

            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="5*"/>
                <ColumnDefinition Width="5*"/>
            </Grid.ColumnDefinitions>

            <DockPanel Grid.Row="0" Grid.ColumnSpan="2">
                <StackPanel DockPanel.Dock="Right" Style="{StaticResource ButtonGroup}">
                    <Button Style="{StaticResource PrimaryButton}" x:Name="addBtn" Click="Button_Click">新增</Button>
                    <Button Style="{StaticResource PrimaryButton}" x:Name="importBtn" Click="Button_Click">导入</Button>
                </StackPanel>
                
                <TextBlock DockPanel.Dock="Left" VerticalAlignment="Center" 
                       FontSize="{StaticResource TitleFontSize}" Text="DIO监控"/>
            </DockPanel>

            <Border Grid.Row="1" Style="{StaticResource CardBoarder}" Padding="0">
                <Grid dp:GridHelper.Space="10">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition />
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="Auto"/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition/>
                    </Grid.RowDefinitions>

                    <Label Grid.Row="0" Grid.Column="0" Content="DI名称"
                       FontSize="{StaticResource ContentFontSize}"/>
                    <ComboBox Grid.Row="0" Grid.Column="1" x:Name="diName" 
                          IsEditable="True" Style="{StaticResource FormComboxStyle}"/>

                    <Button Style="{StaticResource PrimaryButton}" Grid.Row="0" Grid.Column="2" 
                        x:Name="diSelect" Click="Button_Click"
                        >DI查询</Button>
                    <Button Style="{StaticResource PrimaryButton}" Grid.Row="0" Grid.Column="3"
                        x:Name="diReset" Click="Button_Click">DI重置</Button>

                    <Label Grid.Row="1" Grid.Column="0" Content="DI编号"
       FontSize="{StaticResource ContentFontSize}"/>
                    <ComboBox Grid.Row="1" Grid.Column="1" x:Name="diCode" 
                          IsEditable="True"
                          Style="{StaticResource FormComboxStyle}"/>

                    <Label Grid.Row="2" Grid.Column="0" Content="DI分组"
       FontSize="{StaticResource ContentFontSize}"/>
                    <ComboBox Grid.Row="2" Grid.Column="1" x:Name="diGroup" 
                          IsEditable="True" Style="{StaticResource FormComboxStyle}"/>

                    <DataGrid Grid.Row="3" Grid.ColumnSpan="4" x:Name="diTable" Style="{StaticResource DefaultDataGrid}" 
                          ItemsSource="{Binding Source={StaticResource disFilter}}">

                        <DataGrid.RowStyle>
                            <Style TargetType="DataGridRow" BasedOn="{StaticResource {x:Static pu:StyleKeys.DataGridRowStyle}}">
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding Value}" Value="True">
                                        <Setter Property="Background" Value="{StaticResource DangerColor}"/>
                                        <Setter Property="Foreground" Value="{StaticResource DangerColorContrast}"/>
                                    </DataTrigger>
                                </Style.Triggers>
                            </Style>
                        </DataGrid.RowStyle>
                        <DataGrid.Columns>
                            <!--<DataGridTemplateColumn Header="" Width="Auto" CanUserResize="False">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <CheckBox VerticalAlignment="Center" IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>-->
                            <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 Code}" Header="编号" />
                            <DataGridTextColumn Width="*" Binding="{Binding Name}" Header="名称" />
                            <DataGridTextColumn Width="*" Binding="{Binding Type}" Header="类型" />
                            <DataGridTextColumn Width="*" Binding="{Binding Value}" Header="DI值" />
                            <!--<DataGridTemplateColumn Header="操作" Width="100" IsReadOnly="True" CanUserResize="False">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <StackPanel Orientation="Horizontal">
                                            <Button x:Name="editBtn" Style="{StaticResource RowLink}" 
            Margin="0,0,10,0" 
            Click="Button_Click"
            DataContext="{Binding }">编辑</Button>
                                            <Button x:Name="delBtn" Style="{StaticResource DangerLinkButton}" 
            DataContext="{Binding }"
            Click="Button_Click">删除</Button>
                                        </StackPanel>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>-->
                        </DataGrid.Columns>
                    </DataGrid>
                </Grid>


            </Border>

            <Border Grid.Row="1" Grid.Column="1" Style="{StaticResource CardBoarder}" Padding="0">
                <Grid dp:GridHelper.Space="10">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition />
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="Auto"/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition/>
                    </Grid.RowDefinitions>

                    <Label Grid.Row="0" Grid.Column="0" Content="DO名称"
                   FontSize="{StaticResource ContentFontSize}"/>
                    <ComboBox Grid.Row="0" Grid.Column="1" x:Name="doName"
                          IsEditable="True" Style="{StaticResource FormComboxStyle}"/>

                    <Button Style="{StaticResource PrimaryButton}" Grid.Row="0" Grid.Column="2"
                        x:Name="doSelect" Click="Button_Click">DO查询</Button>
                    <Button Style="{StaticResource PrimaryButton}" Grid.Row="0" Grid.Column="3"
                        x:Name="doReset" Click="Button_Click"
                        >DO重置</Button>

                    <Label Grid.Row="1" Grid.Column="0" Content="DO编号"
   FontSize="{StaticResource ContentFontSize}"/>
                    <ComboBox Grid.Row="1" Grid.Column="1" x:Name="doCode"
                          IsEditable="True" Style="{StaticResource FormComboxStyle}"/>

                    <Label Grid.Row="2" Grid.Column="0" Content="DO分组"
   FontSize="{StaticResource ContentFontSize}"/>
                    <ComboBox Grid.Row="2" Grid.Column="1" x:Name="doGroup"
                          IsEditable="True" Style="{StaticResource FormComboxStyle}"/>

                    <DataGrid Grid.Row="3" Grid.ColumnSpan="4" x:Name="doTable" Style="{StaticResource DefaultDataGrid}" 
                      ItemsSource="{Binding Source={StaticResource dosFilter}}">
                        <DataGrid.RowStyle>
                            <Style TargetType="DataGridRow" BasedOn="{StaticResource {x:Static pu:StyleKeys.DataGridRowStyle}}">
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding Value}" Value="True">
                                        <Setter Property="Background" Value="{StaticResource DangerColor}"/>
                                        <Setter Property="Foreground" Value="{StaticResource DangerColorContrast}"/>
                                    </DataTrigger>
                                </Style.Triggers>
                            </Style>
                        </DataGrid.RowStyle>
                        <DataGrid.Columns>
                            <!--<DataGridTemplateColumn Header="" Width="Auto" CanUserResize="False">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <CheckBox VerticalAlignment="Center" IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>-->
                            <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 Code}" Header="编号" />
                            <DataGridTextColumn Width="*" Binding="{Binding Name}" Header="名称" />
                            <DataGridTextColumn Width="*" Binding="{Binding Type}" Header="类型" />
                            <DataGridTextColumn Width="*" Binding="{Binding Value}" Header="DO值" />
                            <!--<DataGridTemplateColumn Header="操作" Width="100" IsReadOnly="True" CanUserResize="False">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <StackPanel Orientation="Horizontal">
                                            <Button x:Name="editBtn" Style="{StaticResource RowLink}" 
        Margin="0,0,10,0" 
        Click="Button_Click"
        DataContext="{Binding }">编辑</Button>
                                            <Button x:Name="delBtn" Style="{StaticResource DangerLinkButton}" 
        DataContext="{Binding }"
        Click="Button_Click">删除</Button>
                                        </StackPanel>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>-->
                        </DataGrid.Columns>
                    </DataGrid>
                </Grid>
            </Border>
        </Grid>
    </Border>
</hb:PluginControl>