<v:ChromelessWindow 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:vm="using:SourceGit.ViewModels"
                    xmlns:v="using:SourceGit.Views"
                    mc:Ignorable="d" d:DesignWidth="500" d:DesignHeight="450"
                    x:Class="SourceGit.Views.ConfigureWorkspace"
                    x:DataType="vm:ConfigureWorkspace"
                    x:Name="ThisControl"
                    Icon="/App.ico"
                    Title="{DynamicResource Text.ConfigureWorkspace}"
                    SizeToContent="WidthAndHeight"
                    CanResize="False"
                    WindowStartupLocation="CenterOwner">
  <Grid RowDefinitions="Auto,Auto" MinWidth="494">
    <!-- TitleBar -->
    <Grid Grid.Row="0" Height="28" IsVisible="{Binding !#ThisControl.UseSystemWindowFrame}">
      <Border Background="{DynamicResource Brush.TitleBar}"
              BorderThickness="0,0,0,1" BorderBrush="{DynamicResource Brush.Border0}"
              PointerPressed="BeginMoveWindow"/>

      <Path Width="14" Height="14"
            Margin="10,0,0,0"
            HorizontalAlignment="Left"
            Data="{StaticResource Icons.Workspace}"
            IsVisible="{OnPlatform True, macOS=False}"/>

      <TextBlock Classes="bold"
                 Text="{DynamicResource Text.ConfigureWorkspace}"
                 HorizontalAlignment="Center" VerticalAlignment="Center"
                 IsHitTestVisible="False"/>

      <v:CaptionButtons HorizontalAlignment="Right"
                        IsCloseButtonOnly="True"
                        IsVisible="{OnPlatform True, macOS=False}"/>
    </Grid>

    <!-- BODY -->
    <Grid Grid.Row="1" ColumnDefinitions="200,16,256" MinHeight="340" Margin="8">
      <Border Grid.Column="0"
              BorderThickness="1" BorderBrush="{DynamicResource Brush.Border2}"
              Background="{DynamicResource Brush.Contents}">
        <Grid RowDefinitions="*,1,Auto">
          <ListBox Grid.Row="0"
                   Background="Transparent"
                   ItemsSource="{Binding Workspaces}"
                   SelectedItem="{Binding Selected, Mode=TwoWay}"
                   SelectionMode="Single">
            <ListBox.Styles>
              <Style Selector="ListBoxItem">
                <Setter Property="MinHeight" Value="0"/>
                <Setter Property="Height" Value="26"/>
                <Setter Property="Padding" Value="4,2"/>
              </Style>
            </ListBox.Styles>

            <ListBox.ItemsPanel>
              <ItemsPanelTemplate>
                <StackPanel Orientation="Vertical"/>
              </ItemsPanelTemplate>
            </ListBox.ItemsPanel>

            <ListBox.ItemTemplate>
              <DataTemplate DataType="vm:Workspace">
                <Grid ColumnDefinitions="Auto,*,Auto">
                  <Path Grid.Column="0" Margin="4,0" Width="14" Height="14" Data="{StaticResource Icons.Workspace}" Fill="{Binding Brush}"/>
                  <TextBlock Grid.Column="1" Text="{Binding Name}" Margin="4,0" TextTrimming="CharacterEllipsis"/>
                  <Path Grid.Column="2"
                        Margin="4,0"
                        Width="14" Height="14"
                        Data="{StaticResource Icons.Check}"
                        Fill="{DynamicResource Brush.FG1}"
                        IsVisible="{Binding IsActive}"/>
                </Grid>
              </DataTemplate>
            </ListBox.ItemTemplate>
          </ListBox>

          <Rectangle Grid.Row="1" Height="1" Fill="{DynamicResource Brush.Border2}" HorizontalAlignment="Stretch" VerticalAlignment="Bottom"/>

          <Grid Grid.Row="2" ColumnDefinitions="Auto,Auto,*,Auto,Auto" Background="{DynamicResource Brush.ToolBar}">
            <Button Grid.Column="0"
                    Classes="icon_button"
                    Width="28" Height="28"
                    Command="{Binding Add}">
              <Path Width="14" Height="14" Data="{StaticResource Icons.Plus}"/>
            </Button>
            <Button Grid.Column="1"
                    Classes="icon_button"
                    Width="28" Height="28"
                    Command="{Binding Delete}"
                    IsEnabled="{Binding CanDeleteSelected}">
              <Path Width="14" Height="14" Data="{StaticResource Icons.Minus}"/>
            </Button>
            <Button Grid.Column="3"
                    Classes="icon_button"
                    Width="28" Height="28"
                    Command="{Binding MoveSelectedUp}"
                    IsVisible="{Binding Selected, Converter={x:Static ObjectConverters.IsNotNull}}">
              <Path Width="14" Height="14"
                    Margin="0,6,0,0"
                    Data="{StaticResource Icons.Up}"/>
            </Button>
            <Button Grid.Column="4"
                    Classes="icon_button"
                    Width="28" Height="28"
                    Command="{Binding MoveSelectedDown}"
                    IsVisible="{Binding Selected, Converter={x:Static ObjectConverters.IsNotNull}}">
              <Path Width="14" Height="14"
                    Margin="0,6,0,0"
                    Data="{StaticResource Icons.Down}"/>
            </Button>
          </Grid>
        </Grid>
      </Border>

      <ContentControl Grid.Column="2" Content="{Binding Selected}">
        <ContentControl.DataTemplates>
          <DataTemplate DataType="vm:Workspace">
            <Grid RowDefinitions="30,32,30,32,30,Auto,32">
              <TextBlock Grid.Row="0" Margin="0,0,0,4" Text="{DynamicResource Text.ConfigureWorkspace.Name}" VerticalAlignment="Bottom"/>
              <TextBox Grid.Row="1" CornerRadius="3" Height="28" Text="{Binding Name, Mode=TwoWay}"/>

              <TextBlock Grid.Row="2" Margin="0,0,0,4" Text="{DynamicResource Text.Preferences.Git.DefaultCloneDir}" VerticalAlignment="Bottom"/>
              <TextBox Grid.Row="3" CornerRadius="3" Height="28" Text="{Binding DefaultCloneDir, Mode=TwoWay}">
                <TextBox.InnerRightContent>
                  <Button Classes="icon_button" Width="30" Height="30" Click="SelectDefaultCloneDir">
                    <Path Data="{StaticResource Icons.Folder.Open}" Fill="{DynamicResource Brush.FG1}"/>
                  </Button>
                </TextBox.InnerRightContent>
              </TextBox>

              <TextBlock Grid.Row="4" Margin="0,0,0,4" Text="{DynamicResource Text.ConfigureWorkspace.Color}" VerticalAlignment="Bottom"/>
              <v:ColorPicker Grid.Row="5" HorizontalAlignment="Left" Value="{Binding Color, Mode=TwoWay}"/>

              <CheckBox Grid.Row="6"
                        Content="{DynamicResource Text.ConfigureWorkspace.Restore}"
                        IsChecked="{Binding RestoreOnStartup, Mode=TwoWay}"/>
            </Grid>
          </DataTemplate>
        </ContentControl.DataTemplates>
      </ContentControl>
    </Grid>
  </Grid>
</v:ChromelessWindow>
