<UserControl x:Class="SmartAquaViewer.View.GreenHouseView"
             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:local="clr-namespace:SmartAquaViewer.View"
             xmlns:control="clr-namespace:SmartAquaViewer.Controls"
             xmlns:helper="clr-namespace:SmartAquaViewer.Helper"
             xmlns:classes="clr-namespace:SmartAquaViewer.Classes"
             mc:Ignorable="d" 
             d:DesignHeight="940" d:DesignWidth="1650">

    <UserControl.Resources>
        <classes:InverseBoolConverter x:Key="InverseBoolConverter"/>
    </UserControl.Resources>

    <Border BorderBrush="#2d374c" BorderThickness="2">
        <Grid Background="Transparent">
            <Grid.RowDefinitions>
                <RowDefinition Height="160"/>
                <RowDefinition Height="350"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="600"/>
            </Grid.ColumnDefinitions>

            <Border Grid.ColumnSpan="2" Margin="15" BorderBrush="#3E4C60" BorderThickness="1" CornerRadius="10">
                <Border.Background>
                    <ImageBrush ImageSource="/Resources/Images/top_bg.png" Stretch="Fill"/>
                </Border.Background>
                <UniformGrid Columns="9">
                    <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
                        <TextBlock Text="총 배출량" HorizontalAlignment="Center" 
                                   FontSize="22" Foreground="White" FontFamily="{StaticResource SCDream5}"/>
                        <TextBlock Text="{Binding TotalGreenhouseGas, StringFormat=\{0:F2\}}" HorizontalAlignment="Center" 
                                   FontSize="26" Foreground="White" FontFamily="{StaticResource SCDream4}"/>
                    </StackPanel>
                    <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
                        <TextBlock Text="모래여과기" HorizontalAlignment="Center" 
                                   FontSize="22" Foreground="White" FontFamily="{StaticResource SCDream5}"/>
                        <TextBlock Text="{Binding TotalSandFilterGreenhouseGas, StringFormat=\{0:F2\}}" HorizontalAlignment="Center" 
                                   FontSize="26" Foreground="White" FontFamily="{StaticResource SCDream4}"/>
                    </StackPanel>
                    <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
                        <TextBlock Text="순환펌프" HorizontalAlignment="Center" 
                                   FontSize="22" Foreground="White" FontFamily="{StaticResource SCDream5}"/>
                        <TextBlock Text="{Binding TotalCirculationPumpGreenhouseGas, StringFormat=\{0:F2\}}" HorizontalAlignment="Center" 
                                   FontSize="26" Foreground="White" FontFamily="{StaticResource SCDream4}"/>
                    </StackPanel>
                    <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
                        <TextBlock Text="히트펌프" HorizontalAlignment="Center" 
                                   FontSize="22" Foreground="White" FontFamily="{StaticResource SCDream5}"/>
                        <TextBlock Text="{Binding TotalHeatPumpGreenhouseGas, StringFormat=\{0:F2\}}" HorizontalAlignment="Center" 
                                   FontSize="26" Foreground="White" FontFamily="{StaticResource SCDream4}"/>
                    </StackPanel>
                    <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
                        <TextBlock Text="에어브로와" HorizontalAlignment="Center" 
                                   FontSize="22" Foreground="White" FontFamily="{StaticResource SCDream5}"/>
                        <TextBlock Text="{Binding TotalAirBlowerGreenhouseGas, StringFormat=\{0:F2\}}" HorizontalAlignment="Center" 
                                   FontSize="26" Foreground="White" FontFamily="{StaticResource SCDream4}"/>
                    </StackPanel>
                    <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
                        <TextBlock Text="오존발생기" HorizontalAlignment="Center" 
                                   FontSize="22" Foreground="White" FontFamily="{StaticResource SCDream5}"/>
                        <TextBlock Text="{Binding TotalOzoneGeneratorGreenhouseGas, StringFormat=\{0:F2\}}" HorizontalAlignment="Center" 
                                   FontSize="26" Foreground="White" FontFamily="{StaticResource SCDream4}"/>
                    </StackPanel>
                    <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
                        <TextBlock Text="자외선 살균기" HorizontalAlignment="Center" 
                                   FontSize="22" Foreground="White" FontFamily="{StaticResource SCDream5}"/>
                        <TextBlock Text="{Binding TotalUVSterilizerGreenhouseGas, StringFormat=\{0:F2\}}" HorizontalAlignment="Center" 
                                   FontSize="26" Foreground="White" FontFamily="{StaticResource SCDream4}"/>
                    </StackPanel>
                    <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
                        <TextBlock Text="오존용해장치" HorizontalAlignment="Center" 
                                   FontSize="22" Foreground="White" FontFamily="{StaticResource SCDream5}"/>
                        <TextBlock Text="{Binding TotalOzoneDissolverGreenhouseGas, StringFormat=\{0:F2\}}" HorizontalAlignment="Center" 
                                   FontSize="26" Foreground="White" FontFamily="{StaticResource SCDream4}"/>
                    </StackPanel>
                    <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
                        <TextBlock Text="배오존장치" HorizontalAlignment="Center" 
                                   FontSize="22" Foreground="White" FontFamily="{StaticResource SCDream5}"/>
                        <TextBlock Text="{Binding TotalExcessOzoneDestroyerGreenhouseGas, StringFormat=\{0:F2\}}" HorizontalAlignment="Center" 
                                   FontSize="26" Foreground="White" FontFamily="{StaticResource SCDream4}"/>
                    </StackPanel>
                </UniformGrid>
            </Border>

            <DataGrid Style="{StaticResource DataGridStyle}" Background="Transparent" ItemsSource="{Binding WaterQualityList}"
                      RowStyle="{StaticResource DataGridRowStyle}" ColumnHeaderStyle="{StaticResource DataGridColumnHeaderStyle}"
                      ColumnWidth="*" HorizontalAlignment="Stretch"
                      Grid.Row="1" Grid.RowSpan="2" Margin="15 0 15 15">
                <DataGrid.Columns>
                    <DataGridTextColumn 
                        Header="시간"
                        Binding="{Binding RecordedTime, StringFormat=\{0:HH:mm:ss\}}"
                        ElementStyle="{StaticResource DataGridElmenetStyle}"/>

                    <DataGridTextColumn ElementStyle="{StaticResource DataGridElmenetStyle}"
                                        Binding="{Binding Filtering.SandFilterGreenhouseGas, StringFormat=\{0:F3\}}">
                        <DataGridTextColumn.Header>
                            <StackPanel>
                                <TextBlock Text="모래" HorizontalAlignment="Center"/>
                                <TextBlock Text="여과기" HorizontalAlignment="Center"/>
                            </StackPanel>
                        </DataGridTextColumn.Header>
                    </DataGridTextColumn>
                    <DataGridTextColumn Header="순환펌프" ElementStyle="{StaticResource DataGridElmenetStyle}"
                                        Binding="{Binding Filtering.CirculationPumpGreenhouseGas, StringFormat=\{0:F3\}}"/>
                    <DataGridTextColumn Header="히트펌프" ElementStyle="{StaticResource DataGridElmenetStyle}"
                                        Binding="{Binding Filtering.HeatPumpGreenhouseGas, StringFormat=\{0:F3\}}"/>
                    <DataGridTextColumn ElementStyle="{StaticResource DataGridElmenetStyle}"
                                        Binding="{Binding Filtering.AirBlowerGreenhouseGas, StringFormat=\{0:F3\}}">
                        <DataGridTextColumn.Header>
                            <StackPanel>
                                <TextBlock Text="에어" HorizontalAlignment="Center"/>
                                <TextBlock Text="브로와" HorizontalAlignment="Center"/>
                            </StackPanel>
                        </DataGridTextColumn.Header>
                    </DataGridTextColumn>
                    <DataGridTextColumn ElementStyle="{StaticResource DataGridElmenetStyle}"
                                        Binding="{Binding Sterilizing.OzoneGeneratorGreenhouseGas, StringFormat=\{0:F3\}}">
                        <DataGridTextColumn.Header>
                            <StackPanel>
                                <TextBlock Text="오존" HorizontalAlignment="Center"/>
                                <TextBlock Text="발생기" HorizontalAlignment="Center"/>
                            </StackPanel>
                        </DataGridTextColumn.Header>
                    </DataGridTextColumn>
                    <DataGridTextColumn ElementStyle="{StaticResource DataGridElmenetStyle}"
                                        Binding="{Binding Sterilizing.UVSterilizerGreenhouseGas, StringFormat=\{0:F3\}}">
                        <DataGridTextColumn.Header>
                            <StackPanel>
                                <TextBlock Text="자외선"/>
                                <TextBlock Text="살균기"/>
                            </StackPanel>
                        </DataGridTextColumn.Header>
                    </DataGridTextColumn>
                    <DataGridTextColumn ElementStyle="{StaticResource DataGridElmenetStyle}"
                                        Binding="{Binding Sterilizing.OzoneDissolverGreenhouseGas, StringFormat=\{0:F3\}}">
                        <DataGridTextColumn.Header>
                            <StackPanel>
                                <TextBlock Text="오존용해" HorizontalAlignment="Center"/>
                                <TextBlock Text="장치" HorizontalAlignment="Center"/>
                            </StackPanel>
                        </DataGridTextColumn.Header>
                    </DataGridTextColumn>
                    <DataGridTextColumn ElementStyle="{StaticResource DataGridElmenetStyle}"
                                        Binding="{Binding Sterilizing.ExcessOzoneDestroyerGreenhouseGas, StringFormat=\{0:F3\}}">
                        <DataGridTextColumn.Header>
                            <StackPanel>
                                <TextBlock Text="배오존" HorizontalAlignment="Center"/>
                                <TextBlock Text="장치" HorizontalAlignment="Center"/>
                            </StackPanel>
                        </DataGridTextColumn.Header>
                    </DataGridTextColumn>
                    <DataGridTextColumn Header="총 배출량" ElementStyle="{StaticResource DataGridElmenetStyle}"
                                        Binding="{Binding TotalGreenhouseGas, StringFormat=\{0:F3\}}"/>
                </DataGrid.Columns>
            </DataGrid>

            <Border Grid.Row="1" Grid.Column="1" Margin="0 0 15 15" CornerRadius="10"
                    Background="#384659" BorderBrush="#404F63" BorderThickness="1">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition/>
                        <RowDefinition Height="50"/>
                    </Grid.RowDefinitions>
                    <StackPanel>
                        <Grid Margin="15 15 15 15">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="80"/>
                                <ColumnDefinition/>
                            </Grid.ColumnDefinitions>
                            <TextBlock Text="그래프" VerticalAlignment="Center"
                                       FontSize="20" FontFamily="{StaticResource SCDream4}" Foreground="White"/>

                            <ComboBox Margin="15 0 0 0" Height="40" Grid.Column="1"
                                      Style="{StaticResource ComboBoxStyle}"
                                      ItemsSource="{Binding GraphTypes}"
                                      SelectedIndex="{Binding SelectedGraphIndex, Mode=TwoWay}"
                                      helper:ComboBoxHelper.SelectFirstOnItemsChange="True"
                                      IsEditable="False" IsTextSearchEnabled="False"/>
                        </Grid>
                        <Grid Margin="15 0">
                            <Grid.Resources>
                                <Style TargetType="FrameworkElement">
                                    <Setter Property="Visibility" Value="Collapsed"/>
                                </Style>
                                <Style x:Key="VisibleWhenLine" TargetType="FrameworkElement" BasedOn="{StaticResource {x:Type FrameworkElement}}">
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding SelectedGraphType}" Value="LINE">
                                            <Setter Property="Visibility" Value="Visible"/>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                                <Style x:Key="VisibleWhenStackArea" TargetType="FrameworkElement" BasedOn="{StaticResource {x:Type FrameworkElement}}">
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding SelectedGraphType}" Value="STACKAREA">
                                            <Setter Property="Visibility" Value="Visible"/>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                                <Style x:Key="VisibleWhenLineNStackArea" TargetType="FrameworkElement" BasedOn="{StaticResource {x:Type FrameworkElement}}">
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding SelectedGraphType}" Value="LINE">
                                            <Setter Property="Visibility" Value="Visible"/>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding SelectedGraphType}" Value="STACKAREA">
                                            <Setter Property="Visibility" Value="Visible"/>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                                <Style x:Key="VisibleWhenPie" TargetType="FrameworkElement" BasedOn="{StaticResource {x:Type FrameworkElement}}">
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding SelectedGraphType}" Value="PIE">
                                            <Setter Property="Visibility" Value="Visible"/>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </Grid.Resources>
                            <StackPanel>
                                <StackPanel Style="{StaticResource VisibleWhenLineNStackArea}">
                                    <Grid Margin="0 0 0 20" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="80"/>
                                            <ColumnDefinition/>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock Text="X축" VerticalAlignment="Center"
                                                   FontSize="20" FontFamily="{StaticResource SCDream4}" Foreground="White"/>
                                        <TextBlock Text="{Binding SelectedXField.Display}" VerticalAlignment="Center"
                                                   Margin="15 0 0 0" Grid.Column="1"
                                                   FontSize="20" FontFamily="{StaticResource SCDream4}" Foreground="White"/>
                                    </Grid>

                                    <Grid Margin="0 0 0 15">
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="80"/>
                                            <ColumnDefinition/>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock Text="Y축" VerticalAlignment="Top"
                                                   FontSize="20" FontFamily="{StaticResource SCDream4}" Foreground="White"/>

                                        <Border Grid.Column="1" CornerRadius="10" 
                                                Background="White" Margin="15 0 0 15">
                                            <ListBox ItemsSource="{Binding YFieldCandidates}"
                                                     DisplayMemberPath="Display"
                                                     SelectionMode="Extended"
                                                     helper:MultiSelectBehavior.SelectedItems="{Binding SelectedYFields, Mode=OneWay}"
                                                     helper:MultiSelectBehavior.KeyPath="Key"
                                                     helper:MultiSelectBehavior.ValuePath="Value"
                                                     Height="Auto" Background="White"
                                                     FontSize="16" FontWeight="Bold"
                                                     Style="{StaticResource MaterialDesignFilterChipListBox}"/>
                                        </Border>
                                    </Grid>
                                </StackPanel>

                                <StackPanel Style="{StaticResource VisibleWhenPie}">
                                    <Grid Margin="0 0 0 15">
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="80"/>
                                            <ColumnDefinition/>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock Text="필드" VerticalAlignment="Top"
                                                   FontSize="20" FontFamily="{StaticResource SCDream4}" Foreground="White"/>

                                        <Border Grid.Column="1" CornerRadius="10" 
                                                Background="White" Margin="15 0 0 15">
                                            <ListBox ItemsSource="{Binding YFieldCandidates}"
                                                     DisplayMemberPath="Display"
                                                     SelectionMode="Extended"
                                                     helper:MultiSelectBehavior.SelectedItems="{Binding SelectedYFields, Mode=OneWay}"
                                                     helper:MultiSelectBehavior.KeyPath="Key"
                                                     helper:MultiSelectBehavior.ValuePath="Value"
                                                     Height="Auto" Background="White"
                                                     FontSize="16" FontWeight="Bold"
                                                     Style="{StaticResource MaterialDesignFilterChipListBox}"/>
                                        </Border>
                                    </Grid>

                                    <StackPanel Orientation="Horizontal" Margin="0 0 0 15">
                                        <RadioButton x:Name="rbStatus" Content="합계" 
                                                     GroupName="pie" Margin="0 0 30 0"
                                                     Foreground="White" FontSize="20"
                                                     Style="{StaticResource MaterialDesignUserForegroundRadioButton}"
                                                     IsChecked="{Binding UseAverage, Converter={StaticResource InverseBoolConverter}, Mode=TwoWay}"/>
                                        <RadioButton x:Name="pie" Content="평균" 
                                                     GroupName="pie" Grid.Column="1" 
                                                     Foreground="White" FontSize="20"
                                                     Style="{StaticResource MaterialDesignUserForegroundRadioButton}"
                                                     IsChecked="{Binding UseAverage, Mode=TwoWay}"/>
                                    </StackPanel>
                                </StackPanel>
                            </StackPanel>
                        </Grid>
                    </StackPanel>

                    <StackPanel Orientation="Horizontal" Margin="15 0 0 0" Grid.Row="1">
                        <CheckBox Content="마커 표시" IsChecked="{Binding ShowMarkers}" Margin="0 0 15 0"
                                  FontSize="20" FontFamily="{StaticResource SCDream4}" Foreground="White"
                                  VerticalContentAlignment="Center">
                            <CheckBox.Style>
                                <Style TargetType="CheckBox" BasedOn="{StaticResource MaterialDesignUserForegroundCheckBox}">
                                    <Setter Property="Visibility" Value="Collapsed"/>
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding SelectedGraphType}" Value="LINE">
                                            <Setter Property="Visibility" Value="Visible"/>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding SelectedGraphType}" Value="STACKAREA">
                                            <Setter Property="Visibility" Value="Visible"/>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </CheckBox.Style>
                        </CheckBox>
                        <CheckBox Content="범례 표시" IsChecked="{Binding ShowLegends}" Margin="0 0 15 0"
                                  FontSize="20" FontFamily="{StaticResource SCDream4}" Foreground="White"
                                  VerticalContentAlignment="Center">
                            <CheckBox.Style>
                                <Style TargetType="CheckBox" BasedOn="{StaticResource MaterialDesignUserForegroundCheckBox}">
                                    <Setter Property="Visibility" Value="Collapsed"/>
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding SelectedGraphType}" Value="LINE">
                                            <Setter Property="Visibility" Value="Visible"/>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding SelectedGraphType}" Value="STACKAREA">
                                            <Setter Property="Visibility" Value="Visible"/>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </CheckBox.Style>
                        </CheckBox>
                        <CheckBox Content="도넛 모드" IsChecked="{Binding IsDonut}" Margin="0 0 15 0"
                                  FontSize="20" FontFamily="{StaticResource SCDream4}" Foreground="White"
                                  VerticalContentAlignment="Center">
                            <CheckBox.Style>
                                <Style TargetType="CheckBox" BasedOn="{StaticResource MaterialDesignUserForegroundCheckBox}">
                                    <Setter Property="Visibility" Value="Collapsed"/>
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding SelectedGraphType}" Value="PIE">
                                            <Setter Property="Visibility" Value="Visible"/>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </CheckBox.Style>
                        </CheckBox>
                    </StackPanel>

                    <StackPanel Orientation="Horizontal" Margin="15 0" Grid.Row="1" HorizontalAlignment="Right">
                        <Button Content="그래프 생성" Style="{StaticResource MaterialDesignFlatLightBgButton}"
                                FontWeight="Bold" Command="{Binding DrawGraphCommand}"/>
                    </StackPanel>
                </Grid>
            </Border>

            <Border Grid.Row="2" Grid.Column="1" Margin="0 0 15 15" CornerRadius="10"
                    Background="#384659" BorderBrush="#404F63" BorderThickness="1">
                <control:GraphControl x:Name="graphControl"
                                      Margin="10" DataContext="{Binding GraphControlVM}"
                                      HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
            </Border>
        </Grid>
    </Border>
</UserControl>
