aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainView.xaml
blob: c6b2aaa12a9d33cf0082ad1163723e1e9abd1426 (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
<UserControl x:Class="Tango.PPC.UI.Views.MainView"
             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:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI"
             xmlns:commonControls="clr-namespace:Tango.PPC.Common.Controls;assembly=Tango.PPC.Common"
			 xmlns:vm="clr-namespace:Tango.PPC.UI.ViewModels"
			 xmlns:global="clr-namespace:Tango.PPC.UI"
             xmlns:operations="clr-namespace:Tango.Integration.Operation;assembly=Tango.Integration"
             xmlns:local="clr-namespace:Tango.PPC.UI.Views"
             xmlns:notifications="clr-namespace:Tango.PPC.UI.Notifications"
             xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch"
             xmlns:components="clr-namespace:Tango.Touch.Components;assembly=Tango.Touch"
             xmlns:localConverters="clr-namespace:Tango.PPC.UI.Converters"
             mc:Ignorable="d" 
             d:DesignHeight="1280" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}">

    <UserControl.Resources>
        <localConverters:ItemBaseConverter x:Key="ItemBaseConverter" />
    </UserControl.Resources>

    <Grid>
        <touch:TouchPanel 
            HasMessageBox="{Binding NotificationProvider.HasMessageBox}" 
            CurrentMessageBox="{Binding NotificationProvider.CurrentMessageBox}" 
            HasDialog="{Binding NotificationProvider.HasDialog}"
            CurrentDialog="{Binding NotificationProvider.CurrentDialog}"
            IsBusy="{Binding NotificationProvider.IsInGlobalBusyState}"
            BusyMessage="{Binding NotificationProvider.GlobalBusyMessage}">
            <touch:TouchPanel.TaskBarElement>
                <Border DockPanel.Dock="Top" Background="Black" Padding="5">
                    <DockPanel>
                        <TextBlock VerticalAlignment="Center" DockPanel.Dock="Right" Text="{Binding CurrentDateTime,StringFormat='g'}" FontSize="16" Foreground="{StaticResource TangoPrimaryBackgroundBrush}"></TextBlock>
                        <touch:TouchIcon Width="20" Height="20" VerticalAlignment="Center">
                            <touch:TouchIcon.Style>
                                <Style TargetType="touch:TouchIcon" BasedOn="{StaticResource {x:Type touch:TouchIcon}}">
                                    <Setter Property="Icon" Value="WifiStrengthOff"></Setter>
                                    <Setter Property="Foreground" Value="{StaticResource TangoGrayBrush}"></Setter>
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding ConnectivityProvider.IsConnected}" Value="True">
                                            <Setter Property="Icon" Value="Wifi"></Setter>
                                            <Setter Property="Foreground" Value="{StaticResource TangoSuccessBrush}"></Setter>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </touch:TouchIcon.Style>
                        </touch:TouchIcon>

                        <touch:TouchIcon Margin="10 0 0 0" Width="18" Height="18" VerticalAlignment="Center" Foreground="{StaticResource TangoSuccessBrush}" Icon="AccessPointNetwork" Visibility="{Binding HotSpotProvider.IsEnabled,Converter={StaticResource BooleanToVisibilityConverter}}" />

                        <touch:TouchIcon Margin="10 0 0 0" Width="18" Height="18" VerticalAlignment="Center" Icon="Bridge" Visibility="{Binding ExternalBridgeService.Enabled,Converter={StaticResource BooleanToVisibilityConverter}}">
                            <touch:TouchIcon.Style>
                                <Style TargetType="touch:TouchIcon">
                                    <Setter Property="Foreground" Value="{StaticResource TangoGrayBrush}"></Setter>
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding ExternalBridgeService.HasSessions}" Value="True">
                                            <Setter Property="Foreground" Value="{StaticResource TangoSuccessBrush}"></Setter>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </touch:TouchIcon.Style>
                        </touch:TouchIcon>

                        <ItemsControl ItemsSource="{Binding NotificationProvider.TaskBarItems}">
                            <ItemsControl.ItemsPanel>
                                <ItemsPanelTemplate>
                                    <StackPanel Orientation="Horizontal" />
                                </ItemsPanelTemplate>
                            </ItemsControl.ItemsPanel>
                            <ItemsControl.ItemTemplate>
                                <DataTemplate>
                                    <ContentControl Width="20" Height="20" VerticalAlignment="Center" Margin="10 0 0 0" Content="{Binding Converter={StaticResource ItemBaseConverter}}"/>
                                </DataTemplate>
                            </ItemsControl.ItemTemplate>
                        </ItemsControl>

                        <Image Margin="10 0 0 0" Width="18" Height="18" VerticalAlignment="Center" RenderOptions.BitmapScalingMode="Fant">
                            <Image.Style>
                                <Style TargetType="Image">
                                    <Setter Property="Source" Value="/Images/GlobalStatus/machine-off.png"></Setter>
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding MachineProvider.MachineOperator.Status}" Value="{x:Static operations:MachineStatuses.Disconnected}">
                                            <Setter Property="Source" Value="/Images/GlobalStatus/machine-off.png"></Setter>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding MachineProvider.MachineOperator.Status}" Value="{x:Static operations:MachineStatuses.PowerUp}">
                                            <Setter Property="Source" Value="/Images/GlobalStatus/getting-ready.png"></Setter>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding MachineProvider.MachineOperator.Status}" Value="{x:Static operations:MachineStatuses.Standby}">
                                            <Setter Property="Source" Value="/Images/GlobalStatus/standby.png"></Setter>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding MachineProvider.MachineOperator.Status}" Value="{x:Static operations:MachineStatuses.ReadyToDye}">
                                            <Setter Property="Source" Value="/Images/GlobalStatus/ready-to-dye.png"></Setter>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding MachineProvider.MachineOperator.Status}" Value="{x:Static operations:MachineStatuses.GettingReady}">
                                            <Setter Property="Source" Value="/Images/GlobalStatus/getting-ready.png"></Setter>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding MachineProvider.MachineOperator.Status}" Value="{x:Static operations:MachineStatuses.Printing}">
                                            <Setter Property="Source" Value="/Images/GlobalStatus/dyeing.png"></Setter>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding MachineProvider.MachineOperator.Status}" Value="{x:Static operations:MachineStatuses.ShuttingDown}">
                                            <Setter Property="Source" Value="/Images/GlobalStatus/shutting-down.png"></Setter>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding MachineProvider.MachineOperator.Status}" Value="{x:Static operations:MachineStatuses.Error}">
                                            <Setter Property="Source" Value="/Images/GlobalStatus/error.png"></Setter>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding MachineProvider.MachineOperator.Status}" Value="{x:Static operations:MachineStatuses.Service}">
                                            <Setter Property="Source" Value="/Images/GlobalStatus/service.png"></Setter>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </Image.Style>
                        </Image>
                        <Grid></Grid>
                    </DockPanel>
                </Border>
            </touch:TouchPanel.TaskBarElement>

            <controls:NavigationControl TransitionAlwaysFades="True" KeepElementsAttached="False" UseDefferedRendering="True" TransitionType="Zoom" x:Name="NavigationControl" x:FieldModifier="public">
                <local:LoadingView></local:LoadingView>
                <local:LoadingErrorView></local:LoadingErrorView>
                <local:NoPermissionsView></local:NoPermissionsView>
                <local:LoginView></local:LoginView>
                <local:LayoutView></local:LayoutView>
                <local:ExternalBridgeView></local:ExternalBridgeView>
                <local:MachineSetupView></local:MachineSetupView>
                <local:MachineUpdateView></local:MachineUpdateView>
                <local:RestartingSystemView></local:RestartingSystemView>
                <local:EmergencyView></local:EmergencyView>
                <local:RestartingView></local:RestartingView>
            </controls:NavigationControl>
        </touch:TouchPanel>
    </Grid>
</UserControl>
</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> <Canvas Height="80" Margin="5 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="-50 0 0 0"> <ContentControl> <ContentControl.Style> <Style TargetType="ContentControl"> <Setter Property="Content"> <Setter.Value> <StackPanel> <TextBlock 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> </Style.Triggers> </Style> </TextBlock.Style> </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="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> </Grid> </UserControl>