Files
2026-04-17 14:55:32 -04:00

222 lines
18 KiB
XML

<base:BaseView x:Class="DTS.Viewer.ChartOptions.ChartOptionsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:base="clr-namespace:DTS.Common.Base;assembly=DTS.Common"
xmlns:converters="clr-namespace:DTS.Common.Converters;assembly=DTS.Common"
xmlns:c1="http://schemas.componentone.com/winfx/2006/xaml"
xmlns:viewer="clr-namespace:DTS.Common.Enums.Viewer;assembly=DTS.Common"
xmlns:strings="clr-namespace:DTS.Viewer.ChartOptions"
VerticalAlignment="Top" HorizontalAlignment="Right" x:Name="chartViewOptions">
<base:BaseView.Resources>
<ResourceDictionary>
<converters:InverseBooleanToOpacityConverter x:Key="InverseBooleanToOpacityConverter" />
<converters:BooleanToOpacityConverter x:Key="BooleanToOpacityConverter" />
<converters:EnumBooleanConverter x:Key="EnumBooleanConverter" />
<converters:InverseBooleanConverter x:Key="InverseBooleanConverter" />
<converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
<converters:InverseBooleanToVisibilityConverter x:Key="InverseBooleanToVisibilityConverter" />
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../Resources/ChartOptionsResources.xaml"/>
<ResourceDictionary Source="../Resources/CheckBoxSlider.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</base:BaseView.Resources>
<StackPanel Orientation="Vertical" Width="300" Height="500" VerticalAlignment="Top" HorizontalAlignment="Right"
IsEnabled="{Binding Path=ChartOptionsVisability, Mode=TwoWay}"
Opacity="{Binding Path=ChartOptionsVisability, Converter={StaticResource InverseBooleanToOpacityConverter}, Mode=TwoWay}">
<GroupBox Header="{strings:TranslateExtension ChartUnitType}" Margin="5,0,5,0" AutomationProperties.AutomationId="ChartUnitTypeGrpBx">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<RadioButton GroupName="UnitTypeGroup" Content="{x:Static viewer:ChartUnitTypeEnum.EU}" Margin="0,5,0,5" Width="50" IsChecked="{Binding Path=Model.UnitType, Mode=TwoWay, Converter={StaticResource EnumBooleanConverter}, ConverterParameter={x:Static viewer:ChartUnitTypeEnum.EU}}" AutomationProperties.AutomationId="EURdoBtn"/>
<!-- Content="{x:Static viewer:ChartUnitTypeEnum.mV}" -->
<RadioButton GroupName="UnitTypeGroup" Content="{Binding Path=Model.MVOrV}" Margin="10,5,0,5" Width="50" IsChecked="{Binding Path=Model.UnitType, Mode=TwoWay, Converter={StaticResource EnumBooleanConverter}, ConverterParameter={x:Static viewer:ChartUnitTypeEnum.mV}}"
AutomationProperties.AutomationId="mVRdoBtn" IsEnabled="{Binding Path=Model.SupportsMV}" />
<RadioButton GroupName="UnitTypeGroup" Content="{x:Static viewer:ChartUnitTypeEnum.ADC}" Margin="10,5,0,5" Width="50" IsChecked="{Binding Path=Model.UnitType, Mode=TwoWay, Converter={StaticResource EnumBooleanConverter}, ConverterParameter={x:Static viewer:ChartUnitTypeEnum.ADC}}"
AutomationProperties.AutomationId="ADCRdoBtn" IsEnabled="{Binding Path=Model.SupportsADC}" />
<RadioButton GroupName="UnitTypeGroup" Content="{x:Static viewer:ChartUnitTypeEnum.FFT}" Margin="10,5,0,5" Width="50" IsChecked="{Binding Path=Model.UnitType, Mode=TwoWay, Converter={StaticResource EnumBooleanConverter}, ConverterParameter={x:Static viewer:ChartUnitTypeEnum.FFT}}"
AutomationProperties.AutomationId="FFTdoBtn" />
</StackPanel>
</GroupBox>
<GroupBox Header="{strings:TranslateExtension Range}" Margin="5" AutomationProperties.AutomationId="RangeGrpBx">
<StackPanel Orientation="Vertical" HorizontalAlignment="Left">
<Grid Margin="10,10,0,0">
<RadioButton GroupName="Yaxis" Margin="0,5,0,5" Content="{Binding Path= Model.UnitTypeDescription, Mode=OneWay}" ContentStringFormat="Auto Range {0}" HorizontalAlignment="Left"
IsChecked="{Binding Path=Model.YRange, Mode=TwoWay, Converter={StaticResource EnumBooleanConverter}, ConverterParameter={x:Static viewer:YRangeScaleEnum.AutoRange}}"
AutomationProperties.AutomationId="AutoRangeRdoBtn">
<RadioButton.Style>
<Style TargetType="RadioButton" BasedOn="{StaticResource {x:Type RadioButton}}">
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Model.UnitType, Mode=OneWay, Converter={StaticResource EnumBooleanConverter}, ConverterParameter={x:Static viewer:ChartUnitTypeEnum.FFT}}" Value="True">
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</RadioButton.Style>
</RadioButton>
<Button Content="{strings:TranslateExtension ResetAll}" Margin="0,0,10,0" Command="{Binding Path=Model.ResetZoomCommand}" HorizontalAlignment="Right" AutomationProperties.AutomationId="ResetAllBtn" />
</Grid>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Margin="10,2,0,0">
<StackPanel.Style>
<Style TargetType="StackPanel" BasedOn="{StaticResource {x:Type StackPanel}}">
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Model.UnitType, Mode=OneWay, Converter={StaticResource EnumBooleanConverter}, ConverterParameter={x:Static viewer:ChartUnitTypeEnum.FFT}}" Value="True">
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
<RadioButton x:Name="RadioButtonFullScale" GroupName="Yaxis" Margin="0,5,0,5" Content="{Binding Path= Model.UnitTypeDescription, Mode=OneWay}" ContentStringFormat="% Full Scale {0}"
IsChecked="{Binding Path=Model.YRange, Mode=TwoWay, Converter={StaticResource EnumBooleanConverter}, ConverterParameter={x:Static viewer:YRangeScaleEnum.FullScale}}"
AutomationProperties.AutomationId="PerFullScaleRdoBtn"/>
<ComboBox ItemsSource="{Binding Path=Model.FullScaleValues, Mode=TwoWay}"
IsEnabled="{Binding ElementName=RadioButtonFullScale, Path=IsChecked, Mode=TwoWay}"
SelectedItem="{Binding Path=Model.SelectedFullScaleValue, Mode=TwoWay}"
Opacity="{Binding ElementName=RadioButtonFullScale, Path=IsChecked, Mode=TwoWay, Converter={StaticResource InverseBooleanToOpacityConverter}}"
HorizontalAlignment="Center" VerticalAlignment="Center" Margin="60,0,0,0" Width="90" AutomationProperties.AutomationId="PerFullScaleCboBx"/>
</StackPanel>
<StackPanel Orientation="Vertical" HorizontalAlignment="Left" Margin="10,2,0,0">
<StackPanel.Style>
<Style TargetType="StackPanel" BasedOn="{StaticResource {x:Type StackPanel}}">
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Model.UnitType, Mode=OneWay, Converter={StaticResource EnumBooleanConverter}, ConverterParameter={x:Static viewer:ChartUnitTypeEnum.FFT}}" Value="True">
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
<RadioButton x:Name="RadioButtonFixed" GroupName="Yaxis" Margin="0,5,0,5" HorizontalAlignment="Left" Content="{Binding Path= Model.UnitTypeDescription, Mode=OneWay}" ContentStringFormat="Fixed {0}"
IsChecked="{Binding Path=Model.YRange, Converter={StaticResource EnumBooleanConverter}, ConverterParameter={x:Static viewer:YRangeScaleEnum.Fixed}, Mode=TwoWay}"
AutomationProperties.AutomationId="FixedRdoBtn"/>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Margin="10,0,0,0"
IsEnabled="{Binding ElementName=RadioButtonFixed, Path=IsChecked}"
Opacity="{Binding ElementName=RadioButtonFixed, Path=IsChecked, Converter={StaticResource InverseBooleanToOpacityConverter}, Mode=TwoWay}">
<StackPanel Orientation="Horizontal" Margin="0,0,0,0">
<TextBlock Text="{strings:TranslateExtension MinY}" VerticalAlignment="Center" />
<c1:C1NumericBox Format="N3" VerticalAlignment="Center" Margin="5" Width="90" Value="{Binding Path=Model.MinFixedY, Mode=TwoWay}" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="10,0,0,0">
<TextBlock Text="{strings:TranslateExtension MaxY}" VerticalAlignment="Center" />
<c1:C1NumericBox Format="N3" VerticalAlignment="Center" Margin="5" Width="90" Value="{Binding Path=Model.MaxFixedY, Mode=TwoWay}"/>
</StackPanel>
</StackPanel>
</StackPanel>
<StackPanel Orientation="Vertical" HorizontalAlignment="Left">
<StackPanel.Style>
<Style TargetType="StackPanel" BasedOn="{StaticResource {x:Type StackPanel}}">
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Model.UnitType, Mode=OneWay, Converter={StaticResource EnumBooleanConverter}, ConverterParameter={x:Static viewer:ChartUnitTypeEnum.FFT}}" Value="True">
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
<Grid>
<CheckBox x:Name="CheckBoxLockT" Content="{strings:TranslateExtension LockT}" Margin="10,10,0,0" IsChecked="{Binding Path=Model.LockedT, Mode=TwoWay}" HorizontalAlignment="Left" />
<Button Content="{strings:TranslateExtension ResetT}" Margin="0,0,10,0" Command="{Binding Path=Model.ResetTCommand}" HorizontalAlignment="Right" AutomationProperties.AutomationId="ResetTBtn"/>
</Grid>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Margin="10,0,0,0" >
<StackPanel Orientation="Horizontal" Margin="10,0,0,0" >
<TextBlock Text="{strings:TranslateExtension MinT}" VerticalAlignment="Center" />
<c1:C1NumericBox Format="N3" VerticalAlignment="Center" Margin="5" Width="90" Value="{Binding Path=Model.MinFixedT, Mode=TwoWay}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="20,0,0,0">
<TextBlock Text="{strings:TranslateExtension MaxT}" VerticalAlignment="Center" />
<c1:C1NumericBox Format="N3" VerticalAlignment="Center" Margin="5" Width="90" Value="{Binding Path=Model.MaxFixedT, Mode=TwoWay}"/>
</StackPanel>
</StackPanel>
</StackPanel>
</StackPanel>
</GroupBox>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" >
<StackPanel.Style>
<Style TargetType="StackPanel" BasedOn="{StaticResource {x:Type StackPanel}}">
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Model.UnitType, Mode=OneWay, Converter={StaticResource EnumBooleanConverter}, ConverterParameter={x:Static viewer:ChartUnitTypeEnum.FFT}}" Value="True">
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
<GroupBox Header="{strings:TranslateExtension FilterOptions_Title}" Margin="5,0,5,0" Width="130" AutomationProperties.AutomationId="FilterGrpBx">
<GroupBox.Style>
<Style TargetType="GroupBox" BasedOn="{StaticResource {x:Type GroupBox}}">
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Model.UnitType, Mode=TwoWay, Converter={StaticResource EnumBooleanConverter}, ConverterParameter={x:Static viewer:ChartUnitTypeEnum.EU}}" Value="False">
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=Model.IsDigitalChannel, Mode=TwoWay}" Value="True">
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</GroupBox.Style>
<StackPanel Orientation="Vertical" >
<RadioButton Width="110" GroupName="FilterGroup" Margin="0,5,0,0" Content="{x:Static viewer:FilterOptionEnum.Unfiltered}" IsChecked="{Binding Path=Model.Filter, Mode=TwoWay, Converter={StaticResource EnumBooleanConverter}, ConverterParameter={x:Static viewer:FilterOptionEnum.Unfiltered}}" AutomationProperties.AutomationId="UnfRdoBtn"/>
<RadioButton Width="110" GroupName="FilterGroup" Margin="0,5,0,0" Content="{x:Static viewer:FilterOptionEnum.TestSetupDefault}" IsChecked="{Binding Path=Model.Filter, Mode=TwoWay, Converter={StaticResource EnumBooleanConverter}, ConverterParameter={x:Static viewer:FilterOptionEnum.TestSetupDefault}}" AutomationProperties.AutomationId="TestSetupDefRdoBtn"/>
<RadioButton Width="110" GroupName="FilterGroup" Margin="0,5,0,0" Content="{x:Static viewer:FilterOptionEnum.Custom}" x:Name="RbCustom" IsChecked="{Binding Path=Model.Filter, Mode=TwoWay, Converter={StaticResource EnumBooleanConverter}, ConverterParameter={x:Static viewer:FilterOptionEnum.Custom}}"/>
<ComboBox DisplayMemberPath="FilterName" ItemsSource="{Binding ElementName=chartViewOptions, Path=AvailableCFC}" SelectedItem="{Binding Path=Model.SelectedFilter, Mode=TwoWay}"
IsEnabled="{Binding ElementName=RbCustom, Path=IsChecked, Mode=TwoWay}"
Opacity="{Binding ElementName=RbCustom, Path=IsChecked, Converter={StaticResource InverseBooleanToOpacityConverter}}"
AutomationProperties.AutomationId="CustomFilterCboBx"
HorizontalAlignment="Center"
Width="110"
Height="17"
VerticalAlignment="Center"
Margin="5" />
</StackPanel>
</GroupBox>
<GroupBox Header="{strings:TranslateExtension TimeUnitType}" Margin="5,0,5,0" Width="130" AutomationProperties.AutomationId="TimeUnitGrpBx">
<StackPanel Orientation="Vertical" HorizontalAlignment="Center">
<RadioButton GroupName="TimeUnitGroup" Content="{x:Static viewer:TimeUnitTypeEnum.MS}" Margin="0,5,0,5" Width="110" IsChecked="{Binding Path=Model.TimeUnitType, Mode=TwoWay, Converter={StaticResource EnumBooleanConverter}, ConverterParameter={x:Static viewer:TimeUnitTypeEnum.MS}}" AutomationProperties.AutomationId="msRdoBtn"/>
<RadioButton GroupName="TimeUnitGroup" Content="{x:Static viewer:TimeUnitTypeEnum.Seconds}" Margin="0,5,0,5" Width="110" IsChecked="{Binding Path=Model.TimeUnitType, Mode=TwoWay, Converter={StaticResource EnumBooleanConverter}, ConverterParameter={x:Static viewer:TimeUnitTypeEnum.Seconds}}" AutomationProperties.AutomationId="secRdoBtn"/>
</StackPanel>
</GroupBox>
</StackPanel>
<GroupBox Header="{strings:TranslateExtension SaveChart}" Margin="5" HorizontalAlignment="Left" AutomationProperties.AutomationId="SaveBx">
<StackPanel Orientation="Vertical" HorizontalAlignment="Left">
<Button Content="{strings:TranslateExtension SaveToPDF}" Margin="10" Padding="10, 5" Command="{Binding Path=Model.SaveToPDFCommand}" AutomationProperties.AutomationId="SaveToPDFBtn" />
</StackPanel>
</GroupBox>
</StackPanel>
</base:BaseView>