jym/250512_02 #69

Merged
jym merged 3 commits from jym/250512_02 into main 2025-05-13 14:25:17 +09:00
23 changed files with 23592 additions and 346 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c396f0856dfdd3c4f880ec92b8e0f57b
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -2945,142 +2945,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
saveMQTTDatas: []
--- !u!1 &303186508
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 303186509}
- component: {fileID: 303186511}
- component: {fileID: 303186510}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &303186509
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 303186508}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 840772026}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &303186510
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 303186508}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Filter
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
m_sharedMaterial: {fileID: 6975767319296004534, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4281479730
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 24
m_fontSizeBase: 24
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!222 &303186511
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 303186508}
m_CullTransparentMesh: 1
--- !u!1 &304191554
GameObject:
m_ObjectHideFlags: 0
@@ -7332,127 +7196,6 @@ Transform:
- {fileID: 996954076}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &840772025
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 840772026}
- component: {fileID: 840772029}
- component: {fileID: 840772028}
- component: {fileID: 840772027}
m_Layer: 5
m_Name: Button_Filter
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &840772026
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 840772025}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 303186509}
m_Father: {fileID: 1745682037}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 300, y: 45}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &840772027
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 840772025}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 840772028}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &840772028
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 840772025}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &840772029
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 840772025}
m_CullTransparentMesh: 1
--- !u!1 &841113398
GameObject:
m_ObjectHideFlags: 0
@@ -17258,8 +17001,7 @@ RectTransform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 840772026}
m_Children: []
m_Father: {fileID: 1551366227}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}

View File

@@ -19,6 +19,9 @@ namespace XED
public Action<List<DataClass>> mqttData;
public List<SaveMQTTData> saveMQTTDatas = new List<SaveMQTTData>();
public Action<string, List<DataClass>> apiData;
public List<SaveAPIData> saveAPIDatas = new List<SaveAPIData>();
public override void AfterAwake()
{
var mqttJson = Resources.Load<TextAsset>("MQTTData").text;
@@ -61,13 +64,13 @@ namespace XED
saveAlarmData.Remove(alarmName);
}
public void SetFilterData(List<string> topicName)
public void SetFilterData(string topicName)
{
List<DataClass> dataclasses = new List<DataClass>();
foreach (var data in this.loadMQTTData.dataList)
{
if (topicName.Contains(data.name))
if (topicName == data.name)
{
dataclasses.Add(data);
}
@@ -76,7 +79,21 @@ namespace XED
}
public void SetMQTTData(SaveMQTTData saveMQTTData)
{
saveMQTTDatas.Clear();
saveMQTTDatas.Add(saveMQTTData);
}
public void SetFilterData(string className, DataClass dataClass)
{
List<DataClass> dataclasses = new List<DataClass>();
dataclasses.Add(dataClass);
apiData?.Invoke(className, dataclasses);
}
public void SetAPIData(SaveAPIData saveAPIData)
{
saveAPIDatas.Clear();
saveAPIDatas.Add(saveAPIData);
}
}
}

View File

