<Window x:Class="vCloud.GeneratePackages.Tool.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        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:local="clr-namespace:vCloud.GeneratePackages.Tool" xmlns:extensions="clr-namespace:vCloud.GeneratePackages.Tool.Extensions"
        mc:Ignorable="d"
        Title="vCloud本地部署包生成工具" Height="720" Width="1024">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="0.7*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <GroupBox Header="FTP" Margin="7">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="Auto"/>
                    </Grid.ColumnDefinitions>
                    <TextBlock Text="Ftp地址:" Margin="7" VerticalAlignment="Center"/>
                    <TextBox Margin="7" Grid.Column="1" Text="{Binding FtpUrl}" MinWidth="300" HorizontalAlignment="Stretch"></TextBox>
                    <Button Margin="7" Grid.Column="2" DataContext="{Binding RefreshCommand}"  Style="{StaticResource CommonButtonStyle}" HorizontalAlignment="Right">刷新</Button>
                </Grid>
                <ListBox Margin="7" Grid.Row="1" ItemsSource="{Binding Files}"  SelectedItem="{Binding SelectedFile}">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal">
                                <Image Margin="2,0" Width="16" Source="{Binding ZipFileIcon, Source={x:Static local:AppManager.Instance}}"/>
                                <TextBlock Text="{Binding Name}"/>
                            </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
            </Grid>
        </GroupBox>
        <!--<Button Grid.Row="1" 
                HorizontalAlignment="Left" 
                Margin="14,7,7,7" 
                Width="200" 
                Style="{StaticResource WarningButtonStyle}"
                Click="Button_Click">填写客户端更新信息</Button>-->
        <GroupBox Grid.Row="1" Grid.ColumnSpan="2" Header="请选择要发布的安装包">
            <ItemsControl DataContext="{Binding UpdatePackageInfo}" 
                          ItemsSource="{Binding PackageInfos}" >
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <WrapPanel/>
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Border  Margin="7" 
                             CornerRadius="4"
                             BorderBrush="#d6e9c6"
                             BorderThickness="1">
                            <Grid>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="Auto" />
                                    <RowDefinition Height="*"/>
                                </Grid.RowDefinitions>
                                <Border Name="header" Background="#dff0d8" BorderBrush="#d6e9c6" BorderThickness="0,0,0,1" >
                                    <StackPanel Orientation="Horizontal" Margin="7">
                                        <TextBlock Text="{Binding PackageType}" FontWeight="Bold" Foreground="#3c763d" />
                                        <CheckBox IsChecked="{Binding IsPublic}">
                                            <CheckBox.Style>
                                                <Style TargetType="CheckBox">
                                                    <Setter Property="Content" Value="发布"/>
                                                    <Setter Property="Margin" Value="7,0"/>
                                                    <Setter Property="Foreground" Value="#3c763d"/>
                                                    <Style.Triggers>
                                                        <Trigger Property="IsChecked" Value="False">
                                                            <Setter Property="Content" Value="不发布"/>
                                                        </Trigger>
                                                    </Style.Triggers>
                                                </Style>
                                            </CheckBox.Style>
                                        </CheckBox>
                                    </StackPanel>
                                </Border>
                            </Grid>
                        </Border>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
        </GroupBox>
        <GroupBox Grid.Row="2" Grid.ColumnSpan="2" Header="特殊选项">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="350" />
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="300" />
                </Grid.ColumnDefinitions>
                <Border Name="header" Background="#dff0d8" BorderBrush="#d6e9c6" BorderThickness="0,0,0,1" CornerRadius="4">
                    <StackPanel Orientation="Horizontal" Margin="7">
                        <CheckBox IsChecked="{Binding IsNeedRemoteDeployment,Mode=TwoWay}">
                            <CheckBox.Style>
                                <Style TargetType="CheckBox">
                                    <Setter Property="Content" Value="支持远程部署"/>
                                    <Setter Property="Margin" Value="7,0"/>
                                    <Setter Property="Foreground" Value="#3c763d"/>
                                    <Setter Property="FontWeight" Value="Bold" />
                                </Style>
                            </CheckBox.Style>
                        </CheckBox>
                        <CheckBox IsChecked="{Binding PackageClientData,Mode=TwoWay}">
                            <CheckBox.Style>
                                <Style TargetType="CheckBox">
                                    <Setter Property="Content" Value="打包客户端文件(仅本地部署时勾选)"/>
                                    <Setter Property="Margin" Value="7,0"/>
                                    <Setter Property="Foreground" Value="#3c763d"/>
                                    <Setter Property="FontWeight" Value="Bold" />
                                </Style>
                            </CheckBox.Style>
                        </CheckBox>
                    </StackPanel>
                </Border>
                <TextBlock Text="新盒子版本:" Grid.Column="2"  HorizontalAlignment="Center"/>
                <TextBox  Grid.Column="3"  Text="{Binding WindowSonoPostVersion}" Margin="0,-2,14,15"/>
            </Grid>
        </GroupBox>
        <GroupBox Header="Log Info" Grid.Column="1"  Margin="7">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition/>
                </Grid.RowDefinitions>
                <Button HorizontalAlignment="Right" Margin="7" Content="清理日志" Command="{Binding ClearLogCommand}" Style="{StaticResource CommonButtonStyle}"/>
                <Button HorizontalAlignment="Left" Margin="7" Content="重试上传" Command="{Binding RetryUploadCommand}" Style="{StaticResource CommonButtonStyle}"/>
                <Button HorizontalAlignment="Left" Margin="100,7,7,7" Content="打开失败目录" Command="{Binding OpenFilesCommand}" Style="{StaticResource CommonButtonStyle}"/>
                <TextBlock Text="当前上传失败数目:" Margin="200,7,7,7" VerticalAlignment="Center"/>
                <TextBlock Text="{Binding FailedNum}" Margin="330,7,7,7" VerticalAlignment="Center"/>
                <ListBox Grid.Row="1" Margin="7" x:Name="logList" ItemsSource="{Binding LogItems}" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
                    <ListBox.ItemTemplate>
                        <DataTemplate >
                            <TextBlock Text="{Binding Content}" TextWrapping="Wrap" Foreground="{Binding LogLevel, Converter={extensions:LogLevelToColorConvertExtension}}" />
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
            </Grid>
        </GroupBox>

        <StackPanel Grid.Row="3" Orientation="Horizontal" Margin="7" Grid.ColumnSpan="2">
            <Button Margin="7" DataContext="{Binding GenerateCommand}" Style="{StaticResource CommonButtonStyle}">生成</Button>
            <TextBlock Margin="7,7,7,0" Text="生成路径:" VerticalAlignment="Center"/>
            <TextBlock Margin="7" VerticalAlignment="Center"><Hyperlink Command="{Binding OpenOutputDirCommand}"><TextBlock Text="{Binding OutputDir}"/></Hyperlink></TextBlock>
        </StackPanel>

    </Grid>
</Window>