Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
VerifyResults.xaml 19.2 KiB
Newer Older
<UserControl
	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:viewModel="clr-namespace:HashingTool.ViewModel"
	xmlns:views="clr-namespace:HashingTool.Views"
	xmlns:helper="clr-namespace:HashingTool.Helper"
	x:Class="HashingTool.Views.VerifyResults"
	<UserControl.DataContext>
		<viewModel:VerifyResultDataViewModel />
	</UserControl.DataContext>
	<UserControl.Resources>
		<helper:CollectionConverter x:Key="CollectionConverter" />

		<DataTemplate x:Key="ExpanderHeader" DataType="viewModel:VectoXMLFile">
			<DockPanel HorizontalAlignment="Stretch" VerticalAlignment="top" MinWidth="450">
				<TextBlock DockPanel.Dock="Top" Text="{Binding Name}" FontWeight="Bold" />
				<ContentControl DockPanel.Dock="Right" Width="35" Height="35" Margin="10,-10,10,0"
								ToolTip="{Binding JobValidToolTip}">
					<ContentControl.LayoutTransform>
						<ScaleTransform ScaleX=".4" ScaleY=".4" />
					</ContentControl.LayoutTransform>
					<ContentControl.Style>
						<Style TargetType="ContentControl">
							<Setter Property="Content" Value="" />
							<Style.Triggers>
								<DataTrigger Binding="{Binding Valid}" Value="True">
									<Setter Property="ContentTemplate" Value="{StaticResource Icon_OK}" />
								</DataTrigger>
								<DataTrigger Binding="{Binding Valid}" Value="False">
									<Setter Property="ContentTemplate" Value="{StaticResource Icon_NOK}" />
								</DataTrigger>
							</Style.Triggers>
						</Style>
					</ContentControl.Style>
				</ContentControl>
				<views:VectoXMLFileSelector DockPanel.Dock="Left" Margin="0,0,0,0" VerticalAlignment="Top"
											XMLFile="{Binding XMLFile}" Height="1" />

			</DockPanel>
		</DataTemplate>

		<DataTemplate x:Key="ExpanderHeaderJobFile" DataType="viewModel:VectoJobFile">
			<DockPanel HorizontalAlignment="Stretch" VerticalAlignment="top" MinWidth="450">
				<TextBlock DockPanel.Dock="Top" Text="{Binding Name}" FontWeight="Bold" />

				<ContentControl DockPanel.Dock="Right" Width="35" Height="35" Margin="10,-10,10,0"
					<ContentControl.LayoutTransform>
						<ScaleTransform ScaleX=".4" ScaleY=".4" />
					</ContentControl.LayoutTransform>
					<ContentControl.Style>
						<Style TargetType="ContentControl">
							<Setter Property="Content" Value="" />
							<Style.Triggers>
								<DataTrigger Binding="{Binding JobDataValid}" Value="True">
									<Setter Property="ContentTemplate" Value="{StaticResource Icon_OK}" />
								</DataTrigger>
								<DataTrigger Binding="{Binding JobDataValid}" Value="False">
									<Setter Property="ContentTemplate" Value="{StaticResource Icon_NOK}" />
								</DataTrigger>
							</Style.Triggers>
						</Style>
					</ContentControl.Style>
				</ContentControl>
				<views:VectoXMLFileSelector DockPanel.Dock="Left" Margin="0,0,0,0" VerticalAlignment="Top"
											XMLFile="{Binding XMLFile}" Height="1" />

			</DockPanel>
		</DataTemplate>

		<DataTemplate x:Key="ExpanderContentJobFile" DataType="viewModel:VectoXMLFile">
				<Grid.RowDefinitions>
					<RowDefinition />
					<RowDefinition />
					<RowDefinition />
					<RowDefinition />
				<Grid.ColumnDefinitions>
					<ColumnDefinition Width="Auto" SharedSizeGroup="LabelsShareGroup" />
				</Grid.ColumnDefinitions>
				<StackPanel Orientation="Horizontal" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
					<Label>
						<Label.Content>
							<TextBlock
								Text="{Binding XMLFile.XMLValidationErrors.Count, StringFormat='{}XML Validation: {0} Warnings/Errors'}" />
						</Label.Content>
						<Label.Style>
							<Style TargetType="Label">
								<Setter Property="Foreground" Value="Red" />
								<Style.Triggers>
									<DataTrigger Binding="{Binding XMLFile.XMLValidationErrors.Count}" Value="0">
										<Setter Property="Foreground" Value="Black" />
									</DataTrigger>
								</Style.Triggers>
							</Style>
						</Label.Style>
					</Label>
					<Button Margin="10,0,0,0" Content="Details..." HorizontalAlignment="Left" Width="91" Click="Button_Click">
						<Button.Style>
							<Style TargetType="Button">
								<Setter Property="IsEnabled" Value="True" />
								<Style.Triggers>
									<DataTrigger Binding="{Binding XMLFile.XMLValidationErrors.Count}" Value="0">
										<Setter Property="IsEnabled" Value="False" />
									</DataTrigger>
								</Style.Triggers>
							</Style>
						</Button.Style>
					</Button>
				</StackPanel>

				<Label Grid.Row="1" Grid.Column="0" Content="Canonicalization methods:" />
				<TextBox Grid.Row="1" Grid.Column="1"
						Text="{Binding CanonicalizationMethods, Mode=OneWay , Converter={StaticResource CollectionConverter}}"
						Margin="10,2" IsReadOnly="True" />

				<Label Grid.Row="2" Grid.Column="0" Content="Digest method:" />
				<TextBox Grid.Row="2" Grid.Column="1"
						Text="{Binding DigestMethod, Mode=OneWay}"
						Margin="10,2" IsReadOnly="True" />

				<Label Grid.Row="3" Grid.Column="0" Content="Digest Value computed:" Style="{StaticResource DigestValueLabelStyle}" />
				<TextBox Grid.Row="3" Grid.Column="1" Text="{Binding DigestValueComputed}"
						Margin="10,2" IsReadOnly="True" Style="{StaticResource DigestValueTextboxStyle}" />
		<DataTemplate x:Key="ExpanderContentReport" DataType="viewModel:ReportXMLFile">
				<Grid.RowDefinitions>
					<RowDefinition />
					<RowDefinition />
					<RowDefinition />
				</Grid.RowDefinitions>
				<StackPanel Orientation="Horizontal" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
					<Label>
						<Label.Content>
							<TextBlock Text="{Binding XMLFile.XMLValidationErrors.Count, StringFormat='{}{0} Warnings/Errors'}" />
						</Label.Content>
						<Label.Style>
							<Style TargetType="Label">
								<Setter Property="Foreground" Value="Red" />
								<Style.Triggers>
									<DataTrigger Binding="{Binding XMLFile.XMLValidationErrors.Count}" Value="0">
										<Setter Property="Foreground" Value="Black" />
									</DataTrigger>
								</Style.Triggers>
							</Style>
						</Label.Style>
					</Label>
					<Button Margin="10,0,0,0" Content="Details..." HorizontalAlignment="Left" Width="91" Click="Button_Click">
						<Button.Style>
							<Style TargetType="Button">
								<Setter Property="IsEnabled" Value="True" />
								<Style.Triggers>
									<DataTrigger Binding="{Binding XMLFile.XMLValidationErrors.Count}" Value="0">
										<Setter Property="IsEnabled" Value="False" />
									</DataTrigger>
								</Style.Triggers>
							</Style>
						</Button.Style>
					</Button>
				</StackPanel>
				<GroupBox Grid.Row="1" Header="Report Integrity" Margin="0,0,0,5" Style="{DynamicResource CustomGroupboxStyle}">
					<Grid>
						<Grid.ColumnDefinitions>
							<ColumnDefinition Width="Auto" SharedSizeGroup="LabelsShareGroup" />
							<ColumnDefinition Width="*" />
						</Grid.ColumnDefinitions>
						<Grid.RowDefinitions>
							<RowDefinition />
							<RowDefinition />
							<RowDefinition />
							<RowDefinition />
						</Grid.RowDefinitions>
						<Label Grid.Row="0" Grid.Column="0" Content="Canonicalization methods:" />
						<TextBox Grid.Row="0" Grid.Column="1"
								Text="{Binding CanonicalizationMethods, Mode=OneWay , Converter={StaticResource CollectionConverter}}"
								Margin="10,2" IsReadOnly="True" />
						<Label Grid.Row="1" Grid.Column="0" Content="Digest method:" />
						<TextBox Grid.Row="1" Grid.Column="1" Text="{Binding DigestMethod, Mode=OneWay}" Margin="10,2" IsReadOnly="True" />
						<Label Grid.Row="2" Grid.Column="0" Content="Digest Value read:" Style="{StaticResource DigestValueLabelStyle}" />
						<TextBox Grid.Row="2" Grid.Column="1" Text="{Binding DigestValueRead}" Margin="10,2" IsReadOnly="True">
							<TextBox.Style>
								<Style TargetType="TextBox" BasedOn="{StaticResource DigestValueTextboxStyle}">
									<Style.Triggers>
										<DataTrigger Binding="{Binding Valid}" Value="True">
											<Setter Property="Foreground" Value="{StaticResource Color.SuccessGreen}" />
										</DataTrigger>
										<DataTrigger Binding="{Binding Valid}" Value="False">
											<Setter Property="Foreground" Value="{StaticResource Color.ErrorRed}" />
										</DataTrigger>
									</Style.Triggers>
								</Style>
							</TextBox.Style>
						</TextBox>
						<Label Grid.Row="3" Grid.Column="0" Content="Digest Value computed:"
								Style="{StaticResource DigestValueLabelStyle}" />
						<TextBox Grid.Row="3" Grid.Column="1" Text="{Binding DigestValueComputed}" Margin="10,2" IsReadOnly="True">
							<TextBox.Style>
								<Style TargetType="TextBox" BasedOn="{StaticResource DigestValueTextboxStyle}">
									<Style.Triggers>
										<DataTrigger Binding="{Binding Valid}" Value="True">
											<Setter Property="Foreground" Value="{StaticResource Color.SuccessGreen}" />
										</DataTrigger>
										<DataTrigger Binding="{Binding Valid}" Value="False">
											<Setter Property="Foreground" Value="{StaticResource Color.ErrorRed}" />
										</DataTrigger>
									</Style.Triggers>
								</Style>
							</TextBox.Style>
						</TextBox>
					</Grid>
				</GroupBox>
				<GroupBox Grid.Row="2" Header="Job Integrity" Style="{DynamicResource CustomGroupboxStyle}">
					<Grid>
						<Grid.ColumnDefinitions>
							<ColumnDefinition Width="Auto" SharedSizeGroup="LabelsShareGroup" />
							<ColumnDefinition Width="*" />
						</Grid.ColumnDefinitions>
						<Grid.RowDefinitions>
							<RowDefinition />
							<RowDefinition />
							<RowDefinition />
							<RowDefinition />
						</Grid.RowDefinitions>
						<Label Grid.Row="0" Grid.Column="0" Content="Job CanonicalizationMethod:" />
						<TextBox Grid.Row="0" Grid.Column="1"
								Text="{Binding JobCanonicalizationMethodRead, Mode=OneWay, Converter={StaticResource CollectionConverter}}"
								Margin="10,2" IsReadOnly="True" />

						<Label Grid.Row="1" Grid.Column="0" Content="Job Digest Method:" />
						<TextBox Grid.Row="1" Grid.Column="1" Text="{Binding JobDigestMethodRead, Mode=OneWay}"
								Margin="10,2" IsReadOnly="True" />

						<Label Grid.Row="2" Grid.Column="0" Content="Job Digest Value Read:"
								Style="{StaticResource DigestValueLabelStyle}" />
						<TextBox Grid.Row="2" Grid.Column="1" Text="{Binding JobDigestValueRead, Mode=OneWay}"
								Margin="10,2" IsReadOnly="True">
							<TextBox.Style>
								<Style TargetType="TextBox" BasedOn="{StaticResource DigestValueTextboxStyle}">
									<Setter Property="Foreground" Value="{StaticResource Color.ErrorRed}" />
									<Style.Triggers>
										<DataTrigger Binding="{Binding JobDigestValid}" Value="True">
											<Setter Property="Foreground" Value="{StaticResource Color.SuccessGreen}" />
										</DataTrigger>
									</Style.Triggers>
								</Style>
							</TextBox.Style>
						</TextBox>
						<Label Grid.Row="3" Grid.Column="0" Content="Job Digest Value Computed:"
								Style="{StaticResource DigestValueLabelStyle}" />
						<TextBox Grid.Row="3" Grid.Column="1" Text="{Binding JobDigestValueComputed, Mode=OneWay}"
								Margin="10,2" IsReadOnly="True">
							<TextBox.Style>
								<Style TargetType="TextBox" BasedOn="{StaticResource DigestValueTextboxStyle}">
									<Setter Property="Foreground" Value="{StaticResource Color.ErrorRed}" />
									<Style.Triggers>
										<DataTrigger Binding="{Binding JobDigestValid}" Value="True">
											<Setter Property="Foreground" Value="{StaticResource Color.SuccessGreen}" />
										</DataTrigger>
									</Style.Triggers>
								</Style>
							</TextBox.Style>
						</TextBox>
					</Grid>
				</GroupBox>
		<BorderGapMaskConverter x:Key="BorderGapMaskConverter" />

		<Style x:Key="CustomGroupboxStyle" TargetType="{x:Type GroupBox}">
			<Setter Property="BorderBrush" Value="#D5DFE5" />
			<Setter Property="BorderThickness" Value="1" />
			<Setter Property="Template">
				<Setter.Value>
					<ControlTemplate TargetType="{x:Type GroupBox}">
						<Grid SnapsToDevicePixels="true">
							<Grid.ColumnDefinitions>
								<ColumnDefinition Width="6" />
								<ColumnDefinition Width="Auto" />
								<ColumnDefinition Width="*" />
								<ColumnDefinition Width="6" />
							</Grid.ColumnDefinitions>
							<Grid.RowDefinitions>
								<RowDefinition Height="Auto" />
								<RowDefinition Height="Auto" />
								<RowDefinition Height="*" />
								<RowDefinition Height="6" />
							</Grid.RowDefinitions>
							<Border BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}"
									Background="{TemplateBinding Background}" Grid.ColumnSpan="4" Grid.Column="0" CornerRadius="4" Grid.Row="1"
									Grid.RowSpan="3" />
							<Border BorderBrush="White" BorderThickness="{TemplateBinding BorderThickness}" Grid.Column="0"
									Grid.ColumnSpan="4" CornerRadius="2" Grid.Row="1" Grid.RowSpan="3">
								<Border.OpacityMask>
									<MultiBinding ConverterParameter="7" Converter="{StaticResource BorderGapMaskConverter}">
										<Binding ElementName="Header" Path="ActualWidth" />
										<Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}" />
										<Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}" />
									</MultiBinding>
								</Border.OpacityMask>
							</Border>
							<Border x:Name="Header" Grid.Column="1" Padding="3,1,3,0" Grid.Row="0" Grid.RowSpan="2">
								<ContentPresenter ContentSource="Header" RecognizesAccessKey="True"
												SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
							</Border>
							<ContentPresenter Grid.ColumnSpan="2" Grid.Column="1" Margin="{TemplateBinding Padding}" Grid.Row="2"
											SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
						</Grid>
					</ControlTemplate>
				</Setter.Value>
			</Setter>
		</Style>

	<DockPanel>
		<Button DockPanel.Dock="Bottom" x:Name="btnBack" Content="Back" Command="{Binding ShowHomeViewCommand}"
				Margin="0,0,10,10"
				HorizontalAlignment="Right"
				Width="75" Height="22" VerticalAlignment="Bottom" />
		<Label DockPanel.Dock="Top" x:Name="lblHeader" HorizontalAlignment="Center" Margin="0"
				Content="{Binding Name}" FontWeight="Bold" FontSize="18" />
		<Grid Margin="0,0,0,0" HorizontalAlignment="Stretch">
			<Grid.RowDefinitions>
				<RowDefinition Height="Auto" />
			</Grid.RowDefinitions>

			<ScrollViewer Grid.Row="0" VerticalScrollBarVisibility="Auto" HorizontalAlignment="Stretch"
						Margin="10,0,10,10" Background="{x:Static SystemColors.ControlLightBrush}" Grid.IsSharedSizeScope="True">
				<ItemsControl ItemsSource="{Binding Files}" Name="lstInput" Margin="3">
					<ItemsControl.ItemContainerStyle>
						<Style>
							<Setter Property="FrameworkElement.Margin" Value="0,2" />
						</Style>
					</ItemsControl.ItemContainerStyle>
					<ItemsControl.Resources>
						<DataTemplate DataType="{x:Type viewModel:VectoJobFile}">
							<Border BorderBrush="White" BorderThickness="1" CornerRadius="2" Margin="0,0,3,0">
								<Expander Margin="2" Header="{Binding}" HorizontalAlignment="Stretch"
										Style="{DynamicResource HeaderStretchExpanderStyle}"
										HeaderTemplate="{DynamicResource ExpanderHeaderJobFile}"
										ContentTemplate="{DynamicResource ExpanderContentJobFile}"
										Content="{Binding}" />
							</Border>

						</DataTemplate>
						<DataTemplate DataType="{x:Type viewModel:ReportXMLFile}">
							<Border BorderBrush="White" BorderThickness="1" CornerRadius="2" Margin="0,0,3,0">
								<Expander Margin="2" Header="{Binding}" HorizontalAlignment="Stretch"
										Style="{DynamicResource HeaderStretchExpanderStyle}"
										HeaderTemplate="{DynamicResource ExpanderHeader}" ContentTemplate="{DynamicResource ExpanderContentReport}"
										Content="{Binding}" />
							</Border>

						</DataTemplate>

				</ItemsControl>
			</ScrollViewer>
			<Grid Grid.Row="1" Margin="10,3,10,30" HorizontalAlignment="Center">
				<Grid.ColumnDefinitions>
					<ColumnDefinition Width="*" />
					<ColumnDefinition Width="50" />
					<ColumnDefinition Width="*" />
					<ColumnDefinition Width="50" />
					<ColumnDefinition Width="*" />
				</Grid.ColumnDefinitions>
				<Grid.RowDefinitions>
					<RowDefinition />
					<RowDefinition />
				</Grid.RowDefinitions>

				<TextBlock Grid.Row="0" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center"
							TextAlignment="Center" Margin="5"
				</TextBlock>
				<ContentControl Grid.Row="1" Grid.Column="0" Width="50" Height="50" Margin="10,10,10,0">
					<ContentControl.LayoutTransform>
						<ScaleTransform ScaleX="1.5" ScaleY="1.5" />
					</ContentControl.LayoutTransform>
					<ContentControl.Style>
						<Style TargetType="ContentControl">
							<Setter Property="ContentTemplate" Value="{StaticResource Icon_NOK}" />
							<Style.Triggers>
								<DataTrigger Binding="{Binding JobFile.JobDataValid}" Value="True">
									<Setter Property="ContentTemplate" Value="{StaticResource Icon_OK}" />
								</DataTrigger>
							</Style.Triggers>
						</Style>
					</ContentControl.Style>
				</ContentControl>

				<TextBlock Grid.Row="0" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center"
							TextAlignment="Center" Margin="5"
							FontSize="14" FontWeight="Bold">
					Job-File digest <LineBreak /> matches<LineBreak /> Manufacturer Report
				</TextBlock>
				<ContentControl Grid.Row="1" Grid.Column="2" Width="50" Height="50" Margin="10,10,10,0">
					<ContentControl.LayoutTransform>
						<ScaleTransform ScaleX="1.5" ScaleY="1.5" />
					</ContentControl.LayoutTransform>
					<ContentControl.Style>
						<Style TargetType="ContentControl">
							<Setter Property="ContentTemplate" Value="{StaticResource Icon_NOK}" />
							<Style.Triggers>
								<DataTrigger Binding="{Binding ManufacturerReport.JobDigestValid}" Value="True">
									<Setter Property="ContentTemplate" Value="{StaticResource Icon_OK}" />
								</DataTrigger>
							</Style.Triggers>
						</Style>
					</ContentControl.Style>
				</ContentControl>

				<TextBlock Grid.Row="0" Grid.Column="4" HorizontalAlignment="Center" VerticalAlignment="Center"
							TextAlignment="Center" Margin="5"
							FontSize="14" FontWeight="Bold">
					Job-File digest <LineBreak /> matches<LineBreak /> Customer Report
				</TextBlock>
				<ContentControl Grid.Row="1" Grid.Column="4" Width="50" Height="50" Margin="10,10,10,0">
					<ContentControl.LayoutTransform>
						<ScaleTransform ScaleX="1.5" ScaleY="1.5" />
					</ContentControl.LayoutTransform>
					<ContentControl.Style>
						<Style TargetType="ContentControl">
							<Setter Property="ContentTemplate" Value="{StaticResource Icon_NOK}" />
							<Style.Triggers>
								<DataTrigger Binding="{Binding CustomerReport.JobDigestValid}" Value="True">
									<Setter Property="ContentTemplate" Value="{StaticResource Icon_OK}" />
								</DataTrigger>
							</Style.Triggers>
						</Style>
					</ContentControl.Style>
				</ContentControl>

			</Grid>
		</Grid>
</UserControl>