aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Views/JobProgressView.xaml
blob: ecdd8b1a966645144d314204e79a2899c492da0e (plain)
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<UserControl x:Class="Tango.PPC.Jobs.Views.JobProgressView"
             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:vm="clr-namespace:Tango.PPC.Jobs.ViewModels"
             xmlns:controls="clr-namespace:Tango.PPC.Jobs.Controls"
             xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch"
             xmlns:converters="clr-namespace:Tango.PPC.Jobs.Converters"
             xmlns:global="clr-namespace:Tango.PPC.Jobs"
             xmlns:local="clr-namespace:Tango.PPC.Jobs.Views"
             mc:Ignorable="d" 
             d:DesignHeight="1280" d:DesignWidth="800" Background="{StaticResource TangoPrimaryBackgroundBrush}" d:DataContext="{d:DesignInstance Type=vm:JobProgressViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.JobProgressViewVM}">

    <UserControl.Resources>
        <converters:JobProgressToPositionConverter x:Key="JobProgressToPositionConverter" />
    </UserControl.Resources>

    <Grid>
        <StackPanel HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0 100 0 0">
            <TextBlock FontSize="{StaticResource TangoHeaderFontSize}" HorizontalAlignment="Center" Text="{Binding Job.Name,FallbackValue='Job Name'}"></TextBlock>

            <Grid Margin="0 80 0 0">
                <touch:TouchRingProgress Width="364" Height="364" Maximum="{Binding RunningJobStatus.TotalProgress}" Value="{Binding RunningJobStatus.Progress}" RingThickness="10">
                    <touch:TouchRingProgress.Style>
                        <Style TargetType="touch:TouchRingProgress">
                            <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter>
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding RunningJobStatus.IsCompleted}" Value="True">
                                    <Setter Property="Foreground" Value="{StaticResource TangoSuccessBrush}"></Setter>
                                </DataTrigger>
                                <DataTrigger Binding="{Binding RunningJobStatus.IsCanceled}" Value="True">
                                    <Setter Property="Foreground" Value="{StaticResource TangoWarningBrush}"></Setter>
                                </DataTrigger>
                                <DataTrigger Binding="{Binding RunningJobStatus.IsFailed}" Value="True">
                                    <Setter Property="Foreground" Value="{StaticResource TangoErrorBrush}"></Setter>
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </touch:TouchRingProgress.Style>
                </touch:TouchRingProgress>

                <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
                        <Image Source="../Images/JobProgressView/drop.png" Stretch="None" />
                        <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">Completed</TextBlock>
                    </StackPanel>

                    <TextBlock FontSize="40" Margin="0 10 0 0" HorizontalAlignment="Center">
                        <Run Text="{Binding RunningJobStatus.Progress,StringFormat=0,FallbackValue=0}"></Run><Run Text="/" /><Run Text="{Binding RunningJobStatus.TotalProgress,StringFormat=0,FallbackValue=0}"/>
                        <Run FontSize="16">m</Run>
                    </TextBlock>

                    <Rectangle Margin="0 10 0 0" Width="250" Stroke="{StaticResource TangoDividerBrush}" />

                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0 15 0 0">
                        <Image Source="../Images/JobProgressView/clock.png" Stretch="None" />
                        <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">Time Left</TextBlock>
                    </StackPanel>

                    <TextBlock FontSize="40" Margin="0 10 0 0" HorizontalAlignment="Center">
                        <Run Text="{Binding RunningJobStatus.RemainingTime,Converter={StaticResource TimeSpanToTwoDigitsTimeConverter},FallbackValue=5}"></Run>
                        <Run FontSize="16" Text="{Binding RunningJobStatus.RemainingTime,Converter={StaticResource TimeSpanToLabelConverter},FallbackValue=min}"></Run>
                    </TextBlock>
                </StackPanel>
            </Grid>

            <Grid Margin="0 150 0 0">
                <StackPanel>
                    <Canvas Height="80" Margin="5 0">
                        <StackPanel>
                            <Canvas.Left>
                                <MultiBinding Converter="{StaticResource JobProgressToPositionConverter}">
                                    <Binding Path="RunningJobStatus.CurrentUnitProgress" />
                                    <Binding Path="RunningJobStatus.CurrentUnitTotalProgress" />
                                    <Binding RelativeSource="{RelativeSource AncestorType=Canvas}" Path="ActualWidth" />
                                </MultiBinding>
                            </Canvas.Left>
                            <StackPanel Margin="-50 0 0 0">
                                <ContentControl>
                                    <ContentControl.Style>
                                        <Style TargetType="ContentControl">
                                            <Setter Property="Content">
                                                <Setter.Value>
                                                    <StackPanel>
                                                        <TextBlock HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">now dying</TextBlock>
                                                        <touch:TouchIcon Margin="0 8 0 0" HorizontalAlignment="Center" Icon="Water" Angle="180" Foreground="{StaticResource TangoPrimaryAccentBrush}" Width="40" Height="40" />
                                                    </StackPanel>
                                                </Setter.Value>
                                            </Setter>
                                            <Style.Triggers>
                                                <DataTrigger Binding="{Binding RunningJobStatus.IsCanceled}" Value="True">
                                                    <Setter Property="Content">
                                                        <Setter.Value>
                                                            <StackPanel>
                                                                <TextBlock HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">job canceled</TextBlock>
                                                                <touch:TouchIcon Margin="0 8 0 0" HorizontalAlignment="Center" Icon="Alert" Foreground="{StaticResource TangoWarningBrush}" Width="40" Height="40" />
                                                            </StackPanel>
                                                        </Setter.Value>
                                                    </Setter>
                                                </DataTrigger>
                                                <DataTrigger Binding="{Binding RunningJobStatus.IsFailed}" Value="True">
                                                    <Setter Property="Content">
                                                        <Setter.Value>
                                                            <StackPanel>
                                                                <TextBlock HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">job failed</TextBlock>
                                                                <touch:TouchIcon Margin="0 8 0 0" HorizontalAlignment="Center" Icon="AlertOctagon" Foreground="{StaticResource TangoErrorBrush}" Width="40" Height="40" />
                                                            </StackPanel>
                                                        </Setter.Value>
                                                    </Setter>
                                                </DataTrigger>
                                                <DataTrigger Binding="{Binding RunningJobStatus.IsCompleted}" Value="True">
                                                    <Setter Property="Content">
                                                        <Setter.Value>
                                                            <StackPanel>
                                                                <TextBlock HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">job completed</TextBlock>
                                                                <touch:TouchIcon Margin="0 8 0 0" HorizontalAlignment="Center" Icon="Check" Foreground="{StaticResource TangoSuccessBrush}" Width="40" Height="40" />
                                                            </StackPanel>
                                                        </Setter.Value>
                                                    </Setter>
                                                </DataTrigger>
                                            </Style.Triggers>
                                        </Style>
                                    </ContentControl.Style>
                                </ContentControl>
                            </StackPanel>
                        </StackPanel>
                    </Canvas>

                    <Grid>
                        <controls:RunningJobViewer Height="30" Width="600" DisplayMarkers="False" IsActive="True" Job="{Binding Job}" RunningJobStatus="{Binding RunningJobStatus}" />

                        <TextBlock Margin="0 0 -40 0" VerticalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}" HorizontalAlignment="Right">
                            <Run Text="x"></Run><Run Text="{Binding RunningJobStatus.RemainingUnits}"></Run>
                        </TextBlock>
                    </Grid>
                </StackPanel>
            </Grid>

            <touch:TouchButton Margin="0 100 0 0" Style="{StaticResource TangoLinkButton}" Height="60" FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding RunningJobStatus.IsCompleted,Converter={StaticResource BooleanToVisibilityConverter}}">
                Go to job
            </touch:TouchButton>
        </StackPanel>
    </Grid>
</UserControl>