using System.Collections; using System.Collections.Generic; using UnityEngine; using WI; using UnityEngine.UI; using static MQTT; using System; namespace CHN { public class Panel_CompleteAlramHistory : PanelBase, ISingle { public UI_CompleteTimeAlarmInfo prefab_completeTimeAlarmInfo; public ScrollRect ScrollView_CompleteAlramHistory; public Dictionary completeInfoList = new(); public List notCheckAlramList = new(); public Action onClickAlram; public Action onCheckAlarm; public Action onCheckAlarmData; public Action onOpen; public Action onClose; public override void AfterAwake() { prefab_completeTimeAlarmInfo = Resources.Load("Prefabs/UI/PRF_UI_CompleteTimeAlramInfo"); notCheckAlramList.Clear(); completeInfoList.Clear(); SetActive(false); } public void SetActive() { var isActive = rectTransform.gameObject.activeSelf; var active = isActive ? false : true; if (active) { Open(); } else { Close(); } } public void Open() { onOpen?.Invoke("¿Ï·á ½Ã°£ ¾Ë¶÷"); } public void Close() { onClose?.Invoke("¿Ï·á ½Ã°£ ¾Ë¶÷"); } public void SetAlarmInfoItems(List infos) { for (int i = 0; i < infos.Count; i++) { if (completeInfoList.ContainsKey(infos[i].completeInfo.worknm)) { completeInfoList[infos[i].completeInfo.worknm].SetInfo(infos[i].completeInfo); } else { var infoItem = Instantiate(prefab_completeTimeAlarmInfo, ScrollView_CompleteAlramHistory.content); infoItem.SetInfo(infos[i].completeInfo); infoItem.onCheck += CheckAlram; infoItem.isCheck = infos[i].isCheck; completeInfoList.Add(infos[i].completeInfo.worknm, infoItem); if (!infoItem.isCheck) { notCheckAlramList.Add(infoItem); } } } BlinkAlarmItems(); } private void BlinkAlarmItems() { onCheckAlarm?.Invoke(notCheckAlramList.Count); } private void CheckAlram(UI_CompleteTimeAlarmInfo completeTimeAlarmInfo) { onClickAlram?.Invoke(completeTimeAlarmInfo.completeInfo.workcd); onCheckAlarmData?.Invoke(completeTimeAlarmInfo.completeInfo, completeTimeAlarmInfo.isCheck); notCheckAlramList.Remove(completeTimeAlarmInfo); onCheckAlarm?.Invoke(notCheckAlramList.Count); } } }