完善显示
This commit is contained in:
parent
89de0e2ebd
commit
a4c5834da5
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,3 +2,4 @@
|
||||
.godot/
|
||||
/android/
|
||||
.idea/
|
||||
data.json
|
||||
@ -1,5 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using Godot;
|
||||
using Learn.Models;
|
||||
using Newtonsoft.Json;
|
||||
@ -9,6 +10,13 @@ namespace Learn.Component;
|
||||
|
||||
public partial class MainTreePanel : Tree
|
||||
{
|
||||
public class MainTreeData
|
||||
{
|
||||
public List<string> Columns { get; set; }
|
||||
public Dictionary<string, Item> Items { get; set; }
|
||||
}
|
||||
|
||||
|
||||
private readonly HashSet<string> _columns = new();
|
||||
private readonly HashSet<TreeNode> _selectingNodes = new();
|
||||
private readonly Dictionary<TreeItem, TreeNode> _mapper = new();
|
||||
@ -26,6 +34,8 @@ public partial class MainTreePanel : Tree
|
||||
SetColumnExpand(0, true);
|
||||
|
||||
MultiSelected += OnMultiSelected;
|
||||
|
||||
UpdateColumns();
|
||||
}
|
||||
|
||||
public void AddColumn(string columnName)
|
||||
@ -118,18 +128,28 @@ public partial class MainTreePanel : Tree
|
||||
|
||||
public void LoadData(string dataPath)
|
||||
{
|
||||
var items = JsonConvert.DeserializeObject<Dictionary<string, Item>>(File.ReadAllText(dataPath));
|
||||
foreach (var kv in items)
|
||||
var data = JsonConvert.DeserializeObject<MainTreeData>(File.ReadAllText(dataPath));
|
||||
foreach (var kv in data.Items)
|
||||
{
|
||||
if (string.IsNullOrEmpty(kv.Key)) continue;
|
||||
_items[kv.Key] = kv.Value;
|
||||
}
|
||||
_columns.Clear();
|
||||
foreach (var column in data.Columns)
|
||||
{
|
||||
_columns.Add(column);
|
||||
}
|
||||
UpdateColumns();
|
||||
}
|
||||
|
||||
public void SaveData(string dataPath)
|
||||
{
|
||||
File.WriteAllText(dataPath, JsonConvert.SerializeObject(_items, Formatting.Indented));
|
||||
var data = new MainTreeData
|
||||
{
|
||||
Columns = _columns.ToList(),
|
||||
Items = _items
|
||||
};
|
||||
File.WriteAllText(dataPath, JsonConvert.SerializeObject(data, Formatting.Indented));
|
||||
}
|
||||
|
||||
public void Scan(string path)
|
||||
|
||||
@ -30,9 +30,9 @@ _addKeyButton = NodePath("../MarginContainer/HSplitContainer/ScrollContainer/VBo
|
||||
_removeKeyButton = NodePath("../MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2/FoldableContainer/VBoxContainer/HBoxContainer/RemoveKey")
|
||||
_parsedInfoPanel = NodePath("../MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2/FoldableContainer2/ParsedNodePanel")
|
||||
_mainTreePanel = NodePath("../MarginContainer/HSplitContainer/MainTreePanel")
|
||||
_columnText = NodePath("../MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2/FoldableContainer3/HBoxContainer/ColunmText")
|
||||
_addColumnButton = NodePath("../MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2/FoldableContainer3/HBoxContainer/AddColumn")
|
||||
_removeColumnButton = NodePath("../MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2/FoldableContainer3/HBoxContainer/RemoveColumn")
|
||||
_columnText = NodePath("../MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2/FoldableContainer4/VBoxContainer/HBoxContainer/ColunmText")
|
||||
_addColumnButton = NodePath("../MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2/FoldableContainer4/VBoxContainer/HBoxContainer/AddColumn")
|
||||
_removeColumnButton = NodePath("../MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2/FoldableContainer4/VBoxContainer/HBoxContainer/RemoveColumn")
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||
layout_mode = 1
|
||||
@ -98,35 +98,27 @@ text = "保存"
|
||||
layout_mode = 2
|
||||
text = "重置"
|
||||
|
||||
[node name="FoldableContainer3" type="FoldableContainer" parent="MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2"]
|
||||
layout_mode = 2
|
||||
folded = true
|
||||
title = "添加显示字段"
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2/FoldableContainer3"]
|
||||
visible = false
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2/FoldableContainer4/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="ColunmText" type="LineEdit" parent="MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2/FoldableContainer3/HBoxContainer"]
|
||||
[node name="ColunmText" type="LineEdit" parent="MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2/FoldableContainer4/VBoxContainer/HBoxContainer"]
|
||||
custom_minimum_size = Vector2(100, 0)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AddColumn" type="Button" parent="MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2/FoldableContainer3/HBoxContainer"]
|
||||
[node name="AddColumn" type="Button" parent="MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2/FoldableContainer4/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "显示"
|
||||
|
||||
[node name="RemoveColumn" type="Button" parent="MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2/FoldableContainer3/HBoxContainer"]
|
||||
[node name="RemoveColumn" type="Button" parent="MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2/FoldableContainer4/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "隐藏"
|
||||
|
||||
[node name="FoldableContainer2" type="FoldableContainer" parent="MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2"]
|
||||
layout_mode = 2
|
||||
folded = true
|
||||
title = "解析数据"
|
||||
|
||||
[node name="ParsedNodePanel" type="Tree" parent="MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2/FoldableContainer2" node_paths=PackedStringArray("_editPanel")]
|
||||
visible = false
|
||||
custom_minimum_size = Vector2(0, 400)
|
||||
custom_minimum_size = Vector2(0, 300)
|
||||
layout_mode = 2
|
||||
hide_root = true
|
||||
select_mode = 1
|
||||
@ -135,11 +127,9 @@ _editPanel = NodePath("../../FoldableContainer/VBoxContainer/NodeEditPanel")
|
||||
|
||||
[node name="FoldableContainer" type="FoldableContainer" parent="MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2"]
|
||||
layout_mode = 2
|
||||
folded = true
|
||||
title = "数据编辑"
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2/FoldableContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/HSplitContainer/ScrollContainer/VBoxContainer2/FoldableContainer/VBoxContainer"]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user