feat: 레시피 Scout Normal 줄에 Field 버튼 추가 (3열 [Field]-[Run]-[Stop])
- UCScannerObjectTeachingControlBox.xaml: Scout Normal 실행 줄을 2열에서 3열로 재구성, 너비 1*/1.3*/1*로 Run 강조. Run Scout Normal 버튼을 Run으로 변경, 1열에 Field 버튼 신규 추가. - VM: 매뉴얼 화면과 동일한 WDSelectScoutField 팝업을 띄우는 CMD_ShowSelectFieldWindow 이식. 저장은 팝업 VM에서 자체 처리하므로 비전 이벤트 구독(SAVE_CHILD_IMAGE_SETTING)은 제외. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
4ed35cb94a
commit
357702399c
@ -67,11 +67,13 @@
|
||||
|
||||
<Grid Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Height="50" Margin="0 5 0 0" Visibility="{Binding IsSelectedScoutNormal, Converter={StaticResource convTrueVisible}}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="1*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="1.3*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="1*"></ColumnDefinition>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Grid.Column="0" Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" FontWeight="Bold" Style="{StaticResource StButtonAccentPurple}" Command="{Binding CMD_RunScoutNormal}" Content="Run Scout Normal" IsEnabled="{Binding IsSequenceRunning_ScoutNormal, Converter={StaticResource convReverse}}"/>
|
||||
<Button Grid.Column="1" Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" FontWeight="Bold" Style="{StaticResource StButtonAccentPurple}" Command="{Binding CMD_StopScoutNormal}" Content="Stop" IsEnabled="{Binding IsSequenceRunning_ScoutNormal}"/>
|
||||
<Button Grid.Column="0" Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" FontWeight="Bold" Style="{StaticResource StButtonAccentPurple}" Command="{Binding CMD_ShowSelectFieldWindow}" Content="Field"/>
|
||||
<Button Grid.Column="1" Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" FontWeight="Bold" Style="{StaticResource StButtonAccentPurple}" Command="{Binding CMD_RunScoutNormal}" Content="Run" IsEnabled="{Binding IsSequenceRunning_ScoutNormal, Converter={StaticResource convReverse}}"/>
|
||||
<Button Grid.Column="2" Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" FontWeight="Bold" Style="{StaticResource StButtonAccentPurple}" Command="{Binding CMD_StopScoutNormal}" Content="Stop" IsEnabled="{Binding IsSequenceRunning_ScoutNormal}"/>
|
||||
</Grid>
|
||||
|
||||
<Grid Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" Height="50" Margin="0" Visibility="{Binding IsSelectedScoutNormal, Converter={StaticResource convFalseVisible}}">
|
||||
|
||||
@ -45,6 +45,7 @@ namespace WeldingCommon.Views
|
||||
public ICommand CMD_LaserReadyCheck { get; }
|
||||
public ICommand CMD_ImportObjectFromDXF { get; }
|
||||
public ICommand CMD_ToggleScannerCamView { get; }
|
||||
public ICommand CMD_ShowSelectFieldWindow { get; }
|
||||
|
||||
private readonly IAuroraEnvironment _Aurora;
|
||||
private SystemParameter _SystemParameter;
|
||||
@ -106,6 +107,9 @@ namespace WeldingCommon.Views
|
||||
// 레시피 화면에서 토글로 띄우는 스캐너 카메라 + 모션 창 (재사용을 위해 Hide/Show)
|
||||
private WDScannerCamMotion _ScannerCamWindow;
|
||||
|
||||
// Scout Field 선택 팝업 (매뉴얼 화면과 동일한 창을 레시피 화면에서도 사용)
|
||||
private WDSelectScoutField _SelectFieldWindow;
|
||||
|
||||
private WinSequenceDiagram _WinSequenceDiagramScoutNormal;
|
||||
private WinSequenceDiagram _WinSequenceDiagramScoutFlyingVision;
|
||||
private WinSequenceDiagram _WinSequenceDiagramTeachingRun;
|
||||
@ -144,6 +148,7 @@ namespace WeldingCommon.Views
|
||||
CMD_LaserReadyCheck = new DelegateCommand(PerformCmdLaserReadyCheck);
|
||||
CMD_ImportObjectFromDXF = new DelegateCommand(PerformCmdImportObjectFromDXF);
|
||||
CMD_ToggleScannerCamView = new DelegateCommand(PerformCmdToggleScannerCamView);
|
||||
CMD_ShowSelectFieldWindow = new DelegateCommand(PerformCmdShowSelectFieldWindow, CanShowSelectFieldWindow);
|
||||
|
||||
_Aurora.EventObservable.AsObservable(AuroraSysEvent.SYS_SETTING_CHANGED)
|
||||
.ObserveOnDispatcher()
|
||||
@ -532,6 +537,31 @@ namespace WeldingCommon.Views
|
||||
}
|
||||
}
|
||||
|
||||
private bool CanShowSelectFieldWindow(object o) => _SelectFieldWindow == null;
|
||||
|
||||
private void PerformCmdShowSelectFieldWindow(object o)
|
||||
{
|
||||
// 매뉴얼 화면과 동일한 Scout Field 선택 팝업을 띄움. 저장은 팝업 VM(PerformCmdSave)에서 자체 처리.
|
||||
try {
|
||||
Application.Current.Dispatcher.Invoke(
|
||||
new Action(() => {
|
||||
if (_SelectFieldWindow != null) {
|
||||
_SelectFieldWindow.Close();
|
||||
_SelectFieldWindow = null;
|
||||
}
|
||||
|
||||
_SelectFieldWindow = new WDSelectScoutField(_Aurora) {
|
||||
Owner = Application.Current.MainWindow
|
||||
};
|
||||
_SelectFieldWindow.Closed += (sender, _) => { _SelectFieldWindow = null; };
|
||||
_SelectFieldWindow.Show();
|
||||
}));
|
||||
}
|
||||
catch (Exception ex) {
|
||||
Log.E($"[PerformCmdShowSelectFieldWindow] 실패: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
private void PerformCmdImportObjectFromDXF(object obj)
|
||||
{
|
||||
System.Windows.Forms.FileDialog dlg = new System.Windows.Forms.OpenFileDialog();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user