@@ -0,0 +1,107 @@
using UnityEngine;
using XRLib.UI;
using TMPro;
using UnityEngine.UI;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
namespace XED
{
public class Panel_APIConnectModal : PanelBase
{
public Data api;
private DataClass selectedUrlData;
private TMP_Dropdown Dropdown_URL;
private RectTransform ClassNameContent;
private Button Button_AddClassName;
private Button Button_Save;
private UI_DataBindingItem prf_mqttTopicItem;
private List<UI_DataBindingItem> topicItems = new List<UI_DataBindingItem>();
private UI_DataBindingItem selectedTopicItem;
public Action<string, DataClass> onClickFilterButton;
public Action<SaveAPIData> onSaveAPIData;
private void TestDataConnected()
{
var apiJson = Resources.Load<TextAsset>("Test").text;
api = JsonConvert.DeserializeObject<Data>(apiJson);
}
public override void AfterAwake()
{
TestDataConnected();
prf_mqttTopicItem = Resources.Load<UI_DataBindingItem>("Prefabs/UI/PRF_DataBindingItemItem");
SetUrlDropdown();
Button_AddClassName.onClick.AddListener(AddClassNameItem);
Button_Save.onClick.AddListener(Save);
}
private void SetUrlDropdown()
{
Dropdown_URL.ClearOptions();
List<string> options = new List<string>();
foreach(var apiData in api.dataList)
{
options.Add(apiData.name);
}
Dropdown_URL.AddOptions(options);
Dropdown_URL.onValueChanged.AddListener(OnUrlValueChanged);
}
private void OnUrlValueChanged(int index)
{
selectedUrlData = api.dataList[index];
}
private void OnClickFilterButton(UI_DataBindingItem item)
{
selectedTopicItem = item;
var itemName = item.GetTopicName();
onClickFilterButton?.Invoke(itemName, selectedUrlData);
}
private void AddClassNameItem()
{
var item = Instantiate(prf_mqttTopicItem, ClassNameContent);
item.onRemove += RemoveTopicItem;
item.onFilter += OnClickFilterButton;
topicItems.Add(item);
Button_AddClassName.transform.SetAsLastSibling();
}
private void RemoveTopicItem(UI_DataBindingItem item)
{
topicItems.Remove(item);
Destroy(item.gameObject);
}
private void Save()
{
var apiData = GetAPIData();
onSaveAPIData?.Invoke(apiData);
}
public void SetFilterData(SaveFilterData filterData)
{
if (selectedTopicItem == null)
return;
selectedTopicItem.SetFilterData(filterData);
selectedTopicItem.SetChangedInputFieldTopicName();
}
private SaveAPIData GetAPIData()
{
SaveAPIData saveAPIData = new SaveAPIData();
saveAPIData.selectedUrl = Dropdown_URL.options[Dropdown_URL.value].text;
foreach (var topicItem in topicItems)
{
saveAPIData.saveFilterData.Add(topicItem.GetFilterData());
}
return saveAPIData;
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: fd0689f5a6850a64ebccafe6f7b8893b

View File

@@ -33,7 +33,7 @@ namespace XED
private Button Button_AddStorageData;
private DataClass loadAPIData;
private List<UI_LoadAPIDataItem> currentAPIDataItems = new List<UI_LoadAPIDataItem>();
private List<UI_LoadDataHierarchyItem> currentAPIDataItems = new List<UI_LoadDataHierarchyItem>();
private RectTransform RectTransform_DataStorage;
private RectTransform DataStorageContent;
@@ -41,7 +41,7 @@ namespace XED
private Button Button_AddAPIData;
private Toggle Toggle_limitStorageSetting;
private UI_LoadAPIDataItem prf_loadAPIDataItem;
private UI_LoadDataHierarchyItem prf_loadDataHierarchyItem;
private UI_DataSettingItem prf_DataSettingItem;
private UI_DataTypeSelectedItem prf_DataTypeSelectedItem;
private UI_MatchingTypeDataItem prf_MatchingTypeDataItem;
@@ -70,7 +70,7 @@ namespace XED
{
TestDataConnected();
prf_loadAPIDataItem = Resources.Load<UI_LoadAPIDataItem>("Prefabs/UI/PRF_LoadAPIDataItem");
prf_loadDataHierarchyItem = Resources.Load<UI_LoadDataHierarchyItem>("Prefabs/UI/PRF_LoadDataHierarchyItem");
prf_DataSettingItem = Resources.Load<UI_DataSettingItem>("Prefabs/UI/PRF_DataSettingItem");
prf_DataTypeSelectedItem = Resources.Load<UI_DataTypeSelectedItem>("Prefabs/UI/PRF_DataTypeSelectedItem");
prf_MatchingTypeDataItem = Resources.Load<UI_MatchingTypeDataItem>("Prefabs/UI/PRF_MatchingTypeDataItem");
@@ -203,7 +203,7 @@ namespace XED
currentAPIDataItems.Clear();
var item = Instantiate(prf_loadAPIDataItem, APIDataListContent);
var item = Instantiate(prf_loadDataHierarchyItem, APIDataListContent);
item.SetData(loadAPIData);
item.onClickItem += OnClickAPIDataItem;
currentAPIDataItems.Add(item);
@@ -249,9 +249,10 @@ namespace XED
currentAddOtherDataItems.Remove(item);
Destroy(item.gameObject);
}
public SaveConnectedData saveData;
void Save()
{
var saveData = GetData();
saveData = GetData();
onSaveConnectedData?.Invoke(saveData.dataSource, saveData);
Initialize();
gameObject.SetActive(false);

View File

@@ -13,18 +13,19 @@ namespace XED
private Button Button_Cancel;
private Button Button_Save;
private UI_LoadAPIDataItem prf_loadAPIDataItem;
private UI_LoadDataHierarchyItem prf_loadDataHierarchyItem;
private UI_DataSettingItem prf_DataSettingItem;
private UI_DataTypeSelectedItem prf_DataTypeSelectedItem;
private UI_MatchingTypeDataItem prf_MatchingTypeDataItem;
private List<UI_LoadAPIDataItem> currentAPIDataItems = new List<UI_LoadAPIDataItem>();
private List<UI_LoadDataHierarchyItem> currentAPIDataItems = new List<UI_LoadDataHierarchyItem>();
public UI_DataSettingItem currentDataSettingItem;
private string className;
public Action<SaveFilterData> onSaveFilterData;
public override void AfterAwake()
{
prf_loadAPIDataItem = Resources.Load<UI_LoadAPIDataItem>("Prefabs/UI/PRF_LoadAPIDataItem");
prf_loadDataHierarchyItem = Resources.Load<UI_LoadDataHierarchyItem>("Prefabs/UI/PRF_LoadDataHierarchyItem");
prf_DataSettingItem = Resources.Load<UI_DataSettingItem>("Prefabs/UI/PRF_DataSettingItem");
prf_DataTypeSelectedItem = Resources.Load<UI_DataTypeSelectedItem>("Prefabs/UI/PRF_DataTypeSelectedItem");
prf_MatchingTypeDataItem = Resources.Load<UI_MatchingTypeDataItem>("Prefabs/UI/PRF_MatchingTypeDataItem");
@@ -47,10 +48,25 @@ namespace XED
onSaveFilterData?.Invoke(saveFilterData);
CloseModal();
}
public void SetLoadDataList(List<DataClass> dataClasses)
public void SetLoadMQTTDataList(List<DataClass> dataClasses)
{
SetLoadDataList(dataClasses);
}
public void SetLoadAPIDataList(string className, List<DataClass> dataClasses)
{
this.className = className;
SetLoadDataList(dataClasses);
}
private void SetLoadDataList(List<DataClass> dataClasses)
{
OpenModal();
if (currentDataSettingItem != null)
{
Destroy(currentDataSettingItem.gameObject);
currentDataSettingItem = null;
}
foreach (var dataItem in currentAPIDataItems)
Destroy(dataItem.gameObject);
@@ -58,16 +74,12 @@ namespace XED
foreach (var dataClass in dataClasses)
{
var item = Instantiate(prf_loadAPIDataItem, DataListContent);
var item = Instantiate(prf_loadDataHierarchyItem, DataListContent);
item.SetData(dataClass);
item.onClickItem += OnClickLoadDataItem;
item.onClickItem += AddDataSettingItem;
currentAPIDataItems.Add(item);
}
}
private void OnClickLoadDataItem(DataClass data)
{
AddDataSettingItem(data);
}
private void AddDataSettingItem(DataClass data)
{
if (currentDataSettingItem != null)
@@ -75,11 +87,18 @@ namespace XED
Destroy(currentDataSettingItem.gameObject);
currentDataSettingItem = null;
}
var item = Instantiate(prf_DataSettingItem, DataContent);
item.SetData(data, prf_DataTypeSelectedItem, prf_MatchingTypeDataItem);
item.onUpdateLayout += UpdateLayout;
currentDataSettingItem = item;
if (className == null)
{
currentDataSettingItem.SetData(data, prf_DataTypeSelectedItem, prf_MatchingTypeDataItem);
}
else
{
currentDataSettingItem.SetData(className, data, prf_DataTypeSelectedItem, prf_MatchingTypeDataItem);
}
}
private void UpdateLayout()
{
@@ -88,7 +107,11 @@ namespace XED
private SaveFilterData GetSaveFilterData()
{
SaveFilterData saveFilterData = new SaveFilterData();
saveFilterData.dataList.Add(currentDataSettingItem.GetData());
if (currentDataSettingItem != null)
{
saveFilterData.data = currentDataSettingItem.GetData();
}
return saveFilterData;
}

View File

@@ -15,16 +15,14 @@ namespace XED
private RectTransform TopicContent;
private Button Button_AddTopic;
private Button Button_Filter;
private Button Button_Save;
private UI_MQTTTopicItem prf_mqttTopicItem;
private List<UI_MQTTTopicItem> topicItems = new List<UI_MQTTTopicItem>();
private SaveFilterData saveFilterData;
private UI_DataBindingItem prf_mqttTopicItem;
private List<UI_DataBindingItem> topicItems = new List<UI_DataBindingItem>();
private UI_DataBindingItem selectedTopicItem;
public MQTTData loadMQTTData;
public Action<List<string>> onClickFilterButton;
public Action<string> onClickFilterButton;
public Action<SaveMQTTData> onSaveMQTTData;
private void TestDataConnected()
@@ -35,37 +33,30 @@ namespace XED
public override void AfterAwake()
{
TestDataConnected();
prf_mqttTopicItem = Resources.Load<UI_MQTTTopicItem>("Prefabs/UI/PRF_MQTTTopicItem");
prf_mqttTopicItem = Resources.Load<UI_DataBindingItem>("Prefabs/UI/PRF_DataBindingItemItem");
Text_Domain.SetText(loadMQTTData.domain);
Text_Port.SetText(loadMQTTData.port);
Button_AddTopic.onClick.AddListener(AddTopicItem);
Button_Filter.onClick.AddListener(OnClickFilterButton);
Button_Save.onClick.AddListener(Save);
}
private void OnClickFilterButton()
private void OnClickFilterButton(UI_DataBindingItem item)
{
List<string> topicNames = new List<string>();
foreach(var topicItem in topicItems)
{
topicNames.Add(topicItem.GetTopicName());
}
onClickFilterButton?.Invoke(topicNames);
selectedTopicItem = item;
var itemName = item.GetTopicName();
onClickFilterButton?.Invoke(itemName);
}
private void AddTopicItem()
{
var item = Instantiate(prf_mqttTopicItem, TopicContent);
item.onRemove += RemoveTopicItem;
item.onFilter += OnClickFilterButton;
topicItems.Add(item);
Button_Filter.transform.SetAsLastSibling();
}
private void RemoveTopicItem(UI_MQTTTopicItem item)
private void RemoveTopicItem(UI_DataBindingItem item)
{
topicItems.Remove(item);
Destroy(item.gameObject);
@@ -77,19 +68,22 @@ namespace XED
}
public void SetFilterData(SaveFilterData filterData)
{
saveFilterData = filterData;
if (selectedTopicItem == null)
return;
selectedTopicItem.SetFilterData(filterData);
selectedTopicItem.SetChangedInputFieldTopicName();
}
private SaveMQTTData GetMQTTData()
{
SaveMQTTData saveMQTTData = new SaveMQTTData();
saveMQTTData.domain = Text_Domain.text;
saveMQTTData.port = Text_Port.text;
foreach (var topicItem in topicItems)
{
saveMQTTData.topics.Add(topicItem.GetTopicName());
saveMQTTData.saveFilterData.Add(topicItem.GetFilterData());
}
saveMQTTData.saveFilterData = saveFilterData;
return saveMQTTData;
}
}

View File

@@ -12,6 +12,7 @@ namespace XED
public Panel_DynamicObjectInfo panel_dynamicobjectinfo;
public Panel_MQTTConnectModal panel_mqttconnectmodal;
public Panel_DataFilterSetting panel_datafiltersetting;
public Panel_APIConnectModal panel_apiconnectmodal;
private void Awake()
{
@@ -33,13 +34,17 @@ namespace XED
panel_mqttconnectmodal.onClickFilterButton += dataManager.SetFilterData;
panel_mqttconnectmodal.onSaveMQTTData += dataManager.SetMQTTData;
panel_apiconnectmodal.onClickFilterButton += dataManager.SetFilterData;
panel_apiconnectmodal.onSaveAPIData += dataManager.SetAPIData;
dataManager.onConnectData += panel_dynamicobjectinfo.OnConnectData;
dataManager.onLoadData += panel_dataconnectmodal.SetLoadSaveData;
dataManager.onConnectAlarm += panel_dynamicobjectinfo.OnConnectAlarm;
dataManager.onLoadAlarm += panel_alarmconnectmodal.LoadData;
dataManager.mqttData += panel_datafiltersetting.SetLoadDataList;
dataManager.mqttData += panel_datafiltersetting.SetLoadMQTTDataList;
dataManager.apiData += panel_datafiltersetting.SetLoadAPIDataList;
}
}
}

View File

@@ -11,6 +11,7 @@ namespace XED
canvas_Popup.panel_dynamicobjectinfo.onConnectedAlarm += canvas_Popup.panel_alarmconnectmodal.OpenModal;
canvas_Popup.panel_datafiltersetting.onSaveFilterData += canvas_Popup.panel_mqttconnectmodal.SetFilterData;
canvas_Popup.panel_datafiltersetting.onSaveFilterData += canvas_Popup.panel_apiconnectmodal.SetFilterData;
}
}
}

