blob: 1560b759d50a6d8d934827da7e24b7f2ee4e8b51 (
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
|
<UserControl x:Class="Tango.FSE.PPCConsole.Views.RemoteDesktopView"
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:vm="clr-namespace:Tango.FSE.PPCConsole.ViewModels"
xmlns:local="clr-namespace:Tango.FSE.PPCConsole.Views"
xmlns:auth="clr-namespace:Tango.FSE.Common.Authorization;assembly=Tango.FSE.Common"
xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common"
xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:win="clr-namespace:Tango.FSE.Common.WindowsManager;assembly=Tango.FSE.Common"
xmlns:localControls="clr-namespace:Tango.FSE.PPCConsole.Controls"
mc:Ignorable="d"
d:DesignHeight="720" d:DesignWidth="1280" d:DataContext="{d:DesignInstance Type=vm:RemoteDesktopViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.RemoteDesktopViewVM}" Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Focusable="False">
<Grid>
<DockPanel IsEnabled="{Binding IsFree}">
<Grid DockPanel.Dock="Right" IsEnabled="{Binding MachineProvider.IsPPCAvailable}">
<Grid.Style>
<Style TargetType="Grid">
<Setter Property="VerticalAlignment" Value="Stretch"></Setter>
<Setter Property="Width" Value="Auto"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding MachineProvider.MachineOperator.MachineType}" Value="Eureka">
<Setter Property="VerticalAlignment" Value="Top"></Setter>
<Setter Property="Width" Value="490"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
<Border>
<localControls:RemoteDesktopControl x:Name="remoteDesktopControl"
win:WindowsManagerHelper.LockAspectRatio="True"
win:WindowsManagerHelper.WindowTitle="{Binding MachineProvider.Machine.SerialNumber}"
win:WindowsManagerHelper.DisableMaximize="True"
win:WindowsManagerHelper.PreservePlaceHolder="True"
win:WindowsManagerHelper.DisableResolutionServiceInjection="True">
<localControls:RemoteDesktopControl.Style>
<Style TargetType="localControls:RemoteDesktopControl">
<Setter Property="win:WindowsManagerHelper.MinWidth" Value="400"/>
<Setter Property="win:WindowsManagerHelper.MinWidth" Value="640"/>
<Setter Property="win:WindowsManagerHelper.StartWidth" Value="400"/>
<Setter Property="win:WindowsManagerHelper.StartHeight" Value="640"/>
<Style.Triggers>
<DataTrigger Binding="{Binding MachineProvider.MachineOperator.MachineType}" Value="Eureka">
<Setter Property="win:WindowsManagerHelper.MinWidth" Value="640"/>
<Setter Property="win:WindowsManagerHelper.MinHeight" Value="440"/>
<Setter Property="win:WindowsManagerHelper.StartWidth" Value="640"/>
<Setter Property="win:WindowsManagerHelper.StartHeight" Value="440"/>
</DataTrigger>
</Style.Triggers>
</Style>
</localControls:RemoteDesktopControl.Style>
</localControls:RemoteDesktopControl>
</Border>
</Grid>
<Grid>
<DockPanel>
<DockPanel.Style>
<Style TargetType="DockPanel">
<Setter Property="Margin" Value="0 100 100 50"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding ResolutionService.IsLowResolution}" Value="True">
<Setter Property="Margin" Value="0 20 100 0"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</DockPanel.Style>
<StackPanel DockPanel.Dock="Top">
<DockPanel>
<TextBlock VerticalAlignment="Center" FontStyle="Italic" FontSize="{StaticResource FSE_ModuleHeaderFontSize}">REMOTE DESKTOP</TextBlock>
<Viewbox Stretch="Uniform" HorizontalAlignment="Right" Margin="0 0 100 0">
<Viewbox.Style>
<Style TargetType="Viewbox">
<Setter Property="Width" Value="100"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding ResolutionService.IsLowResolution}" Value="True">
<Setter Property="Width" Value="50"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Viewbox.Style>
<Grid Width="100" Height="100">
<Image Source="{StaticResource FSE_Machine_Full}" VerticalAlignment="Top" HorizontalAlignment="Right" RenderOptions.BitmapScalingMode="Fant" Width="90" Stretch="Uniform" />
<Image Source="../Images/desktop.png" Stretch="Uniform" Width="60" HorizontalAlignment="Left" VerticalAlignment="Bottom" />
</Grid>
</Viewbox>
</DockPanel>
<Rectangle StrokeThickness="1" Stroke="{StaticResource FSE_BorderBrush}" Height="1" StrokeDashArray="4" Margin="0 20 0 0" />
</StackPanel>
<Grid>
<DockPanel Margin="0 20 0 0">
<StackPanel DockPanel.Dock="Top">
<TextBlock TextWrapping="Wrap">
<Run>Remote desktop allows you to view and control the currently connected machine tablet PC screen.</Run>
<LineBreak/>
<Run>Press 'start' to start a remote desktop session.</Run>
</TextBlock>
</StackPanel>
<Grid DockPanel.Dock="Bottom">
<Grid HorizontalAlignment="Left">
<Grid.Style>
<Style TargetType="Grid">
<Setter Property="Margin" Value="0 0 0 0"></Setter>
<Setter Property="VerticalAlignment" Value="Bottom"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding ResolutionService.IsLowResolution}" Value="True">
<Setter Property="VerticalAlignment" Value="Top"></Setter>
<Setter Property="Margin" Value="0 -40 0 0"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
<StackPanel Orientation="Horizontal">
<material:PackIcon>
<material:PackIcon.Style>
<Style TargetType="material:PackIcon">
<Setter Property="Foreground" Value="{StaticResource FSE_PrimaryBackgroundLighterBrush}"></Setter>
<Setter Property="Kind" Value="Circle"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding RemoteDesktopProvider.InSession}" Value="True">
<Setter Property="Foreground" Value="{StaticResource FSE_SuccessBrush}"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding RemoteDesktopProvider.IsWebRtcActive}" Value="True">
<Setter Property="Kind" Value="LightningBoltCircle"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</material:PackIcon.Style>
</material:PackIcon>
<TextBlock Margin="10 0 0 0">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Text" Value="Remote desktop disabled. No active machine connection."></Setter>
<Setter Property="Foreground" Value="{StaticResource FSE_BorderBrush}"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding MachineProvider.IsConnected}" Value="False">
<Setter Property="Text" Value="Remote desktop disabled. No active machine connection."></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding MachineProvider.IsConnected}" Value="True">
<Setter Property="Text" Value="Remote desktop session is ready to start."></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding RemoteDesktopProvider.InSession}" Value="True">
<Setter Property="Text" Value="Remote desktop session is active."></Setter>
<Setter Property="Foreground" Value="{StaticResource FSE_PrimaryForegroundBrush}"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding RemoteDesktopProvider.IsWebRtcActive}" Value="True">
<Setter Property="Text" Value="Remote desktop session is active using a P2P communication channel."></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</StackPanel>
</Grid>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Height="50">
<controls:TextIconButton material:ButtonAssist.CornerRadius="25" Icon="Stop" Padding="0 12" Width="200" Command="{Binding StopCommand}" IsEnabled="{Binding RemoteDesktopProvider.InSession}" Grid.Column="1" Style="{StaticResource FSE_TextIconButton_Dark}">STOP</controls:TextIconButton>
<controls:TextIconButton material:ButtonAssist.CornerRadius="25" Icon="Play" Padding="0 12" Width="200" Command="{Binding StartCommand}" IsEnabled="{Binding RemoteDesktopProvider.CanStartSession}" Grid.Column="2" Margin="10 0 0 0" Height="Auto">START</controls:TextIconButton>
</StackPanel>
</Grid>
<Grid>
<StackPanel Margin="0 40 0 0">
<TextBlock FontStyle="Italic" Foreground="{StaticResource FSE_PrimaryAccentBrush}" FontSize="{StaticResource FSE_LargeFontSize}">Actions</TextBlock>
<UniformGrid Margin="0 10 0 0" HorizontalAlignment="Left">
<UniformGrid.Style>
<Style TargetType="UniformGrid">
<Setter Property="Rows" Value="3"></Setter>
<Setter Property="Columns" Value="1"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding ResolutionService.IsLowResolution}" Value="True">
<Setter Property="Columns" Value="2"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</UniformGrid.Style>
<Button auth:AuthorizationHelper.Mode="Collapsed" auth:AuthorizationHelper.Permission="FSE_RemoteDesktopControl" IsEnabled="{Binding RemoteDesktopProvider.InSession}" Width="250" Margin="5" Style="{StaticResource FSE_Button_Polygon}" Content="Hide PPC and Open Shell" Command="{Binding HideAndOpenShellCommand}" Visibility="{Binding BuildProvider.IsTwineRSM, Converter={StaticResource BooleanToVisibilityInverseConverter}}" />
<Button auth:AuthorizationHelper.Mode="Collapsed" auth:AuthorizationHelper.Permission="FSE_RemoteDesktopControl" IsEnabled="{Binding RemoteDesktopProvider.InSession}" Width="250" Margin="5" Style="{StaticResource FSE_Button_Polygon}" Content="Restart application" Command="{Binding RestartApplicationCommand}" />
<Button auth:AuthorizationHelper.Mode="Collapsed" auth:AuthorizationHelper.Permission="FSE_RemoteDesktopControl" IsEnabled="{Binding RemoteDesktopProvider.InSession}" Width="250" Margin="5" Style="{StaticResource FSE_Button_Polygon}" Content="Open Task Manager" Command="{Binding OpenTaskManagerCommand}" Visibility="{Binding BuildProvider.IsTwineRSM, Converter={StaticResource BooleanToVisibilityInverseConverter}}" />
<CheckBox Margin="5" HorizontalAlignment="Center" IsEnabled="{Binding RemoteDesktopProvider.InSession,Converter={StaticResource BooleanInverseConverter}}" IsChecked="{Binding RemoteDesktopProvider.EnableWebRtc}">Enable P2P communication channel</CheckBox>
</UniformGrid>
</StackPanel>
</Grid>
</DockPanel>
</Grid>
</DockPanel>
</Grid>
</DockPanel>
</Grid>
</UserControl>
|