Files
annotations/Azaion.Dataset/DatasetExplorer.xaml
T
Oleksandr Bezdieniezhnykh ad782bcbaa splitting python complete
2025-08-12 14:48:56 +03:00

253 lines
12 KiB
XML

<Window x:Class="Azaion.Dataset.DatasetExplorer"
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:vwp="clr-namespace:WpfToolkit.Controls;assembly=VirtualizingWrapPanel"
xmlns:controls="clr-namespace:Azaion.Common.Controls;assembly=Azaion.Common"
xmlns:dto="clr-namespace:Azaion.Common.DTO;assembly=Azaion.Common"
xmlns:controls1="clr-namespace:Azaion.Dataset.Controls"
mc:Ignorable="d"
Title="Переглядач анотацій" Height="900" Width="1200"
WindowState="Maximized">
<Window.Resources>
<DataTemplate x:Key="ThumbnailTemplate" DataType="{x:Type dto:AnnotationThumbnail}">
<Border BorderBrush="IndianRed" Padding="5">
<Border.Style>
<Style TargetType="Border">
<Setter Property="BorderThickness" Value="0"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding IsSeed}" Value="True">
<Setter Property="BorderThickness" Value="8"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding IsSeed}" Value="False">
<Setter Property="BorderThickness" Value="0"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="18"></RowDefinition>
<RowDefinition Height="14"></RowDefinition>
</Grid.RowDefinitions>
<Image
Grid.Row="0"
Source="{Binding Thumbnail}"
Width="480"
Height="270"
Margin="2" />
<TextBlock
Grid.Row="1"
Foreground="LightGray"
Text="{Binding ImageName}" />
<TextBlock
Grid.Row="2"
HorizontalAlignment="Right"
Foreground="Gray">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}: {1}">
<Binding Mode="OneWay" Path="CreatedDate"></Binding>
<Binding Mode="OneWay" Path="CreatedEmail"></Binding>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Grid>
</Border>
</DataTemplate>
</Window.Resources>
<Grid
Name="MainGrid"
ShowGridLines="False"
Background="Black"
HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="32"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="250" />
<ColumnDefinition Width="4"/>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid Name="LeftPane"
ShowGridLines="False"
Background="Black"
HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="35"></RowDefinition>
<RowDefinition Height="30"></RowDefinition>
</Grid.RowDefinitions>
<controls:DetectionClasses
x:Name="LvClasses"
Grid.Column="0"
Grid.Row="0" />
<CheckBox Grid.Row="1"
Margin="10"
Foreground="White"
Name="ShowWithObjectsOnlyChBox"
Click="ShowWithObjectsOnly_OnClick">
Показувати лише анотації з об'єктами
</CheckBox>
<Grid Name="LeftPaneSearch"
ShowGridLines="False"
Background="Black"
HorizontalAlignment="Stretch"
Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Label
Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Stretch"
Margin="1"
Foreground="LightGray"
Content="Фільтр: "/>
<TextBox Name="TbSearch" TextChanged="TbSearch_OnTextChanged"
Grid.Column="1"
Foreground="Gray"/>
</Grid>
</Grid>
<TabControl
Name="Switcher"
Grid.Column="2"
Grid.Row="0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="Black">
<TabItem Name="AnnotationsTab" Header="Анотації">
<vwp:GridView
Name="ThumbnailsView"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="Black"
Margin="2,5,2,2"
ItemsSource="{Binding SelectedAnnotations, Mode=OneWay}"
ItemTemplate="{StaticResource ThumbnailTemplate}"
>
</vwp:GridView>
</TabItem>
<TabItem Name="EditorTab"
Header="Редактор"
Visibility="Collapsed">
<controls:CanvasEditor x:Name="ExplorerEditor"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch" >
</controls:CanvasEditor>
</TabItem>
<TabItem Name="ClassDistributionTab" Header="Розподіл класів">
<controls1:ClassDistribution x:Name="ClassDistributionPlot"/>
</TabItem>
</TabControl>
<StatusBar
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="3"
Background="#252525"
Foreground="White"
>
<StatusBar.ItemsPanel>
<ItemsPanelTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
</Grid>
</ItemsPanelTemplate>
</StatusBar.ItemsPanel>
<StatusBarItem Grid.Column="0" Background="Black">
<Button Name="ValidateBtn"
Padding="2"
ToolTip="Підтвердити валідність. Клавіша: [V]"
Background="Black" BorderBrush="Black"
Cursor="Hand"
Click="ValidateAnnotationsClick">
<StackPanel Orientation="Horizontal">
<Image>
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<DrawingGroup ClipGeometry="M0,0 V320 H320 V0 H0 Z">
<GeometryDrawing Brush="LightGray" Geometry="m30.71 7.29-6-6a1 1 0 0 0 -.71-.29h-2v8a2 2 0 0 1 -2 2h-8a2 2 0 0
1 -2-2v-8h-6a3 3 0 0 0 -3 3v24a3 3 0 0 0 3 3h2v-9a3 3 0 0 1 3-3h14a3 3 0 0 1 3 3v9h2a3 3 0 0 0 3-3v-20a1 1 0 0 0 -.29-.71z" />
<GeometryDrawing Brush="LightGray" Geometry="m12 1h8v8h-8z" />
<GeometryDrawing Brush="LightGray" Geometry="m23 21h-14a1 1 0 0 0 -1 1v9h16v-9a1 1 0 0 0 -1-1z" />
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
<TextBlock Text="Підтвердити валідність" Foreground="White" Padding="8 0 0 0"></TextBlock>
</StackPanel>
</Button>
</StatusBarItem>
<Separator Grid.Column="1" />
<StatusBarItem x:Name="RefreshThumbnailsButtonItem" Grid.Column="2" Background="Black">
<Button
Padding="2"
Height="25"
ToolTip="Оновити базу іконок" Background="Black"
BorderBrush="Black"
Cursor="Hand"
Click="RefreshThumbnailsBtnClick">
<StackPanel Orientation="Horizontal">
<Image>
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<DrawingGroup ClipGeometry="M0,0 V1200 H1200 V0 H0 Z">
<GeometryDrawing Brush="LightGray" Geometry="M889.68 166.32c-93.608-102.216-228.154-166.32-377.68-166.32-282.77 0-512
229.23-512 512h96c0-229.75 186.25-416 416-416 123.020 0 233.542 53.418 309.696 138.306l-149.696 149.694h352v-352l-134.32 134.32z" />
<GeometryDrawing Brush="LightGray" Geometry="M928 512c0 229.75-186.25 416-416 416-123.020
0-233.542-53.418-309.694-138.306l149.694-149.694h-352v352l134.32-134.32c93.608 102.216 228.154 166.32 377.68 166.32 282.77 0 512-229.23 512-512h-96z" />
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
<TextBlock Foreground="White" Padding="8 0 0 0">Оновити базу іконок</TextBlock>
</StackPanel>
</Button>
</StatusBarItem>
<StatusBarItem Grid.Column="2" x:Name="RefreshProgressBarItem" Visibility="Hidden">
<StackPanel>
<TextBlock Name="RefreshThumbCaption" Padding="0 0 5 0">База іконок:</TextBlock>
<ProgressBar x:Name="RefreshThumbBar"
Width="150"
Height="15"
HorizontalAlignment="Stretch"
Background="#252525"
BorderBrush="#252525"
Foreground="LightBlue"
Maximum="100"
Minimum="0"
Value="0">
</ProgressBar>
</StackPanel>
</StatusBarItem>
<StatusBarItem Grid.Column="3" Background="Black">
<TextBlock Name="StatusText" Text=""/>
</StatusBarItem>
</StatusBar>
</Grid>
</Window>