diff options
| author | Avi Levkovich <avi@twine-s.com> | 2020-03-25 17:43:49 +0200 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2020-03-25 17:43:49 +0200 |
| commit | d29da53d6f71f45749c0ede5b4cd7281ed3a270e (patch) | |
| tree | fd83afc7771c0f4f19c581e1cf407bcf7c14818b /Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/FileSystemView.xaml | |
| parent | 0208e9f1800c044ec3bd002b7aa7fd00621c81be (diff) | |
| download | Tango-d29da53d6f71f45749c0ede5b4cd7281ed3a270e.tar.gz Tango-d29da53d6f71f45749c0ede5b4cd7281ed3a270e.zip | |
merge
Diffstat (limited to 'Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/FileSystemView.xaml')
| -rw-r--r-- | Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/FileSystemView.xaml | 281 |
1 files changed, 281 insertions, 0 deletions
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/FileSystemView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/FileSystemView.xaml new file mode 100644 index 000000000..8038ea905 --- /dev/null +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/FileSystemView.xaml @@ -0,0 +1,281 @@ +<UserControl x:Class="Tango.FSE.PPCConsole.Views.FileSystemView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:global="clr-namespace:Tango.FSE.PPCConsole" + xmlns:vm="clr-namespace:Tango.FSE.PPCConsole.ViewModels" + xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:Tango.FSE.PPCConsole.Views" + xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=vm:FileSystemViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.FileSystemViewVM}"> + <Grid IsEnabled="{Binding IsFree}"> + <Grid Margin="0 20 0 0"> + <Grid.RowDefinitions> + <RowDefinition Height="30" /> + <RowDefinition Height="1*" /> + </Grid.RowDefinitions> + + <DockPanel> + <ListBox x:Name="listView" SelectedIndex="1" Background="{StaticResource FSE_PrimaryBackgroundLightBrush}" SelectionChanged="ListView_SelectionChanged" Style="{StaticResource MaterialDesignToolToggleListBox}" Margin="50 0 0 0" DockPanel.Dock="Right"> + <ListBox.Resources> + <SolidColorBrush x:Key="MaterialDesignDivider" Color="{StaticResource FSE_PrimaryBackgroundDarkColor}"/> + </ListBox.Resources> + <ListBoxItem Width="60" HorizontalContentAlignment="Center" Tag="Large"> + <material:PackIcon Kind="ViewList" Width="Auto" Height="20" /> + </ListBoxItem> + <ListBoxItem Width="60" HorizontalContentAlignment="Center" Tag="Details"> + <material:PackIcon Kind="FormatListBulleted" Width="Auto" Height="20" /> + </ListBoxItem> + </ListBox> + <DockPanel> + <StackPanel DockPanel.Dock="Right" Orientation="Horizontal"> + <Button Command="{Binding NavigateCommand}" material:ButtonAssist.CornerRadius="0 3 3 0" Style="{StaticResource FSE_RaisedButton_Dark_Hover}" Padding="0" Width="60" Height="Auto"> + <material:PackIcon Kind="Refresh" Width="Auto" Height="20" /> + </Button> + </StackPanel> + <StackPanel DockPanel.Dock="Left" Orientation="Horizontal"> + <Button Command="{Binding BackCommand}" material:ButtonAssist.CornerRadius="3 0 0 3" Style="{StaticResource FSE_RaisedButton_Dark_Hover}" Padding="0" Width="60" Height="Auto"> + <material:PackIcon Kind="ChevronLeft" Width="Auto" Height="20" /> + </Button> + </StackPanel> + <Border> + <Border BorderThickness="3" BorderBrush="{StaticResource FSE_PrimaryBackgroundLightBrush}" Background="{StaticResource FSE_PrimaryBackgroundDarkBrush}"> + <Border.Effect> + <DropShadowEffect BlurRadius="2" ShadowDepth="2" Opacity="0.3" Direction="270" /> + </Border.Effect> + <Grid> + <Border IsHitTestVisible="False" Visibility="{Binding IsBusy,Converter={StaticResource BooleanToVisibilityConverter}}"> + <Border.Background> + <LinearGradientBrush> + <GradientStop Offset="0" Color="Transparent" /> + <GradientStop Offset="0.5" Color="#6303A9F4" /> + <GradientStop Offset="1" Color="Transparent" /> + </LinearGradientBrush> + </Border.Background> + <Border.Style> + <Style TargetType="Border"> + <Style.Triggers> + <DataTrigger Binding="{Binding IsBusy}" Value="True"> + <DataTrigger.EnterActions> + <BeginStoryboard Name="loadingStory"> + <Storyboard> + <DoubleAnimation Storyboard.TargetProperty="Background.GradientStops[1].Offset" From="0" To="1" AutoReverse="True" RepeatBehavior="Forever" /> + </Storyboard> + </BeginStoryboard> + </DataTrigger.EnterActions> + <DataTrigger.ExitActions> + <RemoveStoryboard BeginStoryboardName="loadingStory" /> + </DataTrigger.ExitActions> + </DataTrigger> + </Style.Triggers> + </Style> + </Border.Style> + </Border> + + <TextBox IsEnabled="{Binding IsFree}" Padding="5 0 0 0" Text="{Binding CurrentPath,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" Foreground="{StaticResource FSE_PrimaryForegroundBrush}" CaretBrush="{StaticResource FSE_PrimaryForegroundBrush}" Background="Transparent" BorderThickness="0" VerticalContentAlignment="Center" Style="{x:Null}"> + <TextBox.InputBindings> + <KeyBinding Key="Return" Command="{Binding NavigateCommand}" /> + </TextBox.InputBindings> + </TextBox> + </Grid> + </Border> + </Border> + </DockPanel> + </DockPanel> + + <Grid Grid.Row="1" Margin="0 10 0 0"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="200" /> + <ColumnDefinition Width="5" /> + <ColumnDefinition Width="1*" /> + </Grid.ColumnDefinitions> + + <Border Background="{StaticResource FSE_PrimaryBackgroundDarkBrush}" BorderBrush="{StaticResource FSE_PrimaryBackgroundLightBrush}" BorderThickness="3" CornerRadius="3" Padding="10 5"> + <StackPanel> + <controls:TextIconButton HorizontalContentAlignment="Left" Padding="5" Icon="Computer" Background="Transparent" BorderThickness="0" FocusVisualStyle="{x:Null}">Devices</controls:TextIconButton> + <StackPanel Margin="30 0 0 0"> + <ItemsControl ItemsSource="{Binding Drives}"> + <ItemsControl.ItemTemplate> + <DataTemplate> + <controls:TextIconButton HorizontalContentAlignment="Left" Padding="5" Icon="Harddisk" Background="Transparent" BorderThickness="0" FocusVisualStyle="{x:Null}" Content="{Binding Label}" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.NavigateToFolderCommand}" CommandParameter="{Binding Path}"></controls:TextIconButton> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + </StackPanel> + + <controls:TextIconButton HorizontalContentAlignment="Left" Padding="5" Icon="Computer" Background="Transparent" BorderThickness="0" FocusVisualStyle="{x:Null}">Computer</controls:TextIconButton> + <StackPanel Margin="30 0 0 0"> + <controls:TextIconButton HorizontalContentAlignment="Left" Padding="5" Icon="DesktopMac" Background="Transparent" BorderThickness="0" FocusVisualStyle="{x:Null}" Command="{Binding NavigateSpecialFolderCommand}" CommandParameter="DesktopDirectory">Desktop</controls:TextIconButton> + <controls:TextIconButton HorizontalContentAlignment="Left" Padding="5" Icon="FileDocument" Background="Transparent" BorderThickness="0" FocusVisualStyle="{x:Null}" Command="{Binding NavigateSpecialFolderCommand}" CommandParameter="MyDocuments">Documents</controls:TextIconButton> + <controls:TextIconButton HorizontalContentAlignment="Left" Padding="5" Icon="Application" Background="Transparent" BorderThickness="0" FocusVisualStyle="{x:Null}" Command="{Binding NavigateToFolderCommand}" CommandParameter='%appdata%\Twine\Tango'>Application Data</controls:TextIconButton> + </StackPanel> + </StackPanel> + </Border> + + <Grid Margin="10 0 0 0" Grid.Column="2"> + <Grid.RowDefinitions> + <RowDefinition Height="1*" MinHeight="100" /> + <RowDefinition Height="5" /> + <RowDefinition Height="100" MinHeight="0" /> + </Grid.RowDefinitions> + <controls:FileSystemControl + AllowDrag="True" + AllowDrop="True" + CurrentItem="{Binding CurrentItem}" + Mode="{Binding ElementName=listView,Path=SelectedItem.Tag}" + ItemDoubleClickedCommand="{Binding OpenItemCommand}" + DeleteCommand="{Binding DeleteCommand}" + SelectedItems="{Binding SelectedItems}" + DragCommand="{Binding DragCommand}" + DropCommand="{Binding DropCommand}"/> + + <GridSplitter Grid.Row="1" Height="5" HorizontalAlignment="Stretch" VerticalAlignment="Center" /> + + <Grid Grid.Row="2"> + <DockPanel> + <StackPanel DockPanel.Dock="Top" Margin="5" Orientation="Horizontal"> + <material:PackIcon Kind="Download" /> + <material:PackIcon Margin="-2 0 0 0" Kind="Upload" /> + <TextBlock Margin="5 0 0 0" Foreground="{StaticResource FSE_PrimaryAccentBrush}" FontSize="{StaticResource FSE_SmallFontSize}">Transfer Queue</TextBlock> + <TextBlock Margin="10 0 0 0" Foreground="{StaticResource FSE_GrayBrush}" FontSize="{StaticResource FSE_SmallFontSize}"> + <Run>(</Run><Run Text="{Binding FileSystemHandlers.Count,Mode=OneWay}"></Run><Run>)</Run> + </TextBlock> + </StackPanel> + <Border CornerRadius="3" BorderThickness="3" BorderBrush="{StaticResource FSE_PrimaryBackgroundLightBrush}" Background="{StaticResource FSE_PrimaryBackgroundDarkBrush}"> + <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"> + <ItemsControl ItemsSource="{Binding FileSystemHandlers}" HorizontalContentAlignment="Stretch" FontSize="10" Background="Transparent"> + <ItemsControl.ItemTemplate> + <DataTemplate> + <Border Margin="5 5 5 0" CornerRadius="3" BorderBrush="{StaticResource FSE_PrimaryBackgroundLightBrush}" BorderThickness="2" Padding="10"> + <DockPanel Height="40"> + <Grid DockPanel.Dock="Left" Width="40"> + <Image HorizontalAlignment="Left" Source="{Binding FileSystemItem.Icon}" RenderOptions.BitmapScalingMode="Fant" Stretch="Uniform" /> + <Ellipse Margin="-5 -5 0 0" Fill="{StaticResource FSE_PrimaryBackgroundDarkBrush}" HorizontalAlignment="Left" VerticalAlignment="Top" Width="20" Height="20" /> + <material:PackIcon Margin="-3 -3 0 0" HorizontalAlignment="Left" VerticalAlignment="Top" Width="15" Height="15"> + <material:PackIcon.Style> + <Style TargetType="material:PackIcon"> + <Setter Property="Kind" Value="Hourglass"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_GrayBrush}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Status}" Value="Downloading"> + <Setter Property="Kind" Value="Download"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_PrimaryForegroundBrush}"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding Status}" Value="Uploading"> + <Setter Property="Kind" Value="Upload"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_PrimaryForegroundBrush}"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding Status}" Value="Paused"> + <Setter Property="Kind" Value="Pause"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_OrangeBrush}"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding Status}" Value="Failed"> + <Setter Property="Kind" Value="Alert"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_ErrorBrush}"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding Status}" Value="Aborted"> + <Setter Property="Kind" Value="Alert"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_WarningBrush}"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding Status}" Value="Completed"> + <Setter Property="Kind" Value="Check"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_SuccessBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </material:PackIcon.Style> + </material:PackIcon> + </Grid> + + <Grid DockPanel.Dock="Right" Width="140" Margin="20 0 0 0"> + <UniformGrid Columns="3"> + <Grid> + <controls:ToggleIconButton Width="24" Height="24" UncheckedForeground="{StaticResource FSE_OrangeBrush}" CheckedForeground="{StaticResource FSE_GreenBrush}" UncheckedIcon="Pause" CheckedIcon="Play" Cursor="Hand" IsChecked="{Binding IsPaused,Mode=TwoWay}"> + <controls:ToggleIconButton.Style> + <Style TargetType="controls:ToggleIconButton" BasedOn="{StaticResource {x:Type controls:ToggleIconButton}}"> + <Setter Property="IsEnabled" Value="False"></Setter> + <Setter Property="Visibility" Value="Visible"></Setter> + <Setter Property="Opacity" Value="0.2"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Status}" Value="Downloading"> + <Setter Property="IsEnabled" Value="True"></Setter> + <Setter Property="Opacity" Value="1"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding Status}" Value="Uploading"> + <Setter Property="IsEnabled" Value="True"></Setter> + <Setter Property="Opacity" Value="1"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding Status}" Value="Paused"> + <Setter Property="IsEnabled" Value="True"></Setter> + <Setter Property="Opacity" Value="1"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding Status}" Value="Failed"> + <Setter Property="Visibility" Value="Hidden"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </controls:ToggleIconButton.Style> + </controls:ToggleIconButton> + <controls:IconButton Icon="Restart" Cursor="Hand" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.RetryFailedFileSystemHandlerCommand}" CommandParameter="{Binding}"> + <controls:IconButton.Style> + <Style TargetType="controls:IconButton" BasedOn="{StaticResource {x:Type controls:IconButton}}"> + <Setter Property="Visibility" Value="Hidden"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Status}" Value="Failed"> + <Setter Property="Visibility" Value="Visible"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </controls:IconButton.Style> + </controls:IconButton> + </Grid> + <controls:IconButton Icon="FolderOpen" Cursor="Hand" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.OpenFileSystemHandlerDestinationCommand}" CommandParameter="{Binding}" /> + <controls:IconButton Icon="DeleteForever" Foreground="{StaticResource FSE_RedBrush}" Cursor="Hand" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.DeleteFileSystemHandlerCommand}" CommandParameter="{Binding}" /> + </UniformGrid> + </Grid> + + <Grid Margin="10 0 0 0"> + <DockPanel> + <TextBlock FontSize="{StaticResource FSE_SmallFontSize}" DockPanel.Dock="Top" HorizontalAlignment="Left" Text="{Binding FileSystemItem.Name}" TextTrimming="CharacterEllipsis"></TextBlock> + <TextBlock Foreground="{StaticResource FSE_GrayBrush}" Margin="0 2 0 0" DockPanel.Dock="Top" HorizontalAlignment="Left" TextTrimming="CharacterEllipsis"> + <Run Text="{Binding Position,Mode=OneWay,Converter={StaticResource ByteArrayToFileSizeConverter}}"></Run> + <Run>/</Run> + <Run Text="{Binding Length,Mode=OneWay,Converter={StaticResource ByteArrayToFileSizeConverter}}"></Run> + </TextBlock> + + <Border VerticalAlignment="Bottom" Height="5" Background="{StaticResource FSE_PrimaryBackgroundBrush}"> + <ProgressBar Height="Auto" Minimum="0" Maximum="{Binding Length}" Value="{Binding Position}"> + <ProgressBar.Style> + <Style TargetType="ProgressBar" BasedOn="{StaticResource {x:Type ProgressBar}}"> + <Setter Property="IsIndeterminate" Value="False"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Status}" Value="Pending"> + <Setter Property="IsIndeterminate" Value="True"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </ProgressBar.Style> + </ProgressBar> + </Border> + + + </DockPanel> + + <TextBlock FontSize="{StaticResource FSE_SmallFontSize}" HorizontalAlignment="Right" VerticalAlignment="Top" Text="{Binding Status}"></TextBlock> + </Grid> + </DockPanel> + </Border> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + </ScrollViewer> + </Border> + </DockPanel> + </Grid> + </Grid> + </Grid> + </Grid> + </Grid> +</UserControl> |
