1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
<UserControl x:Class="Tango.FSE.PPCConsole.Views.UpdatesView"
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:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:global="clr-namespace:Tango.FSE.PPCConsole"
xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common"
xmlns:helpers="clr-namespace:Tango.SharedUI.Helpers;assembly=Tango.SharedUI"
xmlns:vm="clr-namespace:Tango.FSE.PPCConsole.ViewModels"
xmlns:local="clr-namespace:Tango.FSE.PPCConsole.Views"
xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:dragablz="http://dragablz.net/winfx/xaml/dragablz"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=vm:UpdatesViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.UpdatesViewVM}">
<Grid IsEnabled="{Binding IsFree}">
<Grid IsEnabled="{Binding MachineProvider.IsPPCAvailable}">
<dragablz:TabablzControl FixedHeaderCount="2" Margin="0 20 0 0">
<TabItem Header="SOFTWARE UPDATES">
<Border Margin="0 10 0 0" BorderBrush="{StaticResource FSE_BorderBrush}" BorderThickness="1" CornerRadius="3" Padding="5" Background="{StaticResource FSE_PrimaryBackgroundDarkBrush}">
<DataGrid Style="{StaticResource FSE_DataGrid}" CellStyle="{StaticResource FSE_DataGrid_Cell}" ItemsSource="{Binding Updates}" helpers:DataGridHelper.DoubleClickCommand="{Binding OpenUpdateCommand}">
<DataGrid.Columns>
<DataGridTemplateColumn Header="">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<material:PackIcon Width="20" Height="20">
<material:PackIcon.Style>
<Style TargetType="material:PackIcon">
<Setter Property="Kind" Value="Information"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding IsSetup}" Value="True">
<Setter Property="Kind" Value="Settings"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding IsUpdate}" Value="True">
<Setter Property="Kind" Value="CloudDownload"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding IsDataBase}" Value="True">
<Setter Property="Kind" Value="Database"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding IsSynchronization}" Value="True">
<Setter Property="Kind" Value="Sync"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding IsOfflineUpdate}" Value="True">
<Setter Property="Kind" Value="Sd"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding IsOfflineFirmwareUpgrade}" Value="True">
<Setter Property="Kind" Value="Chip"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding IsStarted}" Value="True">
<Setter Property="Foreground" Value="{StaticResource FSE_OrangeBrush}"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding IsCompleted}" Value="True">
<Setter Property="Foreground" Value="{StaticResource FSE_GreenBrush}"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding IsFailed}" Value="True">
<Setter Property="Foreground" Value="{StaticResource FSE_RedBrush}"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</material:PackIcon.Style>
</material:PackIcon>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="STARTED" Binding="{Binding StartDate,Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" Width="120" />
<DataGridTextColumn Header="APPLICATION" Binding="{Binding VersionAndTag}" Width="Auto" />
<DataGridTextColumn Header="FIRMWARE" Binding="{Binding FirmwareVersion}" Width="Auto" />
<DataGridTextColumn Header="ENDED" Binding="{Binding EndDate,TargetNullValue='Never',FallbackValue='Never',Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" Width="Auto" />
<DataGridTextColumn Header="STATUS" Binding="{Binding UpdateStatus,Converter={StaticResource EnumToDescriptionConverter}}" Width="Auto" />
<DataGridTextColumn Header="FAILED REASON" Binding="{Binding FailedReason,Converter={StaticResource StringToOneLineConverter},ConverterParameter='80'}" Width="*" />
</DataGrid.Columns>
</DataGrid>
</Border>
</TabItem>
<TabItem Header="INSTALLED PACKAGES">
<Border Margin="0 10 0 0" BorderBrush="{StaticResource FSE_BorderBrush}" BorderThickness="1" CornerRadius="3" Padding="5" Background="{StaticResource FSE_PrimaryBackgroundDarkBrush}">
<DataGrid Style="{StaticResource FSE_DataGrid}" CellStyle="{StaticResource FSE_DataGrid_Cell}" ItemsSource="{Binding Packages}" SelectedItem="{Binding SelectedPackage}">
<DataGrid.Columns>
<DataGridTemplateColumn Header="">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<material:PackIcon Width="20" Height="20">
<material:PackIcon.Style>
<Style TargetType="material:PackIcon">
<Setter Property="Kind" Value="Pause"></Setter>
<Setter Property="Foreground" Value="{StaticResource FSE_PrimaryForegroundBrush}"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding State}" Value="Failed">
<Setter Property="Kind" Value="Alert"></Setter>
<Setter Property="Foreground" Value="{StaticResource FSE_ErrorBrush}"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding State}" Value="Installed">
<Setter Property="Kind" Value="Check"></Setter>
<Setter Property="Foreground" Value="{StaticResource FSE_SuccessBrush}"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</material:PackIcon.Style>
</material:PackIcon>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Type" Width="60" Binding="{Binding Type}" />
<DataGridTextColumn Header="Date" Width="120" Binding="{Binding InstallationDate,Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" />
<DataGridTextColumn Header="Name" Width="*" Binding="{Binding PackageName}" />
</DataGrid.Columns>
</DataGrid>
</Border>
</TabItem>
</dragablz:TabablzControl>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0 20 20 0">
<material:PackIcon Kind="Search" VerticalAlignment="Center" Height="Auto" Width="25" />
<TextBox Margin="5 0 0 0" Padding="7" material:HintAssist.Hint="Filter..." VerticalContentAlignment="Center" IsEnabled="{Binding IsFree}" Style="{StaticResource FSE_Rounded_Corners_TextBox}" Width="200" Text="{Binding Filter,UpdateSourceTrigger=PropertyChanged,Delay=500}"></TextBox>
<controls:IconButton Icon="Refresh" Margin="40 0 0 0" Command="{Binding RefreshCommand}" IsEnabled="{Binding IsFree}" ToolTip="Refresh updates"></controls:IconButton>
</StackPanel>
<Grid Margin="4 74 4 4" Background="{StaticResource FSE_SemiTransparentBrush}" Visibility="{Binding IsBusy,Converter={StaticResource BooleanToVisibilityConverter},FallbackValue=Collapsed}">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<ProgressBar Style="{StaticResource FSE_CircularProgressBar}" Width="100" Height="100" IsIndeterminate="True"></ProgressBar>
<TextBlock HorizontalAlignment="Center" Margin="0 20 0 0">Loading machine updates...</TextBlock>
</StackPanel>
</Grid>
</Grid>
</Grid>
</UserControl>
|