aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/FileSystemView.xaml
diff options
context:
space:
mode:
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.xaml281
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>