You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
331 lines
23 KiB
331 lines
23 KiB
<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>
|
|
|
|
<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 Header="모래여과기" ElementStyle="{StaticResource DataGridElmenetStyle}"
|
|
Binding="{Binding Filtering.SandFilterGreenhouseGas, StringFormat=\{0:F3\}}"/>
|
|
<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 Header="에어브로와" ElementStyle="{StaticResource DataGridElmenetStyle}"
|
|
Binding="{Binding Filtering.AirBlowerGreenhouseGas, StringFormat=\{0:F3\}}"/>
|
|
<DataGridTextColumn Header="오존발생기" ElementStyle="{StaticResource DataGridElmenetStyle}"
|
|
Binding="{Binding Sterilizing.OzoneGeneratorGreenhouseGas, StringFormat=\{0:F3\}}"/>
|
|
<DataGridTextColumn ElementStyle="{StaticResource DataGridElmenetStyle}"
|
|
Binding="{Binding Sterilizing.UVSterilizerGreenhouseGas, StringFormat=\{0:F3\}}">
|
|
<DataGridTextColumn.Header>
|
|
<StackPanel>
|
|
<TextBlock Text="자외선"/>
|
|
<TextBlock Text="살균기"/>
|
|
</StackPanel>
|
|
</DataGridTextColumn.Header>
|
|
</DataGridTextColumn>
|
|
<DataGridTextColumn Header="오존용해장치" ElementStyle="{StaticResource DataGridElmenetStyle}"
|
|
Binding="{Binding Sterilizing.OzoneDissolverGreenhouseGas, StringFormat=\{0:F3\}}"/>
|
|
<DataGridTextColumn Header="배오존장치" ElementStyle="{StaticResource DataGridElmenetStyle}"
|
|
Binding="{Binding Sterilizing.ExcessOzoneDestroyerGreenhouseGas, StringFormat=\{0:F3\}}"/>
|
|
<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>
|
|
</UserControl>
|