85 lines
2.7 KiB
C#
85 lines
2.7 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using XRLib.UI;
|
|
using System;
|
|
using Studio.Util;
|
|
|
|
namespace Studio.UI
|
|
{
|
|
public class Panel_MQTTSetting : PanelBase
|
|
{
|
|
private RectTransform Content;
|
|
private Button Button_AddMQTTConnectionItem;
|
|
|
|
private UI_MQTTConnection prf_MQTTConnectionItem;
|
|
private List<UI_MQTTConnection> mqttConnectionItems = new List<UI_MQTTConnection>();
|
|
public Action onClose;
|
|
|
|
public void Active(bool isActive)
|
|
{
|
|
gameObject.SetActive(isActive);
|
|
|
|
if (!isActive)
|
|
{
|
|
onClose?.Invoke();
|
|
}
|
|
}
|
|
public override void AfterAwake()
|
|
{
|
|
prf_MQTTConnectionItem = Resources.Load<UI_MQTTConnection>("Prefabs/UI/PRF_MQTTConnectionItem");
|
|
|
|
Button_AddMQTTConnectionItem.onClick.AddListener(OnClickAddAPIConnectionItemButton);
|
|
mqttConnectionItems.Clear();
|
|
}
|
|
private void OnClickAddAPIConnectionItemButton()
|
|
{
|
|
var item = Instantiate(prf_MQTTConnectionItem, Content);
|
|
item.onRemoveMQTTConnectionItem += RemoveMQTTConnectionItem;
|
|
|
|
AddMQTTConnectionItem(item);
|
|
Button_AddMQTTConnectionItem.transform.SetAsLastSibling();
|
|
}
|
|
private void AddMQTTConnectionItem(UI_MQTTConnection item)
|
|
{
|
|
mqttConnectionItems.Add(item);
|
|
}
|
|
private void RemoveMQTTConnectionItem(UI_MQTTConnection item)
|
|
{
|
|
mqttConnectionItems.Remove(item);
|
|
Destroy(item.gameObject);
|
|
}
|
|
public MQTTSetting GetMQTTSetting()
|
|
{
|
|
var mqttSetting = new MQTTSetting();
|
|
foreach(var item in mqttConnectionItems)
|
|
{
|
|
var mqttConnection = item.GetMQTTConnection();
|
|
mqttSetting.mqttConnections.Add(mqttConnection);
|
|
}
|
|
return mqttSetting;
|
|
}
|
|
public void SetMQTTSetting(MQTTSetting mqttSetting)
|
|
{
|
|
foreach(var item in mqttConnectionItems)
|
|
{
|
|
Destroy(item.gameObject);
|
|
}
|
|
mqttConnectionItems.Clear();
|
|
|
|
if (mqttSetting == null)
|
|
return;
|
|
|
|
foreach (var mqttConnection in mqttSetting.mqttConnections)
|
|
{
|
|
var item = Instantiate(prf_MQTTConnectionItem, Content);
|
|
item.onRemoveMQTTConnectionItem += RemoveMQTTConnectionItem;
|
|
item.SetMQTTConnection(mqttConnection);
|
|
|
|
AddMQTTConnectionItem(item);
|
|
Button_AddMQTTConnectionItem.transform.SetAsLastSibling();
|
|
}
|
|
}
|
|
}
|
|
}
|