116 lines
5.2 KiB
XML
116 lines
5.2 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<UserControl
|
|
xmlns="https://github.com/avaloniaui"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:views="clr-namespace:LibationAvalonia.Views"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
mc:Ignorable="d" d:DesignWidth="450" d:DesignHeight="850"
|
|
x:Class="LibationAvalonia.Views.ProcessQueueControl">
|
|
|
|
<UserControl.Resources>
|
|
<RecyclePool x:Key="RecyclePool" />
|
|
<DataTemplate x:Key="queuedBook">
|
|
<views:ProcessBookControl />
|
|
</DataTemplate>
|
|
<RecyclingElementFactory x:Key="elementFactory" RecyclePool="{StaticResource RecyclePool}">
|
|
<RecyclingElementFactory.Templates>
|
|
<StaticResource x:Key="queuedBook" ResourceKey="queuedBook" />
|
|
</RecyclingElementFactory.Templates>
|
|
</RecyclingElementFactory>
|
|
</UserControl.Resources>
|
|
|
|
<Grid RowDefinitions="*,Auto">
|
|
<TabControl Grid.Row="0">
|
|
<TabControl.Styles>
|
|
<Style Selector="ItemsPresenter#PART_ItemsPresenter">
|
|
<Setter Property="Height" Value="33"/>
|
|
</Style>
|
|
</TabControl.Styles>
|
|
<!-- Queue Tab -->
|
|
<TabItem>
|
|
<TabItem.Header>
|
|
<TextBlock FontSize="14" VerticalAlignment="Center">Process Queue</TextBlock>
|
|
</TabItem.Header>
|
|
<Grid ColumnDefinitions="*" RowDefinitions="*,40">
|
|
<Border Grid.Column="0" Grid.Row="0" BorderThickness="1" BorderBrush="{DynamicResource DataGridGridLinesBrush}" Background="WhiteSmoke">
|
|
<ScrollViewer
|
|
Name="scroller"
|
|
HorizontalScrollBarVisibility="Disabled"
|
|
VerticalScrollBarVisibility="Auto">
|
|
<ItemsRepeater IsVisible="True"
|
|
Grid.Column="0"
|
|
Name="repeater"
|
|
VerticalCacheLength="1.2"
|
|
HorizontalCacheLength="1"
|
|
Background="Transparent"
|
|
Items="{Binding Items}"
|
|
ItemTemplate="{StaticResource elementFactory}" />
|
|
</ScrollViewer>
|
|
</Border>
|
|
<Grid Grid.Column="0" Grid.Row="1" ColumnDefinitions="*,Auto" Margin="6,0,6,0">
|
|
<Button Grid.Column="0" FontSize="12" HorizontalAlignment="Left" Click="CancelAllBtn_Click">Cancel All</Button>
|
|
<Button Grid.Column="1" FontSize="12" HorizontalAlignment="Right" Click="ClearFinishedBtn_Click">Clear Finished</Button>
|
|
</Grid>
|
|
</Grid>
|
|
</TabItem>
|
|
<!-- Log Tab -->
|
|
<TabItem>
|
|
<TabItem.Header>
|
|
<TextBlock FontSize="14" VerticalAlignment="Center">Queue Log</TextBlock>
|
|
</TabItem.Header>
|
|
<Grid ColumnDefinitions="*" RowDefinitions="*,40">
|
|
<Border Grid.Column="0" Grid.Row="0" BorderThickness="1" BorderBrush="{DynamicResource DataGridGridLinesBrush}" Background="WhiteSmoke">
|
|
<DataGrid AutoGenerateColumns="False" Items="{Binding LogEntries}">
|
|
<DataGrid.Columns>
|
|
<DataGridTextColumn SortMemberPath="LogDate" Header="Timestamp" CanUserSort="True" Binding="{Binding LogDateString}" Width="90"/>
|
|
<DataGridTemplateColumn SortMemberPath="LogMessage" Width="*" Header="Message" CanUserSort="True">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<Border BorderThickness="3">
|
|
<TextBlock VerticalAlignment="Center" TextWrapping="Wrap" Text="{Binding LogMessage}" />
|
|
</Border>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</DataGridTemplateColumn>
|
|
</DataGrid.Columns>
|
|
</DataGrid>
|
|
</Border>
|
|
<Grid Grid.Column="0" Grid.Row="1" ColumnDefinitions="*,Auto" Margin="6,0,6,0">
|
|
<Button Grid.Column="0" FontSize="12" HorizontalAlignment="Left" Click="LogCopyBtn_Click">Copy Log Entries to Clipboard</Button>
|
|
<Button Grid.Column="1" FontSize="12" HorizontalAlignment="Right" Click="ClearLogBtn_Click">Clear Log</Button>
|
|
</Grid>
|
|
</Grid>
|
|
</TabItem>
|
|
</TabControl>
|
|
<!-- Queue Status -->
|
|
<Grid Grid.Row="1" Margin="5,0,0,0" ColumnDefinitions="Auto,*,Auto">
|
|
<Panel Grid.Column="0">
|
|
<Panel.Styles>
|
|
<Style Selector="ProgressBar:horizontal">
|
|
<Setter Property="MinWidth" Value="100" />
|
|
</Style>
|
|
</Panel.Styles>
|
|
<ProgressBar IsVisible="{Binding ProgressBarVisible}" Value="{Binding Progress}" ShowProgressText="True" />
|
|
</Panel>
|
|
<StackPanel Orientation="Horizontal" Grid.Column="1">
|
|
<StackPanel Margin="5,0,0,0" Orientation="Horizontal">
|
|
<Image IsVisible="{Binding AnyQueued}" Width="20" Height="20" Source="/Assets/queued.png" />
|
|
<TextBlock IsVisible="{Binding AnyQueued}" VerticalAlignment="Center" Text="{Binding QueuedCount}" />
|
|
</StackPanel>
|
|
<StackPanel Margin="5,0,0,0" Orientation="Horizontal">
|
|
<Image IsVisible="{Binding AnyCompleted}" Width="20" Height="20" Source="/Assets/completed.png" />
|
|
<TextBlock IsVisible="{Binding AnyCompleted}" VerticalAlignment="Center" Text="{Binding CompletedCount}" />
|
|
</StackPanel>
|
|
<StackPanel Margin="5,0,0,0" Orientation="Horizontal">
|
|
<Image IsVisible="{Binding AnyErrors}" Width="20" Height="20" Source="/Assets/errored.png" />
|
|
<TextBlock IsVisible="{Binding AnyErrors}" VerticalAlignment="Center" Text="{Binding ErrorCount}" />
|
|
</StackPanel>
|
|
</StackPanel>
|
|
<Panel Grid.Column="2" Margin="0,0,5,0" HorizontalAlignment="Right" VerticalAlignment="Center">
|
|
<TextBlock Text="{Binding RunningTime}" />
|
|
</Panel>
|
|
</Grid>
|
|
</Grid>
|
|
</UserControl>
|