From 6b6778196114d1ad64c68a8e0215221c7c36dc28 Mon Sep 17 00:00:00 2001 From: jkpete <1031139173@qq.com> Date: Wed, 25 Jun 2025 12:00:37 +0800 Subject: [PATCH] add primary key get method,and add default data --- Example/SaveSystem/Script/ViewSaveSystem.cs | 4 +- .../Templete/Godot/UI/EGodotSaveTable.cs | 2 +- .../Templete/Godot/UI/EGodotTable.cs | 33 +++++++++- .../Templete/Variant/EGVariantGenerator.cs | 66 ++++++++++++++----- 4 files changed, 86 insertions(+), 19 deletions(-) diff --git a/Example/SaveSystem/Script/ViewSaveSystem.cs b/Example/SaveSystem/Script/ViewSaveSystem.cs index c9b17df..fd2b32c 100644 --- a/Example/SaveSystem/Script/ViewSaveSystem.cs +++ b/Example/SaveSystem/Script/ViewSaveSystem.cs @@ -23,11 +23,11 @@ namespace EGFramework.Examples.Test { { dataStudents.Add(new DataStudent("A" + stu, 20 + stu)); } - EGodotTable table = container.CreateNode("Teacher"); + EGodotTable table = container.CreateNode("Default"); table.InitData(dataStudents); IEGSaveData SqliteTest = this.EGSave().LoadDataFile("SaveData/test.db"); - EGodotSaveTable PersonTable = container.CreateNode("Person"); + EGodotSaveTable PersonTable = container.CreateNode("SQLite"); PersonTable.InitSaveData(SqliteTest); PersonTable.InitData("person"); diff --git a/addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotSaveTable.cs b/addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotSaveTable.cs index 9324587..84be5c6 100644 --- a/addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotSaveTable.cs +++ b/addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotSaveTable.cs @@ -36,8 +36,8 @@ namespace EGFramework.UI InitTitle(typeof(T).EGenerateDictiontaryByType()); InitRowData(null); InitPageMenu(); - } + public void QueryPageData() where T : new() { diff --git a/addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotTable.cs b/addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotTable.cs index a0f9b62..ff44a41 100644 --- a/addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotTable.cs +++ b/addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotTable.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using System.Linq; using System.Reflection; @@ -28,6 +29,10 @@ namespace EGFramework.UI protected List> TableData { set; get; } + protected Dictionary EmptyData { set; get; } + + protected EasyEvent> AddData { set; get; } = new EasyEvent>(); + /// /// The max data count for one page. /// @@ -47,12 +52,28 @@ namespace EGFramework.UI PageAdapter.Reload(count, PageLimit); } this.Vertical = true; + EmptyData = typeof(T).EGenerateEmptyDictiontaryByType(); InitFunctionMenu(); InitTitle(typeof(T).EGenerateDictiontaryByType()); InitRowData(tableData.EGenerateDictionaryByGroup()); InitPageMenu(); } + public virtual void OnAddData(Dictionary data) + { + GD.Print("Add : " + data["Name"]); + string primaryKey = data.EGetDefaultPrimaryKey(); + if (primaryKey != "") + { + data[primaryKey] = TableData.Count.ToString(); + } + TableData.Add(new Dictionary(data)); + PageAdapter.DataLength++; + PageAdapter.Reload(PageAdapter.DataLength, PageLimit); + InitPageData(); + OnPageChanged.Invoke(); + } + public virtual void InitFunctionMenu() { @@ -60,6 +81,16 @@ namespace EGFramework.UI { FunctionContainer = this.CreateNode("FunctionContainer"); FunctionContainer.Vertical = false; + + Button add = FunctionContainer.CreateNode