using System; using System.Collections.Generic; using UnityEngine; using WI; using static MQTT; namespace CHN { public class Canvas_Popup : CanvasBase { public Panel_CompleteAlramHistory panel_completealramhistory; public Panel_Menu panel_menu; public Panel_DashBoard panel_dashboard; public Panel_Library panel_library; public Panel_WorkConditionAnalysis panel_workconditionanalysis; public Panel_WorkTimeAnalysis panel_worktimeanalysis; public Panel_InjectionProduction panel_injectionproduction; public Panel_AssemblyProduction panel_assemblyproduction; public Panel_WorkProgressStatus panel_workprogressstatus; public Panel_MiniMap panel_minimap; public Panel_ThermostatControl panel_thermostatcontrol; public Panel_ExitProgram panel_exitprogram; public Panel_ToolBarAlarm panel_toolbaralarm; public Panel_DetailDashBoard panel_detaildashboard; //public Panel_MachineDashBoard panel_machinedashboard; public RectTransform dashboardPoint; private Dictionary machineDashboardTable = new(); public Action onClickSimple; public Action onClickDetail; public Action> simpleView; public Action onCloseDashBoard; public Panel_MachineDashBoard currentDashBoard; public Action onOpenDashboard; public bool isSimpleDashboardAcitve; public void ActiveSimpleDashBoard() { isSimpleDashboardAcitve = true; } public void DeactiveSimpleDashBoard() { isSimpleDashboardAcitve = false; } public override void AfterAwake() { var asset = Resources.Load("Prefabs/UI/PRF_Panel_MachineDashBoard"); var machines = FindObjectsByType(FindObjectsSortMode.None); foreach (var machine in machines) { var dashboard = Instantiate(asset, transform); dashboard.Close(); dashboard.simpleView += simpleView; machineDashboardTable.Add(machine, dashboard); dashboard.onClickSimple += onClickSimple; dashboard.onClickDetail += onClickDetail; dashboard.onClose += onCloseDashBoard; } } public void MachineDashBoardOpen(Machine clickMachine) { if (!isSimpleDashboardAcitve) return; if (currentDashBoard != null) { currentDashBoard.SetActive(false); } currentDashBoard = machineDashboardTable[clickMachine]; currentDashBoard.OpenFromMachine(clickMachine); SetDashBoardPosition(); onOpenDashboard?.Invoke(); } public void SimpleView(Machine machine, SimpleField data) { machineDashboardTable[machine].SimpleInfoView(data); } public void DetailView(Machine machine, SimpleField data) { machineDashboardTable[machine].DetailInfoView(machine, data); } public void CurrentDashoboardClose() { if (currentDashBoard != null) { currentDashBoard.Clear(); currentDashBoard.SetActive(false); } } public void SetDashBoardPosition() { currentDashBoard.transform.position = dashboardPoint.transform.position; currentDashBoard.transform.SetAsLastSibling(); } public Panel_ControlSetting panel_controlsetting; public Panel_ProtocolSetting panel_protocolsetting; } }