<UserControl
    xmlns="https://github.com/avaloniaui"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:vm="clr-namespace:Splitter_UI.ViewModels"
    xmlns:views="clr-namespace:Splitter_UI.Views"
    xmlns:conv="clr-namespace:Splitter_UI.Converters"
    x:Class="Splitter_UI.Views.FileListView"
    x:DataType="vm:FileListViewModel"
    KeyDown="OnKeyDown"
    Focusable="True">

    <UserControl.Resources>
        <conv:ZeroToBoolConverter x:Key="ZeroToBoolConverter"/>
        <conv:RotationAngleToIconConverter x:Key="RotationAngleToIconConverter"/>
    </UserControl.Resources>

    <UserControl.Styles>
        <Style Selector="views|FileListView Border#DropZone">
            <Setter Property="BorderBrush" Value="Transparent"/>
            <Setter Property="BorderThickness" Value="0"/>
        </Style>
        <Style Selector="views|FileListView[IsDragActive=true] Border#DropZone">
            <Setter Property="BorderBrush" Value="Red"/>
            <Setter Property="BorderThickness" Value="2"/>
        </Style>

    </UserControl.Styles>

    <Border x:Name="DropZone"
            Background="#1E1E1E"
            Padding="10"
            DragDrop.AllowDrop="True"
            DragDrop.Drop="OnDrop"
            DragDrop.DragOver="OnDragOver"
            DragDrop.DragEnter="OnDragEnter"
            DragDrop.DragLeave="OnDragLeave">


        <Grid>

            <!-- Empty message -->
            <TextBlock Text="Drag files here"
                       HorizontalAlignment="Center"
                       VerticalAlignment="Center"
                       FontSize="20"
                       Foreground="#666"
                       IsVisible="{Binding Files.Count, Converter={StaticResource ZeroToBoolConverter}}"/>

            <!-- File list -->
            <ScrollViewer>
                <ListBox ItemsSource="{Binding Files}"
                         SelectedItems="{Binding SelectedFiles}"
                         SelectedItem="{Binding Selected}"
                         SelectionMode="Multiple"
                         BorderThickness="0"
                         Background="Transparent">

                    <ListBox.ItemsPanel>
                        <ItemsPanelTemplate>
                            <WrapPanel Orientation="Horizontal"/>
                        </ItemsPanelTemplate>
                    </ListBox.ItemsPanel>

                    <ListBox.Styles>
                        <Style Selector="ListBoxItem:selected /template/ ContentPresenter">
                            <Setter Property="Background" Value="#9A9A9A"/>
                    </Style>
                    </ListBox.Styles>

                    <ListBox.ItemTemplate>
                        <DataTemplate x:DataType="vm:JobViewModel">
                            <views:JobListItemView/>
                        </DataTemplate>
                    </ListBox.ItemTemplate>

                </ListBox>
            </ScrollViewer>
        </Grid>
    </Border>
</UserControl>
