2026-06-05 13:44:39 +09:00

116 lines
4.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
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.Shapes;
using Aurora.View;
using ILSOS_PrismaticGun.Process;
using WeldingCommon;
using WeldingCommon.Data;
using WeldingCommon.Utils;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Header;
namespace ILSOS_PrismaticGun.WeldingCanvas.Popup
{
/// <summary>
/// PopupWinCellInfo.xaml에 대한 상호 작용 논리
/// </summary>
public partial class PopupWinCellInfo : Window
{
private PalletInfo _selectedPallet;
private bool _isEditMode = false;
public PopupWinCellInfo(PalletInfo palletInfo)
{
InitializeComponent();
_selectedPallet = palletInfo;
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
InitControls();
LoadPalletInfo();
}
private void InitControls()
{
Title = $"Stge {_selectedPallet.WeldingStage} Cell Info";
LotID.IsReadOnly = true;
CellID.IsReadOnly = true;
CellNo.IsReadOnly = true;
PalletState.IsReadOnly = true;
CellExist.IsReadOnly = true;
JudgeNG.IsReadOnly = true;
}
private void LoadPalletInfo()
{
if (_selectedPallet is null)
return;
LotID.ValueText = _selectedPallet.weldingData.LotId;
CellID.ValueText = _selectedPallet.weldingData.CellId;
CellNo.ValueText = $"{_selectedPallet.weldingData.CellNo}";
PalletState.ItemList = Enum.GetValues(typeof(ePalletState));
PalletState.ValueItem = _selectedPallet.palletState;
CellExist.ValueBool = _selectedPallet.weldingData.IsCellExist;
JudgeNG.ItemList = Enum.GetValues(typeof(JudgeType));
JudgeNG.ValueItem = (JudgeType)_selectedPallet.weldingData.NgJudge;
}
private void Button_Click_EditMode(object sender, RoutedEventArgs e)
{
if (MessageUtil.ShowYesNoMessageDialog("모드 선택", "데이터 변경 모드를 활성화하시겠습니까?") == false)
return;
_isEditMode = !_isEditMode;
LotID.IsReadOnly = !_isEditMode;
CellID.IsReadOnly = !_isEditMode;
CellNo.IsReadOnly = !_isEditMode;
PalletState.IsReadOnly = !_isEditMode;
CellExist.IsReadOnly = !_isEditMode;
JudgeNG.IsReadOnly = !_isEditMode;
}
private void Button_Click_Save(object sender, RoutedEventArgs e)
{
if (Status.EquipmentStatus is eEqpStatus.Auto){
MessageUtil.CreateAndShowMessageDialog("Cancel", "Auto모드에서는 데이터 변경이 불가능합니다.");
return;
}
if (MessageUtil.ShowYesNoMessageDialog("데이터 변경", "데이터를 변경하시겠습니까?") == false)
return;
_selectedPallet.weldingData.LotId = LotID.ValueText;
_selectedPallet.weldingData.CellId = CellID.ValueText;
_selectedPallet.weldingData.CellNo = int.Parse(CellNo.ValueText);
_selectedPallet.SetState((ePalletState)PalletState.ValueItem);
_selectedPallet.weldingData.IsCellExist = CellExist.ValueBool;
_selectedPallet.weldingData.NgJudge = (int)JudgeNG.ValueItem;
if (_selectedPallet.WeldingStage == eStage.A)
{
RegistrySerializer.SaveToRegistry("PalletInStageA", _selectedPallet);
ProcessManager.Instance.PalletInStageA = _selectedPallet;
}
else
{
RegistrySerializer.SaveToRegistry("PalletInStageB", _selectedPallet);
ProcessManager.Instance.PalletInStageB = _selectedPallet;
}
}
}
}