aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Views/JobProgressView.xaml
blob: 40cfc40f9651d1fbd36c9080ec940ecc70bf83db (181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232
<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">
            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
                <TextBlock FontSize="{StaticResource TangoHeaderFontSize}" Text="{Binding Job.Name,FallbackValue='Job Name'}" TextWrapping="Wrap" MaxWidth="700"></TextBlock>
                <TextBlock FontSize="{StaticResource TangoTitleFontSize}" Foreground="{StaticResource TangoGrayTextBrush}" VerticalAlignment="Center" Margin="10 0 0 0" Visibility="{Binding Job.Designation,Converter={StaticResource EnumToVisibilityConverter},ConverterParameter='SampleDye'}">(Sample)</TextBlock>
                <TextBlock FontSize="{StaticResource TangoTitleFontSize}" Foreground="{StaticResource TangoGrayTextBrush}" VerticalAlignment="Center" Margin="10 0 0 0" Visibility="{Binding Job.Designation,Converter={StaticResource EnumToVisibilityConverter},ConverterParameter='FineTuning'}">(Fine Tuning)</TextBlock>
            </StackPanel>

            <Grid Margin="0 80 0 0">

                <touch:TouchRingProgress Width="364" Height="364" RingThickness="10">
                    <touch:TouchRingProgress.Style>
                        <Style TargetType="touch:TouchRingProgress">
                            <Setter Property="Visibility" Value="Visible"></Setter>
                            <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter>
                            <Setter Property="Maximum" Value="{Binding RunningJobStatus.TotalProgressMinusSettingUp}"></Setter>
                            <Setter Property="Value" Value="{Binding RunningJobStatus.ProgressMinusSettingUp}"></Setter>
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding RunningJobStatus.IsSettingUp}" Value="False">
                                    <Setter Property="Visibility" Value="Visible"></Setter>
                                </DataTrigger>
                                <DataTrigger Binding="{Binding RunningJobStatus.IsCompleted}" Value="True">
                                    <Setter Property="Maximum" Value="100"></Setter>
                                    <Setter Property="Value" Value="99.9999999"></Setter>
                                    <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>

                <touch:TouchBusyIndicator Width="360" Height="360" StrokeThickness="10" Maximum="100" Visibility="{Binding RunningJobStatus.IsSettingUp,Converter={StaticResource BooleanToVisibilityConverter}}">
                    <touch:TouchBusyIndicator.Style>
                        <Style TargetType="touch:TouchBusyIndicator">
                            <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter>
                            <Setter Property="Value" Value="0"></Setter>
                            <Setter Property="IsIndeterminate" Value="False"></Setter>
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding RunningJobStatus.IsSettingUp}" Value="True">
                                    <Setter Property="Visibility" Value="Visible"></Setter>
                                    <Setter Property="Value" Value="0"></Setter>
                                    <Setter Property="IsIndeterminate" Value="True"></Setter>
                                </DataTrigger>
                                <DataTrigger Binding="{Binding RunningJobStatus.IsCompleted}" Value="True">
                                    <Setter Property="IsIndeterminate" Value="False"></Setter>
                                </DataTrigger>
                                <DataTrigger Binding="{Binding RunningJobStatus.IsCanceled}" Value="True">
                                    <Setter Property="Value" Value="99.9999999"></Setter>
                                    <Setter Property="IsIndeterminate" Value="False"></Setter>
                                    <Setter Property="Foreground" Value="{StaticResource TangoWarningBrush}"></Setter>
                                </DataTrigger>
                                <DataTrigger Binding="{Binding RunningJobStatus.IsFailed}" Value="True">
                                    <Setter Property="Value" Value="99.9999999"></Setter>
                                    <Setter Property="IsIndeterminate" Value="False"></Setter>
                                    <Setter Property="Foreground" Value="{StaticResource TangoErrorBrush}"></Setter>
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </touch:TouchBusyIndicator.Style>
                </touch:TouchBusyIndicator>

                <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">

                    <StackPanel Visibility="{Binding RunningJobStatus.IsSettingUp,Converter={StaticResource BooleanToVisibilityInverseConverter}}">
                        <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 FontWeight="Light" FontSize="{StaticResource TangoLargeFontSize}" Margin="0 10 0 0" HorizontalAlignment="Center">
                                            <Run Text="{Binding RunningJobStatus.ProgressMinusSettingUp,StringFormat=0,FallbackValue=0}"></Run><Run Text="/" /><Run Text="{Binding RunningJobStatus.TotalProgressMinusSettingUp,StringFormat=0,FallbackValue=0}"/>
                                            <Run FontSize="16">m</Run>
                        </TextBlock>
                    </StackPanel>

                    <StackPanel Height="90" Visibility="{Binding RunningJobStatus.IsSettingUp,Converter={StaticResource BooleanToVisibilityConverter}}">
                        <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
                            <Image Source="../Images/JobProgressView/drop.png" Stretch="None" />
                            <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">Getting Ready...</TextBlock>
                        </StackPanel>
                    </StackPanel>

                    <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 FontWeight="Light" FontSize="{StaticResource TangoLargeFontSize}" 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 MaxWidth="600">
                    <Canvas Height="80" Margin="0">
                        <StackPanel>
                            <StackPanel.Style>
                                <Style TargetType="StackPanel">
                                    <Setter Property="Canvas.Left">
                                        <Setter.Value>
                                            <MultiBinding Converter="{StaticResource JobProgressToPositionConverter}">
                                                <Binding Path="RunningJobStatus.CurrentUnitProgress" />
                                                <Binding Path="RunningJobStatus.CurrentUnitTotalProgress" />
                                                <Binding RelativeSource="{RelativeSource AncestorType=Canvas}" Path="ActualWidth" />
                                            </MultiBinding>
                                        </Setter.Value>
                                    </Setter>
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding RunningJobStatus.IsSettingUp}" Value="True">
                                            <Setter Property="Canvas.Left" Value="0"></Setter>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </StackPanel.Style>
                            <StackPanel Margin="-20 20 0 0">
                                <StackPanel>
                                    <Canvas HorizontalAlignment="Center">
                                        <TextBlock Margin="0 -25 0 0" Canvas.Left="{Binding RelativeSource={RelativeSource Mode=Self},Path=ActualWidth,Converter={StaticResource MathOperatorConverter},ConverterParameter='*-0.5'}" HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">
                                            <TextBlock.Style>
                                                <Style TargetType="TextBlock">
                                                    <Setter Property="Text" Value="Now Dyeing"></Setter>
                                                    <Style.Triggers>
                                                        <DataTrigger Binding="{Binding RunningJobStatus.IsSettingUp}" Value="True">
                                                            <Setter Property="Text" Value="Getting Ready"></Setter>
                                                        </DataTrigger>
                                                        <DataTrigger Binding="{Binding RunningJobStatus.IsCanceled}" Value="True">
                                                            <Setter Property="Text" Value="Job Canceled"></Setter>
                                                        </DataTrigger>
                                                        <DataTrigger Binding="{Binding RunningJobStatus.IsFailed}" Value="True">
                                                            <Setter Property="Text" Value="Job Failed"></Setter>
                                                        </DataTrigger>
                                                        <DataTrigger Binding="{Binding RunningJobStatus.IsCompleted}" Value="True">
                                                            <Setter Property="Text" Value="Job Completed"></Setter>
                                                        </DataTrigger>
                                                    </Style.Triggers>
                                                </Style>
                                            </TextBlock.Style>
                                        </TextBlock>
                                    </Canvas>
                                    <touch:TouchIcon Margin="0 8 0 0" HorizontalAlignment="Center" Width="40" Height="40">
                                        <touch:TouchIcon.Style>
                                            <Style TargetType="touch:TouchIcon" BasedOn="{StaticResource {x:Type touch:TouchIcon}}">
                                                <Setter Property="Angle" Value="180"></Setter>
                                                <Setter Property="Icon" Value="Water"></Setter>
                                                <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter>
                                                <Style.Triggers>
                                                    <DataTrigger Binding="{Binding RunningJobStatus.IsCanceled}" Value="True">
                                                        <Setter Property="Angle" Value="0"></Setter>
                                                        <Setter Property="Icon" Value="Alert"></Setter>
                                                        <Setter Property="Foreground" Value="{StaticResource TangoWarningBrush}"></Setter>
                                                    </DataTrigger>
                                                    <DataTrigger Binding="{Binding RunningJobStatus.IsFailed}" Value="True">
                                                        <Setter Property="Angle" Value="0"></Setter>
                                                        <Setter Property="Icon" Value="AlertOctagon"></Setter>
                                                        <Setter Property="Foreground" Value="{StaticResource TangoErrorBrush}"></Setter>
                                                    </DataTrigger>
                                                    <DataTrigger Binding="{Binding RunningJobStatus.IsCompleted}" Value="True">
                                                        <Setter Property="Angle" Value="0"></Setter>
                                                        <Setter Property="Icon" Value="Check"></Setter>
                                                        <Setter Property="Foreground" Value="{StaticResource TangoSuccessBrush}"></Setter>
                                                    </DataTrigger>
                                                </Style.Triggers>
                                            </Style>
                                        </touch:TouchIcon.Style>
                                    </touch:TouchIcon>
                                </StackPanel>
                            </StackPanel>
                        </StackPanel>
                    </Canvas>

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

                        <TextBlock Margin="0 0 -50 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" Command="{Binding GoToJobCommand}" Style="{StaticResource TangoLinkButton}" Height="60" FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding RunningJobStatus.IsCompleted,Converter={StaticResource BooleanToVisibilityConverter}}">
                Go to job
            </touch:TouchButton>
        </StackPanel>

        <touch:TouchButton Visibility="{Binding ApplicationManager.IsInTechnicianMode,Converter={StaticResource BooleanToVisibilityConverter}}" VerticalAlignment="Bottom" Margin="0 100 0 0" Command="{Binding DisplayJobOutlineCommand}" Style="{StaticResource TangoLinkButton}" Height="60" FontSize="{StaticResource TangoTitleFontSize}">
            Display Job Outline
        </touch:TouchButton>

        <Grid Visibility="{Binding IsDisplayJobOutline,Converter={StaticResource BooleanToVisibilityConverter}}" Background="{StaticResource TangoPrimaryBackgroundBrush}" Opacity="0.8"/>

        <Grid Margin="0 -10 0 0" Visibility="{Binding IsDisplayJobOutline,Converter={StaticResource BooleanToVisibilityConverter}}">
            <Grid>
                <touch:TouchScrollViewer BorderThickness="0" Padding="10" Margin="0 0 0 100">
                    <global:JobOutlineControl BorderThickness="0" Margin="20" DataContext="{Binding JobOutlineTicket}" HorizontalAlignment="Left" />
                </touch:TouchScrollViewer>
            </Grid>

            <touch:TouchButton Background="{StaticResource TangoPrimaryBackgroundBrush}" VerticalAlignment="Bottom" Margin="0 100 0 0" Command="{Binding HideJobOutlineCommand}" Style="{StaticResource TangoLinkButton}" Height="60" FontSize="{StaticResource TangoTitleFontSize}">
                Hide Job Outline
            </touch:TouchButton>
        </Grid>
    </Grid>
</UserControl>