diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2020-11-09 23:34:01 +0200 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2020-11-09 23:34:01 +0200 |
| commit | e7cbb2ad47498bb072ee293baaf7fc9e2999fbec (patch) | |
| tree | 073fe0b1fee57246dd639c2f21dc6b175e197a23 /Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs | |
| parent | f42acf4a2513bfb156f3323d2cd9dadf67809220 (diff) | |
| parent | 313970208cf06fe7925e41a9479e619fa1aca7f6 (diff) | |
| download | Tango-e7cbb2ad47498bb072ee293baaf7fc9e2999fbec.tar.gz Tango-e7cbb2ad47498bb072ee293baaf7fc9e2999fbec.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs')
6 files changed, 586 insertions, 217 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakView.xaml new file mode 100644 index 000000000..6c64520a4 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakView.xaml @@ -0,0 +1,225 @@ +<UserControl x:Class="Tango.PPC.UI.Dialogs.ThreadBreakView" + 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:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" + xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" + xmlns:commonControls="clr-namespace:Tango.PPC.Common.Controls;assembly=Tango.PPC.Common" + xmlns:local="clr-namespace:Tango.PPC.UI.Dialogs" + mc:Ignorable="d" + Background="{StaticResource TangoPrimaryBackgroundBrush}" d:DesignHeight="555" d:DesignWidth="560" Width="700" Height="1150" d:DataContext="{d:DesignInstance Type=local:ThreadBreakViewVM, IsDesignTimeCreatable=False}"> + <Grid> + <DockPanel> + <StackPanel DockPanel.Dock="Top" Margin="0 30 0 0"> + <Image HorizontalAlignment="Center" Source="/Images/thread_loading.png" Stretch="None"></Image> + <TextBlock HorizontalAlignment="Center" FontSize="{StaticResource TangoHeaderFontSize}" Margin="0 30 0 0">Thread Break Wizard</TextBlock> + </StackPanel> + + <StackPanel Margin="10 0 0 0" Orientation="Horizontal" DockPanel.Dock="Bottom"> + <touch:TouchButton Command="{Binding BackCommand}"> + <touch:TouchButton.Style> + <Style TargetType="touch:TouchButton" BasedOn="{StaticResource TangoFlatButton}"> + <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter> + <Style.Triggers> + <Trigger Property="IsEnabled" Value="False"> + <Setter Property="Foreground" Value="{StaticResource TangoGrayBrush}"></Setter> + </Trigger> + </Style.Triggers> + </Style> + </touch:TouchButton.Style> + <StackPanel> + <touch:TouchIcon Icon="ArrowLeft" Width="24" Height="24" /> + <TextBlock Margin="0 5 0 0" HorizontalAlignment="Center">Back</TextBlock> + </StackPanel> + </touch:TouchButton> + </StackPanel> + + <Grid Margin="0 20 0 0"> + <controls:NavigationControl Margin="0 5 0 0" SelectedObject="{Binding Stage}" TransitionType="Slide" TransitionAlwaysFades="False" TransitionDuration="00:00:0.1" SelectedIndex="0"> + + <!--Guiding Units--> + <Grid controls:NavigationControl.NavigationName="GuidingUnits" Background="{StaticResource TangoPrimaryBackgroundBrush}"> + <DockPanel> + <UniformGrid Margin="20" Columns="3" DockPanel.Dock="Bottom" Height="55"> + <touch:TouchButton Style="{StaticResource TangoHollowButton}" Padding="30 0" HorizontalAlignment="Left" Command="{Binding GuidingUnitsFoundCantFixCommand}">Found But Can't Fix</touch:TouchButton> + <touch:TouchButton Style="{StaticResource TangoHollowButton}" Padding="40 0" HorizontalAlignment="Right" Command="{Binding GuidingUnitsFoundAndFixedCommand}">Found and Fixed</touch:TouchButton> + <touch:TouchButton Style="{StaticResource TangoHollowButton}" Padding="50 0" HorizontalAlignment="Right" Command="{Binding GuidingUnitsCantFindItCommand}">Can't Find It</touch:TouchButton> + </UniformGrid> + <DockPanel> + <StackPanel DockPanel.Dock="Top"> + <TextBlock TextWrapping="Wrap" TextAlignment="Center" Margin="40 0" HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">Please check guiding units on both sides of the system and fix/tie the thread if possible.</TextBlock> + </StackPanel> + + <commonControls:ImageGalleryControl Duration="00:00:02"> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/GuidingUnits/1.jpg"></Image> + </commonControls:ImageGalleryControl> + </DockPanel> + </DockPanel> + </Grid> + + <!--Feeding Units--> + <Grid controls:NavigationControl.NavigationName="FeedingUnits" Background="{StaticResource TangoPrimaryBackgroundBrush}"> + <DockPanel> + <UniformGrid Margin="20" Columns="2" DockPanel.Dock="Bottom" Height="55"> + <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding FeedingUnitsFoundAndFixedCommand}">Found and Fixed</touch:TouchButton> + <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding FeedingUnitsCantFixCommand}">Can't Fix</touch:TouchButton> + </UniformGrid> + <TextBlock Foreground="{StaticResource TangoErrorBrush}" DockPanel.Dock="Bottom" TextWrapping="Wrap" TextAlignment="Center" Margin="50 20"> + if the thread is out of is route or tangle on one of the components you can go to the maintenance screen and open the component to solve the problem + </TextBlock> + <DockPanel> + <StackPanel DockPanel.Dock="Top"> + <TextBlock TextWrapping="Wrap" TextAlignment="Center" Margin="40 0" HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}"> + Open the covers and check the feeder and puller and fix/tie if possible. + </TextBlock> + </StackPanel> + + <Grid> + <Grid Visibility="{Binding IsArcHead,Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <commonControls:ImageGalleryControl Duration="00:00:02"> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/FeedingUnits/1.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/FeedingUnits/2.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/FeedingUnits/3.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/FeedingUnits/4.jpg"></Image> + </commonControls:ImageGalleryControl> + </Grid> + + <Grid Visibility="{Binding IsArcHead,Converter={StaticResource BooleanToVisibilityConverter}}"> + <commonControls:ImageGalleryControl Duration="00:00:02"> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/FeedingUnits/arc/1.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/FeedingUnits/arc/2.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/FeedingUnits/arc/3.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/FeedingUnits/arc/4.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/FeedingUnits/arc/5.jpg"></Image> + </commonControls:ImageGalleryControl> + </Grid> + </Grid> + </DockPanel> + </DockPanel> + </Grid> + + <!--The Dryer--> + <Grid controls:NavigationControl.NavigationName="TheDryer" Background="{StaticResource TangoPrimaryBackgroundBrush}"> + <DockPanel> + <UniformGrid Margin="20" Columns="2" DockPanel.Dock="Bottom" Height="55"> + <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding TheDryerRemovedSuccessfullyCommand}">Removed Successfully</touch:TouchButton> + <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding TheDryerCantRemoveCommand}">Can't Remove</touch:TouchButton> + </UniformGrid> + <StackPanel DockPanel.Dock="Bottom" TextElement.Foreground="{StaticResource TangoErrorBrush}" Margin="50 20"> + <DockPanel HorizontalAlignment="Center"> + <touch:TouchIcon Icon="Alert" Foreground="{StaticResource TangoErrorBrush}" /> + <TextBlock Margin="5 0 0 0" VerticalAlignment="Center">HOT SURFACE!</TextBlock> + </DockPanel> + <TextBlock Margin="0 5 0 0" Foreground="{StaticResource TangoErrorBrush}" TextWrapping="Wrap" TextAlignment="Center"> + Recommended to cool down and/or to wear safety gloves + </TextBlock> + </StackPanel> + <DockPanel> + <StackPanel DockPanel.Dock="Top"> + <TextBlock TextWrapping="Wrap" TextAlignment="Center" Margin="40 0" HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}"> + Open the dryer, cut the thread and remove any residue. + </TextBlock> + </StackPanel> + + <commonControls:ImageGalleryControl Duration="00:00:02"> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/TheDryer/1.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/TheDryer/2.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/TheDryer/3.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/TheDryer/4.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/TheDryer/5.jpg"></Image> + </commonControls:ImageGalleryControl> + </DockPanel> + </DockPanel> + </Grid> + + <!--Dryer Close--> + <Grid controls:NavigationControl.NavigationName="DryerClose" Background="{StaticResource TangoPrimaryBackgroundBrush}"> + <DockPanel> + <UniformGrid Margin="20" Columns="1" DockPanel.Dock="Bottom" Height="55"> + <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="300" HorizontalAlignment="Center" Command="{Binding OpenThreadLoadingWizardCommand}">Open The Thread Loading Wizard</touch:TouchButton> + </UniformGrid> + <TextBlock DockPanel.Dock="Bottom" TextWrapping="Wrap" TextAlignment="Center" Margin="50 20"> + You will be able to open the thread loading wizard once the dryer door is closed + </TextBlock> + <DockPanel> + <StackPanel DockPanel.Dock="Top"> + <TextBlock TextWrapping="Wrap" TextAlignment="Center" Margin="40 0" HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}"> + Close the dryer door + </TextBlock> + </StackPanel> + + <commonControls:ImageGalleryControl Duration="00:00:02"> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/DryerClose/1.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/DryerClose/2.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/DryerClose/3.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/DryerClose/4.jpg"></Image> + </commonControls:ImageGalleryControl> + </DockPanel> + </DockPanel> + </Grid> + + <!--Contact Support--> + <Grid controls:NavigationControl.NavigationName="ContactSupport" Background="{StaticResource TangoPrimaryBackgroundBrush}"> + <DockPanel> + <UniformGrid Margin="20" Columns="1" DockPanel.Dock="Bottom" Height="55"> + <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Center" Command="{Binding CloseCommand}">Close</touch:TouchButton> + </UniformGrid> + <DockPanel> + <StackPanel DockPanel.Dock="Top"> + <TextBlock TextWrapping="Wrap" TextAlignment="Center" Margin="40 0" HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}"> + Please Contact Twine Customer Care + </TextBlock> + </StackPanel> + + <Grid> + <TextBlock HorizontalAlignment="Center" Margin="0 50 0 0" FontSize="40" Foreground="{StaticResource TangoPrimaryAccentBrush}">support@twine-s.com</TextBlock> + </Grid> + </DockPanel> + </DockPanel> + </Grid> + + <!--Jogging--> + <Grid controls:NavigationControl.NavigationName="Jogging" Background="{StaticResource TangoPrimaryBackgroundBrush}"> + <DockPanel> + <DockPanel> + <StackPanel DockPanel.Dock="Top"> + <TextBlock TextWrapping="Wrap" TextAlignment="Center" Margin="40 0" HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}"> + Verifying thread movement + </TextBlock> + </StackPanel> + + <StackPanel Margin="0 100 0 0"> + <TextBlock HorizontalAlignment="Center" FontWeight="SemiBold">working...</TextBlock> + <touch:TouchBusyIndicator Foreground="{StaticResource TangoGrayBrush}" Width="130" Height="130" Margin="0 40 0 0" StrokeThickness="8" IsIndeterminate="{Binding IsVisible}" /> + </StackPanel> + </DockPanel> + </DockPanel> + </Grid> + + <!--Fixed--> + <Grid controls:NavigationControl.NavigationName="Fixed" Background="{StaticResource TangoPrimaryBackgroundBrush}"> + <DockPanel> + <UniformGrid Margin="20" Columns="1" DockPanel.Dock="Bottom" Height="55"> + <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Center" Command="{Binding CloseCommand}">Close</touch:TouchButton> + </UniformGrid> + <DockPanel> + <StackPanel DockPanel.Dock="Top"> + <TextBlock TextWrapping="Wrap" TextAlignment="Center" Margin="40 0" HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}"> + Issue Resolved + </TextBlock> + </StackPanel> + + <Grid> + <touch:TouchIcon Icon="CheckCircleOutline" Foreground="{StaticResource TangoSuccessBrush}" HorizontalAlignment="Center" VerticalAlignment="Top" Width="100" Margin="0 100 0 0" /> + </Grid> + </DockPanel> + </DockPanel> + </Grid> + </controls:NavigationControl> + </Grid> + </DockPanel> + + <touch:TouchIconButton Command="{Binding CloseCommand}" HorizontalAlignment="Right" VerticalAlignment="Top" Icon="Close" Width="45" Height="45" Padding="14" Foreground="{StaticResource TangoDarkForegroundBrush}" /> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakView.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakView.xaml.cs new file mode 100644 index 000000000..c105a9a15 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.PPC.UI.Dialogs +{ + /// <summary> + /// Interaction logic for ThreadBreakWizard.xaml + /// </summary> + public partial class ThreadBreakView : UserControl + { + public ThreadBreakView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakViewVM.cs new file mode 100644 index 000000000..131f976c1 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakViewVM.cs @@ -0,0 +1,243 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core.Commands; +using Tango.Core.DI; +using Tango.Logging; +using Tango.PPC.Common.Connection; +using Tango.PPC.Common.Notifications; +using Tango.SharedUI; + +namespace Tango.PPC.UI.Dialogs +{ + public class ThreadBreakViewVM : DialogViewVM + { + public enum ThreadBreakWizardResult + { + None, + StartThreadLoading + } + + public enum WizardStage + { + Welcome, + GuidingUnits, + FeedingUnits, + Jogging, + TheDryer, + DryerClose, + Fixed, + ContactSupport, + } + + [TangoInject] + private IMachineProvider MachineProvider { get; set; } + + [TangoInject] + private INotificationProvider NotificationProvider { get; set; } + + public ThreadBreakWizardResult Result { get; set; } + + private WizardStage _stage; + public WizardStage Stage + { + get { return _stage; } + set { _stage = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } + } + + private bool _isArcHead; + public bool IsArcHead + { + get { return _isArcHead; } + set { _isArcHead = value; RaisePropertyChangedAuto(); } + } + + public RelayCommand BackCommand { get; set; } + + //Guiding Units + public RelayCommand GuidingUnitsFoundCantFixCommand { get; set; } + public RelayCommand GuidingUnitsCantFindItCommand { get; set; } + public RelayCommand GuidingUnitsFoundAndFixedCommand { get; set; } + + //Feeding Units + public RelayCommand FeedingUnitsCantFixCommand { get; set; } + public RelayCommand FeedingUnitsFoundAndFixedCommand { get; set; } + + //The Dryer + public RelayCommand TheDryerCantRemoveCommand { get; set; } + public RelayCommand TheDryerRemovedSuccessfullyCommand { get; set; } + + //Dryer Close + public RelayCommand OpenThreadLoadingWizardCommand { get; set; } + + public ThreadBreakViewVM() + { + CanClose = true; + TangoIOC.Default.Inject(this); + + MachineProvider.MachineOperator.MachineEventsStateProvider.EventsChanged += MachineEventsStateProvider_EventsChanged; + MachineProvider.MachineDisconnected += MachineProvider_MachineDisconnected; + + IsArcHead = MachineProvider.Machine.MachineHeadType == BL.Enumerations.HeadTypes.Arc; + + BackCommand = new RelayCommand(GoBack, CanGoBack); + + //Guiding Units Commands + GuidingUnitsFoundCantFixCommand = new RelayCommand(GuidingUnitsFoundCantFix); + GuidingUnitsCantFindItCommand = new RelayCommand(GuidingUnitsCantFindIt); + GuidingUnitsFoundAndFixedCommand = new RelayCommand(GuidingUnitsFoundAndFixed); + + //Feeding Units Commands + FeedingUnitsCantFixCommand = new RelayCommand(FeedingUnitsCantFix); + FeedingUnitsFoundAndFixedCommand = new RelayCommand(FeedingUnitsFoundAndFixed); + + //The Dryer Commands + TheDryerRemovedSuccessfullyCommand = new RelayCommand(TheDryerRemovedSuccessfully); + TheDryerCantRemoveCommand = new RelayCommand(TheDryerCantRemove); + + OpenThreadLoadingWizardCommand = new RelayCommand(OpenThreadLoadingWizard, () => !MachineProvider.MachineOperator.MachineEventsStateProvider.Events.Any(x => x.Type == BL.Enumerations.EventTypes.DRYER_DOOR_OPEN)); + } + + private void MachineProvider_MachineDisconnected(object sender, EventArgs e) + { + InvokeUI(() => + { + Cancel(); + }); + } + + private void MachineEventsStateProvider_EventsChanged(object sender, IEnumerable<BL.Entities.MachinesEvent> e) + { + InvalidateRelayCommands(); + } + + #region Back + + private bool CanGoBack() + { + return Stage != WizardStage.GuidingUnits && + Stage != WizardStage.Jogging && + Stage != WizardStage.Fixed; + } + + private void GoBack() + { + switch (Stage) + { + case WizardStage.FeedingUnits: + Stage = WizardStage.GuidingUnits; + break; + case WizardStage.TheDryer: + Stage = WizardStage.GuidingUnits; + break; + case WizardStage.ContactSupport: + Stage = WizardStage.TheDryer; + break; + case WizardStage.DryerClose: + Stage = WizardStage.TheDryer; + break; + } + } + + #endregion + + #region Guiding Units Commands + + private async void GuidingUnitsFoundAndFixed() + { + Stage = WizardStage.Jogging; + + try + { + await MachineProvider.MachineOperator.AttemptThreadJogging(); + Stage = WizardStage.Fixed; + } + catch (Exception ex) + { + LogManager.Log(ex, LogCategory.Warning, "Error occurred while attempting to perform thread jogging."); + Stage = WizardStage.FeedingUnits; + } + } + + private void GuidingUnitsCantFindIt() + { + Stage = WizardStage.FeedingUnits; + } + + private void GuidingUnitsFoundCantFix() + { + Stage = WizardStage.TheDryer; + } + + #endregion + + #region Feeding Units Commands + + private void FeedingUnitsCantFix() + { + Stage = WizardStage.TheDryer; + } + + private async void FeedingUnitsFoundAndFixed() + { + Stage = WizardStage.Jogging; + + try + { + await MachineProvider.MachineOperator.AttemptThreadJogging(); + Stage = WizardStage.Fixed; + } + catch (Exception ex) + { + LogManager.Log(ex, LogCategory.Warning, "Error occurred while attempting to perform thread jogging."); + Stage = WizardStage.TheDryer; + } + } + + #endregion + + #region The Dryer Commands + + private void TheDryerCantRemove() + { + Stage = WizardStage.ContactSupport; + } + + private void TheDryerRemovedSuccessfully() + { + Stage = WizardStage.DryerClose; + } + + #endregion + + #region Dryer Close Commands + + private void OpenThreadLoadingWizard() + { + Result = ThreadBreakWizardResult.StartThreadLoading; + Accept(); + } + + #endregion + + protected override void Accept() + { + base.Accept(); + CleanUp(); + } + + protected override void Cancel() + { + base.Cancel(); + CleanUp(); + } + + private void CleanUp() + { + MachineProvider.MachineOperator.MachineEventsStateProvider.EventsChanged -= MachineEventsStateProvider_EventsChanged; + MachineProvider.MachineDisconnected -= MachineProvider_MachineDisconnected; + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingView.xaml index a88d7a598..3d37c81bd 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingView.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingView.xaml @@ -4,6 +4,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" + xmlns:commonControls="clr-namespace:Tango.PPC.Common.Controls;assembly=Tango.PPC.Common" xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" xmlns:local="clr-namespace:Tango.PPC.UI.Dialogs" mc:Ignorable="d" @@ -17,123 +18,153 @@ <Grid Margin="0 20 0 0"> <controls:NavigationControl Margin="0 5 0 0" SelectedObject="{Binding Stage}" TransitionType="Slide" TransitionAlwaysFades="False" TransitionDuration="00:00:0.1" SelectedIndex="0"> + <!--Welcome--> <Grid controls:NavigationControl.NavigationName="Welcome" Background="{StaticResource TangoPrimaryBackgroundBrush}"> <DockPanel> - <UniformGrid Margin="20" Columns="2" DockPanel.Dock="Bottom" Height="55"> - <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding AbortCommand}">CLOSE</touch:TouchButton> - <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding ContinueCommand}">CONTINUE</touch:TouchButton> + <UniformGrid Margin="50" Columns="1" DockPanel.Dock="Bottom" Height="55"> + <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Center" Command="{Binding ContinueCommand}">Continue</touch:TouchButton> </UniformGrid> <DockPanel Margin="0 50 0 0" > <StackPanel DockPanel.Dock="Top"> <TextBlock HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">Welcome to the automatic thread loading wizard.</TextBlock> - <DockPanel HorizontalAlignment="Center" Margin="0 20 0 0"> - <touch:TouchIcon Icon="Alert" VerticalAlignment="Center" Foreground="{StaticResource TangoWarningBrush}" /> - <TextBlock TextWrapping="Wrap" TextAlignment="Center" VerticalAlignment="Center" Margin="10 0 0 0">Please ensure there are no thread residue in the system and press 'continue'.</TextBlock> - </DockPanel> + <StackPanel HorizontalAlignment="Center" Margin="0 20 0 0"> + <touch:TouchIcon Icon="Alert" VerticalAlignment="Center" Foreground="{StaticResource TangoErrorBrush}" /> + <TextBlock TextWrapping="Wrap" TextAlignment="Center" VerticalAlignment="Center" Margin="0 10 0 0" Width="400"> + <Run>Please ensure there are no thread residue in the system and press</Run> + <Run FontWeight="SemiBold">continue</Run> + </TextBlock> + </StackPanel> </StackPanel> - <Image Stretch="Uniform" Source="/Images/thread_loading_preview.png" VerticalAlignment="Bottom"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/NewThread/TS1800_CloseUp_Feeder_P.jpg" VerticalAlignment="Center" Margin="50"></Image> </DockPanel> </DockPanel> </Grid> + + <!--Preparing--> <Grid controls:NavigationControl.NavigationName="Preparing" Background="{StaticResource TangoPrimaryBackgroundBrush}"> <DockPanel> - <UniformGrid Margin="20" Columns="2" DockPanel.Dock="Bottom" Height="55"> - <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding AbortCommand}">CLOSE</touch:TouchButton> - <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding ContinueCommand}">CONTINUE</touch:TouchButton> + <UniformGrid Margin="50" Columns="1" DockPanel.Dock="Bottom" Height="55"> + <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Center" Command="{Binding ContinueCommand}">Continue</touch:TouchButton> </UniformGrid> <DockPanel Margin="0 20 0 0"> - <StackPanel VerticalAlignment="Center" DockPanel.Dock="Top"> + <StackPanel VerticalAlignment="Top" DockPanel.Dock="Top" Margin="0 40 0 0"> <TextBlock Margin="0 50 0 0" FontSize="{StaticResource TangoTitleFontSize}" HorizontalAlignment="Center" TextWrapping="Wrap" TextAlignment="Center"> The system is now preparing... </TextBlock> - <touch:TouchProgressBar Margin="50 10 50 0" Height="10" IsIndeterminate="{Binding IsVisible}" /> + <touch:TouchBusyIndicator Width="140" Height="140" StrokeThickness="8" IsIndeterminate="{Binding IsVisible}" Margin="0 50 0 0" Foreground="{StaticResource TangoGrayBrush}" /> </StackPanel> - <Image VerticalAlignment="Bottom" Stretch="Uniform" Source="/Images/thread_loading_preview.png"></Image> </DockPanel> </DockPanel> </Grid> + + <!--Ready For Loading--> <Grid controls:NavigationControl.NavigationName="ReadyForLoading" Background="{StaticResource TangoPrimaryBackgroundBrush}"> <DockPanel> - <UniformGrid Margin="20" Columns="2" DockPanel.Dock="Bottom" Height="55"> - <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding AbortCommand}">CLOSE</touch:TouchButton> - <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding ContinueCommand}">CONTINUE</touch:TouchButton> + <UniformGrid Margin="50" Columns="1" DockPanel.Dock="Bottom" Height="55"> + <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Center" Command="{Binding ContinueCommand}">Continue</touch:TouchButton> </UniformGrid> <DockPanel Margin="0 50 0 0"> <StackPanel DockPanel.Dock="Top"> <TextBlock HorizontalAlignment="Center" TextWrapping="Wrap" TextAlignment="Center"> - Please select the thread type you are going to load and press 'continue'. + <Run>Please select the thread type you are going to load and press</Run> + <Run FontWeight="SemiBold">continue</Run> </TextBlock> <touch:TouchComboBox Margin="0 40 0 0" Width="500" ItemsSource="{Binding Rmls}" SelectedItem="{Binding SelectedRml}" DisplayMemberPath="Name" Title="Select thread type"></touch:TouchComboBox> </StackPanel> - <touch:TouchGifAnimation Margin="10" Source="/Images/thread_loading.gif" VerticalAlignment="Bottom" Stretch="Uniform" EnableAnimation="{Binding IsVisible}" /> + + <Grid> + <Grid Visibility="{Binding IsArcHead,Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <touch:TouchGifAnimation Margin="50" Source="/Images/thread_loading.gif" VerticalAlignment="Center" Stretch="Uniform" EnableAnimation="{Binding IsVisible}" /> + </Grid> + + <Grid> + <commonControls:ImageGalleryControl Duration="00:00:02"> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/NewThread/ReadyForLoading/arc/1.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/NewThread/ReadyForLoading/arc/2.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/NewThread/ReadyForLoading/arc/3.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/NewThread/ReadyForLoading/arc/4.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/NewThread/ReadyForLoading/arc/5.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/NewThread/ReadyForLoading/arc/6.jpg"></Image> + <Image Stretch="Uniform" Source="/Images/ThreadLoading/NewThread/ReadyForLoading/arc/7.jpg"></Image> + </commonControls:ImageGalleryControl> + </Grid> + </Grid> </DockPanel> </DockPanel> </Grid> + + <!--Finalizing--> <Grid controls:NavigationControl.NavigationName="Finalizing" Background="{StaticResource TangoPrimaryBackgroundBrush}"> <DockPanel> - <UniformGrid Margin="20" Columns="2" DockPanel.Dock="Bottom" Height="55"> - <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding AbortCommand}">CLOSE</touch:TouchButton> - <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding ContinueCommand}">CONTINUE</touch:TouchButton> + <UniformGrid Margin="50" Columns="1" DockPanel.Dock="Bottom" Height="55"> + <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Center" Command="{Binding ContinueCommand}">Continue</touch:TouchButton> </UniformGrid> <DockPanel Margin="0 20 0 0"> <StackPanel VerticalAlignment="Center" DockPanel.Dock="Top"> <TextBlock Margin="0 50 0 0" FontSize="{StaticResource TangoTitleFontSize}" HorizontalAlignment="Center" TextWrapping="Wrap" TextAlignment="Center"> The system is now loading the thread... </TextBlock> - <touch:TouchProgressBar Margin="50 10 50 0" Height="10" IsIndeterminate="{Binding IsVisible}" /> + <touch:TouchProgressBar Margin="50 40 50 0" Height="10" IsIndeterminate="{Binding IsVisible}" /> </StackPanel> - <Image VerticalAlignment="Bottom" Stretch="Uniform" Source="/Images/thread_loading_preview.png"></Image> + + <Image VerticalAlignment="Center" Margin="50" Stretch="Uniform" Source="/Images/ThreadLoading/NewThread/machine_full.jpg"></Image> </DockPanel> </DockPanel> </Grid> + + <!--Completed--> <Grid controls:NavigationControl.NavigationName="Completed" Background="{StaticResource TangoPrimaryBackgroundBrush}"> <DockPanel> - <UniformGrid Margin="20" DockPanel.Dock="Bottom" Height="55"> - <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding AbortCommand}">CLOSE</touch:TouchButton> + <UniformGrid Margin="50" DockPanel.Dock="Bottom" Height="55"> + <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Center" Command="{Binding AbortCommand}">Close</touch:TouchButton> </UniformGrid> <DockPanel Margin="0 50 0 0" > <StackPanel DockPanel.Dock="Top"> - <touch:TouchIcon Icon="Check" HorizontalAlignment="Center" Foreground="{StaticResource TangoSuccessBrush}" Width="100" Height="100" /> <TextBlock HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">Thread loading completed successfully!</TextBlock> + <touch:TouchIcon Margin="0 40 0 0" Icon="CheckCircleOutline" HorizontalAlignment="Center" Foreground="{StaticResource TangoSuccessBrush}" Width="100" Height="100" /> </StackPanel> - <Image Stretch="Uniform" Source="/Images/thread_loading_preview.png" VerticalAlignment="Bottom"></Image> </DockPanel> </DockPanel> </Grid> + + <!--Preparation Error--> <Grid controls:NavigationControl.NavigationName="PreparationError" Background="{StaticResource TangoPrimaryBackgroundBrush}"> <DockPanel> - <UniformGrid Margin="20" Columns="2" DockPanel.Dock="Bottom" Height="55"> - <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding AbortCommand}">CLOSE</touch:TouchButton> - <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding ContinueCommand}">RETRY</touch:TouchButton> + <UniformGrid Margin="50" Columns="2" DockPanel.Dock="Bottom" Height="55"> + <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding AbortCommand}">Close</touch:TouchButton> + <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding ContinueCommand}">Retry</touch:TouchButton> </UniformGrid> <DockPanel Margin="0 50 0 0" > <StackPanel DockPanel.Dock="Top"> - <touch:TouchIcon Icon="Alert" HorizontalAlignment="Center" Foreground="{StaticResource TangoErrorBrush}" Width="100" Height="100" /> <TextBlock HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">Something went wrong</TextBlock> - <TextBlock Margin="0 5 0 0" FontSize="{StaticResource TangoSmallFontSize}" TextAlignment="Center" TextWrapping="Wrap" HorizontalAlignment="Center" Foreground="{StaticResource TangoGrayTextBrush}" Text="{Binding Error}"></TextBlock> + <touch:TouchIcon Icon="AlertCircleOutline" Margin="0 40 0 0" HorizontalAlignment="Center" Foreground="{StaticResource TangoErrorBrush}" Width="100" Height="100" /> + <TextBlock Margin="0 10 0 0" FontSize="{StaticResource TangoSmallFontSize}" TextAlignment="Center" TextWrapping="Wrap" HorizontalAlignment="Center" Foreground="{StaticResource TangoGrayTextBrush}" Text="{Binding Error}"></TextBlock> </StackPanel> - <Image Stretch="Uniform" Source="/Images/thread_loading_preview.png" VerticalAlignment="Bottom"></Image> </DockPanel> </DockPanel> </Grid> + + <!--Finalization Error--> <Grid controls:NavigationControl.NavigationName="FinalizationError" Background="{StaticResource TangoPrimaryBackgroundBrush}"> <DockPanel> - <UniformGrid Margin="20" Columns="2" DockPanel.Dock="Bottom" Height="55"> - <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding AbortCommand}">CLOSE</touch:TouchButton> - <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding ContinueCommand}">RETRY</touch:TouchButton> + <UniformGrid Margin="50" Columns="2" DockPanel.Dock="Bottom" Height="55"> + <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding AbortCommand}">Close</touch:TouchButton> + <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding ContinueCommand}">Retry</touch:TouchButton> </UniformGrid> <DockPanel Margin="0 50 0 0" > <StackPanel DockPanel.Dock="Top"> - <touch:TouchIcon Icon="Alert" HorizontalAlignment="Center" Foreground="{StaticResource TangoErrorBrush}" Width="100" Height="100" /> <TextBlock HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">Something went wrong</TextBlock> - <TextBlock Margin="0 5 0 0" FontSize="{StaticResource TangoSmallFontSize}" TextAlignment="Center" TextWrapping="Wrap" HorizontalAlignment="Center" Foreground="{StaticResource TangoGrayTextBrush}" Text="{Binding Error}"></TextBlock> + <touch:TouchIcon Icon="AlertCircleOutline" Margin="0 40 0 0" HorizontalAlignment="Center" Foreground="{StaticResource TangoErrorBrush}" Width="100" Height="100" /> + <TextBlock Margin="0 10 0 0" FontSize="{StaticResource TangoSmallFontSize}" TextAlignment="Center" TextWrapping="Wrap" HorizontalAlignment="Center" Foreground="{StaticResource TangoGrayTextBrush}" Text="{Binding Error}"></TextBlock> </StackPanel> - <Image Stretch="Uniform" Source="/Images/thread_loading_preview.png" VerticalAlignment="Bottom"></Image> </DockPanel> </DockPanel> </Grid> </controls:NavigationControl> + </Grid> </DockPanel> + + <touch:TouchIconButton Command="{Binding AbortCommand}" HorizontalAlignment="Right" VerticalAlignment="Top" Icon="Close" Width="45" Height="45" Padding="14" Foreground="{StaticResource TangoDarkForegroundBrush}" /> </Grid> </UserControl> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM - Copy.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM - Copy.cs deleted file mode 100644 index 95fb77e48..000000000 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM - Copy.cs +++ /dev/null @@ -1,176 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Tango.BL.Entities; -using Tango.Core.Commands; -using Tango.Integration.Operation; -using Tango.PMR.ThreadLoading; -using Tango.PPC.Common.Connection; -using Tango.SharedUI; - -namespace Tango.PPC.UI.Dialogs -{ - public class ThreadLoadingViewVM : DialogViewVM - { - public class ThreadLoadingResult - { - public bool IsCompleted { get; set; } - public Exception FailedException { get; set; } - } - - private ThreadLoadingConfirmationRequiredEventArgs _confirmationArgs; - - public ThreadLoadingResult Result { get; set; } - - public IMachineProvider MachineProvider { get; set; } - - private StartThreadLoadingResponse _status; - public StartThreadLoadingResponse Status - { - get { return _status; } - set { _status = value; RaisePropertyChangedAuto(); } - } - - private bool _isFinalizing; - public bool IsFinalizing - { - get { return _isFinalizing; } - set { _isFinalizing = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } - } - - private bool _isPreparing; - public bool IsPreparing - { - get { return _isPreparing; } - set { _isPreparing = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } - } - - public List<Rml> Rmls { get; set; } - - private Rml _selectedRml; - public Rml SelectedRml - { - get { return _selectedRml; } - set { _selectedRml = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } - } - - public RelayCommand ContinueCommand { get; set; } - - public ThreadLoadingViewVM(IMachineProvider machineProvider) - { - CanClose = false; - IsPreparing = true; - ContinueCommand = new RelayCommand(ContinueThreadLoading, () => !IsFinalizing && SelectedRml != null); - MachineProvider = machineProvider; - MachineProvider.MachineOperator.ThreadLoadingStatusChanged += MachineOperator_ThreadLoadingStatusChanged; - MachineProvider.MachineOperator.ThreadLoadingCompleted += MachineOperator_ThreadLoadingCompleted; - MachineProvider.MachineOperator.ThreadLoadingFailed += MachineOperator_ThreadLoadingFailed; - MachineProvider.MachineOperator.ThreadLoadingConfirmationRequired += MachineOperator_ThreadLoadingConfirmationRequired; - } - - public ThreadLoadingViewVM(IMachineProvider machineProvider, ThreadLoadingConfirmationRequiredEventArgs confirmationArgs) : this(machineProvider) - { - _confirmationArgs = confirmationArgs; - IsPreparing = false; - } - - private void MachineOperator_ThreadLoadingConfirmationRequired(object sender, ThreadLoadingConfirmationRequiredEventArgs e) - { - _confirmationArgs = e; - IsPreparing = false; - } - - private async void ContinueThreadLoading() - { - IsFinalizing = true; - - try - { - await Task.Factory.StartNew(() => { _confirmationArgs.Confirm(SelectedRml.GetActiveProcessGroup().ProcessParametersTables.FirstOrDefault()); }); - } - catch (Exception ex) - { - Result = new ThreadLoadingResult() - { - FailedException = ex, - }; - - IsFinalizing = false; - - if (IsVisible) - { - InvokeUI(() => - { - Accept(); - }); - } - } - } - - private void MachineOperator_ThreadLoadingCompleted(object sender, StartThreadLoadingResponse e) - { - Result = new ThreadLoadingResult() - { - IsCompleted = true - }; - - if (IsVisible) - { - InvokeUI(() => - { - Accept(); - }); - } - } - - private void MachineOperator_ThreadLoadingFailed(object sender, StartThreadLoadingResponse e) - { - Result = new ThreadLoadingResult() - { - FailedException = new Exception(e.ErrorReason), - }; - - if (IsVisible) - { - InvokeUI(() => - { - Accept(); - }); - } - } - - private void MachineOperator_ThreadLoadingStatusChanged(object sender, StartThreadLoadingResponse e) - { - Status = e; - - if (Status.State == ThreadLoadingState.Finalizing) - { - IsFinalizing = true; - } - } - - protected override void Cancel() - { - IsFinalizing = false; - ClearEvents(); - base.Cancel(); - } - - protected override void Accept() - { - IsFinalizing = false; - ClearEvents(); - base.Accept(); - } - - private void ClearEvents() - { - MachineProvider.MachineOperator.ThreadLoadingStatusChanged -= MachineOperator_ThreadLoadingStatusChanged; - MachineProvider.MachineOperator.ThreadLoadingCompleted -= MachineOperator_ThreadLoadingCompleted; - MachineProvider.MachineOperator.ThreadLoadingFailed -= MachineOperator_ThreadLoadingFailed; - MachineProvider.MachineOperator.ThreadLoadingConfirmationRequired -= MachineOperator_ThreadLoadingConfirmationRequired; - } - } -} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM.cs index 75354caf2..bb503e718 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM.cs @@ -67,6 +67,13 @@ namespace Tango.PPC.UI.Dialogs set { _stage = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } } + private bool _isArcHead; + public bool IsArcHead + { + get { return _isArcHead; } + set { _isArcHead = value; RaisePropertyChangedAuto(); } + } + private String _error; public String Error { @@ -74,7 +81,6 @@ namespace Tango.PPC.UI.Dialogs set { _error = value; RaisePropertyChangedAuto(); } } - public RelayCommand ContinueCommand { get; set; } public RelayCommand AbortCommand { get; set; } @@ -86,6 +92,9 @@ namespace Tango.PPC.UI.Dialogs _settings = SettingsManager.Default.GetOrCreate<PPCSettings>(); MachineProvider.MachineOperator.ThreadLoadingStatusChanged += MachineOperator_ThreadLoadingStatusChanged; + MachineProvider.MachineDisconnected += MachineProvider_MachineDisconnected; + + IsArcHead = MachineProvider.Machine.MachineHeadType == BL.Enumerations.HeadTypes.Arc; ContinueCommand = new RelayCommand(Continue, CanContinue); AbortCommand = new RelayCommand(Abort); @@ -93,6 +102,14 @@ namespace Tango.PPC.UI.Dialogs AdaptToState(userInvoked); } + private void MachineProvider_MachineDisconnected(object sender, EventArgs e) + { + InvokeUI(() => + { + Cancel(); + }); + } + private void AdaptToState(bool userInvoked = false) { var status = MachineProvider.MachineOperator.ThreadLoadingStatus; @@ -258,6 +275,7 @@ namespace Tango.PPC.UI.Dialogs private void CleanUp() { MachineProvider.MachineOperator.ThreadLoadingStatusChanged -= MachineOperator_ThreadLoadingStatusChanged; + MachineProvider.MachineDisconnected -= MachineProvider_MachineDisconnected; if (SelectedRml != null) { |
