<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"
             mc:Ignorable="d" d:DesignWidth="500" d:DesignHeight="450"
             x:Class="SourceGit.Views.Push"
             x:DataType="vm:Push">
  <StackPanel Orientation="Vertical" Margin="8,0">
    <StackPanel Orientation="Horizontal">
      <Path Width="16" Height="16"
            Data="{StaticResource Icons.Push}"/>

      <TextBlock FontSize="18"
                 Margin="8,0,0,0"
                 Classes="bold"
                 Text="{DynamicResource Text.Push.Title}"/>
    </StackPanel>

    <Grid Margin="0,16,0,0" RowDefinitions="32,32,32,Auto,Auto,32,32" ColumnDefinitions="130,*">
      <TextBlock Grid.Row="0" Grid.Column="0"
                 HorizontalAlignment="Right" VerticalAlignment="Center"
                 Margin="0,0,8,0"
                 Text="{DynamicResource Text.Push.Local}"/>
      <ComboBox Grid.Row="0" Grid.Column="1"
                Height="28" Padding="8,0"
                VerticalAlignment="Center" HorizontalAlignment="Stretch"
                ItemsSource="{Binding LocalBranches}"
                SelectedItem="{Binding SelectedLocalBranch, Mode=TwoWay}"
                IsTextSearchEnabled="True"
                TextSearch.TextBinding="{Binding Name, DataType=m:Branch}"
                IsEnabled="{Binding !HasSpecifiedLocalBranch}">
        <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 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.Push.Remote}"/>
      <ComboBox Grid.Row="1" Grid.Column="1"
                Height="28" Padding="8,0"
                VerticalAlignment="Center" HorizontalAlignment="Stretch"
                ItemsSource="{Binding Remotes}"
                SelectedItem="{Binding SelectedRemote, Mode=TwoWay}">
        <ComboBox.ItemTemplate>
          <DataTemplate x:DataType="{x:Type m:Remote}">
            <StackPanel Orientation="Horizontal" Height="20" VerticalAlignment="Center">
              <Path Margin="0,2,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="2" Grid.Column="0"
                 HorizontalAlignment="Right" VerticalAlignment="Center"
                 Margin="0,0,8,0"
                 Text="{DynamicResource Text.Push.To}"/>
      <Grid Grid.Row="2" Grid.Column="1" ColumnDefinitions="*,Auto">
        <ComboBox Grid.Column="0"
                  Height="28" Padding="8,0"
                  VerticalAlignment="Center" HorizontalAlignment="Stretch"
                  ItemsSource="{Binding RemoteBranches}"
                  IsTextSearchEnabled="True"
                  TextSearch.TextBinding="{Binding Name, DataType=m:Branch}"
                  SelectedItem="{Binding SelectedRemoteBranch, Mode=TwoWay}">
          <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 Name}" VerticalAlignment="Center"/>
                <Border Height="14"
                        CornerRadius="7"
                        Margin="4,0,0,0" Padding="6,0"
                        VerticalAlignment="Center"
                        Background="Green"
                        IsVisible="{Binding Head, Converter={x:Static StringConverters.IsNullOrEmpty}}">
                  <TextBlock Text="{DynamicResource Text.Push.New}" FontSize="9" FontFamily="{DynamicResource Fonts.Monospace}" Foreground="White" VerticalAlignment="Center"/>
                </Border>
              </StackPanel>
            </DataTemplate>
          </ComboBox.ItemTemplate>
        </ComboBox>

        <Button Grid.Column="1"
                Classes="icon_button"
                Width="26" Height="32"
                Click="OnPushToNewBranch"
                ToolTip.Tip="{DynamicResource Text.PushToNewBranch}">
          <Path Width="14" Height="14" Data="{StaticResource Icons.Branch.Add}"/>
        </Button>
      </Grid>

      <CheckBox Grid.Row="3" Grid.Column="1"
                Height="32"
                Content="{DynamicResource Text.Push.Tracking}"
                IsChecked="{Binding Tracking, Mode=TwoWay}"
                IsVisible="{Binding IsSetTrackOptionVisible}"
                ToolTip.Tip="-u"/>

      <CheckBox Grid.Row="4" Grid.Column="1"
                Height="32"
                Content="{DynamicResource Text.Push.CheckSubmodules}"
                IsChecked="{Binding CheckSubmodules, Mode=TwoWay}"
                IsVisible="{Binding IsCheckSubmodulesVisible}"
                ToolTip.Tip="--recurse-submodules=check"/>

      <CheckBox Grid.Row="5" Grid.Column="1"
                Content="{DynamicResource Text.Push.WithAllTags}"
                IsChecked="{Binding PushAllTags, Mode=TwoWay}"
                ToolTip.Tip="--tags"/>

      <CheckBox Grid.Row="6" Grid.Column="1"
                Content="{DynamicResource Text.Push.Force}"
                IsChecked="{Binding ForcePush, Mode=TwoWay}"
                ToolTip.Tip="--force-with-lease"/>
    </Grid>
  </StackPanel>
</UserControl>
