109 lines
3.9 KiB
C#
109 lines
3.9 KiB
C#
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_Library panel_library;
|
|
public Panel_WorkConditionAnalysis panel_workconditionanalysis;
|
|
public Panel_WorkTimeAnalysis panel_worktimeanalysis;
|
|
public Panel_InjectionProduction panel_injectionproduction;
|
|
public Panel_AssemblyProduction panel_assemblyproduction;
|
|
[Label(typeof(UI_WorkAnalysis),nameof(UI_WorkAnalysis))]
|
|
public UI_WorkAnalysis ui_workanalysis;
|
|
//public Panel_MachineDashBoard panel_machinedashboard;
|
|
|
|
private Dictionary<Machine, Panel_MachineDashBoard> machineDashboardTable = new();
|
|
|
|
public Action<Machine> onClickSimple;
|
|
public Action<Machine> onClickDetail;
|
|
public Action<Machine,HashSet<string>> simpleView;
|
|
private List<Panel_MachineDashBoard> dashboards =new();
|
|
private RectTransform dashboardPoint;
|
|
private float multiply = 1.1f;
|
|
public override void AfterAwake()
|
|
{
|
|
dashboardPoint = transform.Find<RectTransform>(nameof(dashboardPoint));
|
|
var asset = Resources.Load<Panel_MachineDashBoard>("Prefabs/UI/PRF_Panel_MachineDashBoard");
|
|
var machines = FindObjectsOfType<Machine>();
|
|
foreach (var machine in machines)
|
|
{
|
|
var dashboard = Instantiate<Panel_MachineDashBoard>(asset, transform);
|
|
dashboard.Close();
|
|
dashboard.simpleView += simpleView;
|
|
machineDashboardTable.Add(machine, dashboard);
|
|
dashboard.onClickSimple += onClickSimple;
|
|
dashboard.onClickDetail += onClickDetail;
|
|
dashboard.onClose += DashBoardClose;
|
|
}
|
|
}
|
|
|
|
public void MachineDashBoardOpenFromLibrary(UI_LibraryButton libraryButton)
|
|
{
|
|
dashboards.Clear();
|
|
|
|
var machine = libraryButton.machine;
|
|
machineDashboardTable[machine].OpenFromLibraryButton(libraryButton);
|
|
if (!dashboards.Contains(machineDashboardTable[machine]))
|
|
dashboards.Add(machineDashboardTable[machine]);
|
|
|
|
SetDashBoardPosition();
|
|
}
|
|
|
|
public void MachineDashBoardOpenFromOnClick(Machine clickMachine)
|
|
{
|
|
machineDashboardTable[clickMachine].OpenFromMachineClick(clickMachine);
|
|
if (!dashboards.Contains(machineDashboardTable[clickMachine]))
|
|
dashboards.Add(machineDashboardTable[clickMachine]);
|
|
|
|
SetDashBoardPosition();
|
|
}
|
|
|
|
public void MachineDashBoardClose(UI_LibraryButton button)
|
|
{
|
|
var machine = button.machine;
|
|
machineDashboardTable[machine].Close();
|
|
}
|
|
|
|
public void SimpleView(Machine machine, SimpleField data)
|
|
{
|
|
machineDashboardTable[machine].SimpleInfoView(data);
|
|
}
|
|
|
|
public void DetailView(Machine machine, SimpleField data)
|
|
{
|
|
machineDashboardTable[machine].DetailInfoView(data);
|
|
}
|
|
|
|
public void DashBoardClose(Panel_MachineDashBoard dashBoard)
|
|
{
|
|
dashboards.Remove(dashBoard);
|
|
}
|
|
public void SetDashBoardPosition()
|
|
{
|
|
if (dashboards.Count <= 0)
|
|
return;
|
|
|
|
var index = dashboards.Count - 1;
|
|
var pos = dashboardPoint.position;
|
|
for(int i = 1; i < dashboards.Count; i++)
|
|
{
|
|
pos = new Vector3(pos.x * multiply, pos.y / multiply, pos.z);
|
|
}
|
|
dashboards[index].transform.position = pos;
|
|
dashboards[index].transform.SetAsLastSibling();
|
|
}
|
|
|
|
public Panel_ControlSetting panel_controlsetting;
|
|
public Panel_ProtocolSetting panel_protocolsetting;
|
|
}
|
|
}
|
|
|