View File

@@ -101,12 +101,19 @@ namespace XED
{
public string domain;
public string port;
public List<string> topics = new List<string>();
public SaveFilterData saveFilterData;
public List<SaveFilterData> saveFilterData = new List<SaveFilterData>();
}
[Serializable]
public class SaveFilterData
{
public List<DataClass> dataList = new List<DataClass>();
public string name;
public DataClass data;
}
[Serializable]
public class SaveAPIData
{
public string selectedUrl;
public List<SaveFilterData> saveFilterData = new List<SaveFilterData>();
}
}

View File

@@ -99,8 +99,6 @@ namespace XED
foreach (var item in addOtherDataTypeItems)
{
var field = item.GetFieldData();
Debug.Log(field);
if (field != null)
{
dataClass.fields.Add(field);

View File

@@ -0,0 +1,61 @@
using UnityEngine;
using XRLib.UI;
using TMPro;
using UnityEngine.UI;
using System;
namespace XED
{
public class UI_DataBindingItem : UIBase
{
public SaveFilterData filterData;
private TMP_InputField InputField_TopicName;
private Button Button_Remove;
private Button Button_Filter;
public Action<UI_DataBindingItem> onRemove;
public Action<UI_DataBindingItem> onFilter;
public override void AfterAwake()
{
Button_Remove.onClick.AddListener(OnClickRemoveButton);
Button_Filter.onClick.AddListener(OnClickFilterButton);
}
private void OnClickRemoveButton()
{
onRemove?.Invoke(this);
}
private void OnClickFilterButton()
{
onFilter?.Invoke(this);
}
public string GetTopicName()
{
var topicName = InputField_TopicName.text;
return topicName;
}
public SaveFilterData GetFilterData()
{
SaveFilterData saveFilterData = new SaveFilterData();
saveFilterData = filterData;
saveFilterData.name = GetTopicName();
return saveFilterData;
}
public void SetFilterData(SaveFilterData filterData)
{
this.filterData = filterData;
}
public void SetChangedInputFieldTopicName()
{
if (filterData.data == null)
return;
if (filterData.data.name != null)
{
InputField_TopicName.text = filterData.data.name;
}
}
}
}

View File

@@ -19,11 +19,20 @@ namespace XED
public void SetData(DataClass data, UI_DataTypeSelectedItem typeItem, UI_MatchingTypeDataItem matchingItem)
{
dataTypeSelectedItems.Clear();
dataTypeSelectedItem = typeItem;
InputField_ClassName.text = data.name;
SetItem(data, typeItem, matchingItem);
}
public void SetData(string className, DataClass data, UI_DataTypeSelectedItem typeItem, UI_MatchingTypeDataItem matchingItem)
{
InputField_ClassName.text = className;
SetItem(data, typeItem, matchingItem);
}
private void SetItem(DataClass data, UI_DataTypeSelectedItem typeItem, UI_MatchingTypeDataItem matchingItem)
{
dataTypeSelectedItems.Clear();
dataTypeSelectedItem = typeItem;
foreach (var field in data.fields)
{
var item = Instantiate(typeItem, ClassDataContent);

View File

@@ -7,7 +7,7 @@ using System.Text;
namespace XED
{
public class UI_LoadAPIDataItem : UIBase
public class UI_LoadDataHierarchyItem : UIBase
{
public DataClass data;
private Button button;

View File

@@ -1,30 +0,0 @@
using UnityEngine;
using XRLib.UI;
using TMPro;
using UnityEngine.UI;
using System;
namespace XED
{
public class UI_MQTTTopicItem : UIBase
{
private TMP_InputField InputField_TopicName;
private Button Button_Remove;
public Action<UI_MQTTTopicItem> onRemove;
public override void AfterAwake()
{
Button_Remove.onClick.AddListener(OnClickRemoveButton);
}
private void OnClickRemoveButton()
{
onRemove?.Invoke(this);
}
public string GetTopicName()
{
var topicName = InputField_TopicName.text;
return topicName;
}
}
}

View File

@@ -342,7 +342,7 @@ GameObject:
- component: {fileID: 8699278323982915336}
- component: {fileID: 706131595124964048}
m_Layer: 5
m_Name: PRF_MQTTTopicItem
m_Name: PRF_DataBindingItemItem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -362,12 +362,13 @@ RectTransform:
m_Children:
- {fileID: 8758142222598669033}
- {fileID: 7202960399901929855}
- {fileID: 294421041129772032}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 310, y: 55}
m_SizeDelta: {x: 310, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8699278323982915336
CanvasRenderer:
@@ -389,6 +390,147 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 59ff2c49b64da2d468e5b62884f42988, type: 3}
m_Name:
m_EditorClassIdentifier:
filterData:
name:
data:
name:
fields: []
--- !u!1 &4739490531562169667
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4662734928939993985}
- component: {fileID: 4656091012988918390}
- component: {fileID: 2138480632550138553}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4662734928939993985
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4739490531562169667}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 294421041129772032}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4656091012988918390
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4739490531562169667}
m_CullTransparentMesh: 1
--- !u!114 &2138480632550138553
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4739490531562169667}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Filter
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
m_sharedMaterial: {fileID: 6975767319296004534, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 24
m_fontSizeBase: 24
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &4756002353234532837
GameObject:
m_ObjectHideFlags: 0
@@ -839,3 +981,124 @@ MonoBehaviour:
isAlert: 0
m_InputValidator: {fileID: 0}
m_ShouldActivateOnSelect: 1
--- !u!1 &7949778623134252698
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 294421041129772032}
- component: {fileID: 8546665330615072625}
- component: {fileID: 3366492678398979650}
- component: {fileID: 182831894527475004}
m_Layer: 5
m_Name: Button_Filter
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &294421041129772032
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7949778623134252698}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4662734928939993985}
m_Father: {fileID: 5591057983156336350}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 155, y: -72.5}
m_SizeDelta: {x: 300, y: 45}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8546665330615072625
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7949778623134252698}
m_CullTransparentMesh: 1
--- !u!114 &3366492678398979650
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7949778623134252698}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &182831894527475004
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7949778623134252698}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 3366492678398979650}
m_OnClick:
m_PersistentCalls:
m_Calls: []

View File

@@ -14,7 +14,7 @@ GameObject:
- component: {fileID: 4540787158586730676}
- component: {fileID: 7269621428994907548}
m_Layer: 5
m_Name: PRF_LoadAPIDataItem
m_Name: PRF_LoadDataHierarchyItem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0