Browse Source

fixed row data

master
jkpete 3 months ago
parent
commit
fe4155580a
  1. 57
      addons/EGFramework/Module/GenerateTools/GodotUITemplete/EGodotTable.cs
  2. 12
      addons/EGFramework/Module/GenerateTools/GodotUITemplete/EGodotTableRowData.cs

57
addons/EGFramework/Module/GenerateTools/GodotUITemplete/EGodotTable.cs

@ -1,17 +1,66 @@ @@ -1,17 +1,66 @@
using System.Collections.Generic;
using Godot;
namespace EGFramework.UI{
public partial class EGodotTable : VBoxContainer,IEGFramework
{
public override void _Ready()
{
public HBoxContainer FunctionContainer { set; get; }
public HBoxContainer TitleContainer { set; get; }
public VBoxContainer RowDataContainer { set; get; }
public HBoxContainer PageContainer { set; get; }
public IEGSaveData SaveData { set; get; }
public Dictionary<string,string> TitleList { set; get; } = new Dictionary<string, string>();
private EGodotTablePageAdapter PageAdapter { set; get; }
private bool IsSearched { set; get; }
/// <summary>
/// The max data count for one page.
/// </summary>
/// <value></value>
[Export]
public int PageLimit { set; get; } = 10;
/// <summary>
/// Height mininum for RowDataContainer.
/// </summary>
/// <value></value>
[Export]
public int MinHeight { set; get; }
public void InitData<T>(IEGSaveData saveData,string key) where T: new(){
int count = saveData.GetDataCount(key);
if(PageAdapter == null){
PageAdapter = new EGodotTablePageAdapter(count,PageLimit);
}else{
PageAdapter.Reload(count,PageLimit);
}
}
public void InitReadOnlyData<T>(IEGSaveDataReadOnly saveData,string key)where T:new(){
public override void _ExitTree()
{
}
}
public class EGodotTablePageAdapter{
public int DataLength { set; get; }
public int CurrentPage { set; get; }
public int MaxPage { set; get; }
public int PageLimit { set; get; }
public EasyEvent OnLoad = new EasyEvent();
public EGodotTablePageAdapter(int dataLength,int pageLimit = 10){
this.DataLength = dataLength;
this.PageLimit = pageLimit;
this.MaxPage = dataLength/PageLimit+1;
this.CurrentPage = 1;
}
public void Reload(int dataLength,int pageLimit = 10){
this.DataLength = dataLength;
this.PageLimit = pageLimit;
this.MaxPage = dataLength/PageLimit+1;
this.CurrentPage = 1;
OnLoad.Invoke();
}
}
}

12
addons/EGFramework/Module/GenerateTools/GodotUITemplete/EGodotTableRowData.cs

@ -3,7 +3,7 @@ using System.Collections.Generic; @@ -3,7 +3,7 @@ using System.Collections.Generic;
using Godot;
namespace EGFramework.UI{
public partial class EGodotTableRowData : VBoxContainer,IEGFramework
public partial class EGodotTableRowData : PanelContainer,IEGFramework
{
public Button ItemHover { get; set; }
public ColorRect Line { get; set; }
@ -19,6 +19,12 @@ namespace EGFramework.UI{ @@ -19,6 +19,12 @@ namespace EGFramework.UI{
public void InitRowData(Dictionary<string,object> data){
this.Data = data;
BackGround = new ColorRect();
BackGround.Name = "BackGround";
BackGround.Color = new Color(0.5f,0.5f,1f);
BackGround.SizeFlagsHorizontal = SizeFlags.ExpandFill;
BackGround.SizeFlagsVertical = SizeFlags.ExpandFill;
this.AddChild(BackGround);
List = new HBoxContainer();
List.Name = "TableRow_"+Resource.GenerateSceneUniqueId();
List.SizeFlagsHorizontal = Control.SizeFlags.ExpandFill;
@ -57,9 +63,7 @@ namespace EGFramework.UI{ @@ -57,9 +63,7 @@ namespace EGFramework.UI{
OnDataEdit = e => {
};
}
public void RefreshRowData(){
this.AddThemeStyleboxOverride("panel",new StyleBoxEmpty());
}
public void OnEdit(){

Loading…
Cancel
Save