<UserControl xmlns="https://github.com/avaloniaui"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:m="using:SourceGit.Models"
             xmlns:vm="using:SourceGit.ViewModels"
             xmlns:ac="using:Avalonia.Controls.Converters"
             mc:Ignorable="d" d:DesignWidth="500" d:DesignHeight="450"
             x:Class="SourceGit.Views.Pull"
             x:DataType="vm:Pull">
  <StackPanel Orientation="Vertical" Margin="8,0">
    <TextBlock FontSize="18"
               Classes="bold"
               Text="{DynamicResource Text.Pull.Title}"/>
    <Grid Margin="0,16,0,0" RowDefinitions="32,32,32,32,32,32" ColumnDefinitions="140,*">
      <TextBlock Grid.Row="0" Grid.Column="0"
                 HorizontalAlignment="Right" VerticalAlignment="Center"
                 Margin="0,0,8,0"
                 Text="{DynamicResource Text.Pull.Remote}"/>
      <ComboBox Grid.Row="0" Grid.Column="1"
                Height="28" Padding="8,0"
                VerticalAlignment="Center" HorizontalAlignment="Stretch"
                ItemsSource="{Binding Remotes}"
                SelectedItem="{Binding SelectedRemote, Mode=TwoWay}"
                IsEnabled="{Binding !HasSpecifiedRemoteBranch}">
        <ComboBox.ItemTemplate>
          <DataTemplate x:DataType="{x:Type m:Remote}">
            <StackPanel Orientation="Horizontal" Height="20" VerticalAlignment="Center">
              <Path Margin="0,6,8,0" Width="14" Height="14" Fill="{DynamicResource Brush.FG1}" Data="{StaticResource Icons.Remote}"/>
              <TextBlock Text="{Binding Name}"/>
            </StackPanel>
          </DataTemplate>
        </ComboBox.ItemTemplate>
      </ComboBox>

      <TextBlock Grid.Row="1" Grid.Column="0"
                 HorizontalAlignment="Right" VerticalAlignment="Center"
                 Margin="0,0,8,0"
                 Text="{DynamicResource Text.Pull.Branch}"/>
      <ComboBox Grid.Row="1" Grid.Column="1"
                Height="28" Padding="8,0"
                VerticalAlignment="Center" HorizontalAlignment="Stretch"
                ItemsSource="{Binding RemoteBranches}"
                SelectedItem="{Binding SelectedBranch, Mode=TwoWay}"
                IsEnabled="{Binding !HasSpecifiedRemoteBranch}">
        <ComboBox.ItemTemplate>
          <DataTemplate x:DataType="{x:Type m:Branch}">
            <StackPanel Orientation="Horizontal" Height="20" VerticalAlignment="Center">
              <Path Margin="0,0,8,0" Width="14" Height="14" Fill="{DynamicResource Brush.FG1}" Data="{StaticResource Icons.Branch}"/>
              <TextBlock Text="{Binding FriendlyName}"/>
            </StackPanel>
          </DataTemplate>
        </ComboBox.ItemTemplate>
      </ComboBox>

      <TextBlock Grid.Row="2" Grid.Column="0"
                 HorizontalAlignment="Right" VerticalAlignment="Center"
                 Margin="0,0,8,0"
                 Text="{DynamicResource Text.Pull.Into}"/>
      <StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal" Height="20" VerticalAlignment="Center">
        <Path Margin="2,0,8,0" Width="14" Height="14" Fill="{DynamicResource Brush.FG1}" Data="{StaticResource Icons.Branch}"/>
        <TextBlock Text="{Binding Current.Name}"/>
      </StackPanel>

      <TextBlock Grid.Row="3" Grid.Column="0"
                 HorizontalAlignment="Right" VerticalAlignment="Center"
                 Margin="0,0,8,0"
                 Text="{DynamicResource Text.Pull.LocalChanges}"/>
      <StackPanel Grid.Row="3" Grid.Column="1" Orientation="Horizontal">
        <StackPanel.Resources>
          <ac:EnumToBoolConverter x:Key="EnumToBoolConverter"/>
        </StackPanel.Resources>

        <RadioButton Content="{DynamicResource Text.Pull.LocalChanges.DoNothing}"
                     GroupName="LocalChanges"
                     IsChecked="{Binding PreAction, Mode=TwoWay, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static m:DealWithLocalChanges.DoNothing}}"/>
        <RadioButton Content="{DynamicResource Text.Pull.LocalChanges.StashAndReply}"
                     GroupName="LocalChanges"
                     Margin="8,0,0,0"
                     IsChecked="{Binding PreAction, Mode=TwoWay, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static m:DealWithLocalChanges.StashAndReaply}}"/>
        <RadioButton Content="{DynamicResource Text.Pull.LocalChanges.Discard}"
                     GroupName="LocalChanges"
                     Margin="8,0,0,0"
                     IsChecked="{Binding PreAction, Mode=TwoWay, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static m:DealWithLocalChanges.Discard}}"/>
      </StackPanel>

      <CheckBox Grid.Row="4" Grid.Column="1"
                Content="{DynamicResource Text.Pull.UseRebase}"
                IsChecked="{Binding UseRebase, Mode=TwoWay}"/>

      <CheckBox Grid.Row="5" Grid.Column="1"
                Content="{DynamicResource Text.Pull.NoTags}"
                IsChecked="{Binding NoTags, Mode=TwoWay}"/>
    </Grid>
  </StackPanel>
</UserControl>
