using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; using System; namespace EnglewoodLAB.UI { public class UI_ProtocolSetting : MonoBehaviour { public Image Image_Connected; public Image Image_UnConnected; public TextMeshProUGUI ErrorMessage; private Dictionary inputFields = new(); private Dictionary initOption = new(); private Dictionary mappingOption = new(); public void InitInputFields(MonoBehaviour mo) { var optionManager = FindFirstObjectByType(); var option = optionManager.GetOption(mo); var optionInputFields = transform.GetComponentsInChildren(); foreach (var mqttInputField in optionInputFields) { inputFields.Add(mqttInputField.name, mqttInputField); initOption.Add(mqttInputField.name, option[mqttInputField.name]); mqttInputField.text = option[mqttInputField.name]; } } public void UnAcceptInputFields(MonoBehaviour mo) { var optionManager = FindFirstObjectByType(); var option = optionManager.GetOption(mo); foreach (var key in inputFields.Keys) { inputFields[key].text = option[key]; } } public void ResetInputFields(MonoBehaviour mo) { var optionManager = FindFirstObjectByType(); foreach (var key in initOption.Keys) { inputFields[key].text = initOption[key]; } optionManager.SetOptionValue(mo, initOption); } public void AcceptInputFields(MonoBehaviour mo) { var optionManager = FindFirstObjectByType(); mappingOption.Clear(); foreach (var mqttInputField in inputFields.Values) { mappingOption.Add(mqttInputField.name, mqttInputField.text); } optionManager.SetOptionValue(mo, mappingOption); } public void ProtocolSuccessCheck(Protocol protocol) { var isActive = protocol.isSuccess; Image_Connected.gameObject.SetActive(isActive); Image_UnConnected.gameObject.SetActive(!isActive); var color = protocol.isSuccess ? new Color(0, 245, 0) : new Color(245, 0, 0); ErrorMessage.color = color; ErrorMessage.text = protocol.errorMessage; } internal void ProtocolSuccessCheck(MQTT mqttManager) { throw new NotImplementedException(); } internal void InitInputFields(HTTPRequester httpManager) { throw new NotImplementedException(); } internal void ResetInputFields(HTTPRequester httpManager) { throw new NotImplementedException(); } internal void AcceptInputFields(HTTPRequester httpManager) { throw new NotImplementedException(); } internal void UnAcceptInputFields(HTTPRequester httpManager) { throw new NotImplementedException(); } } }