Browse Source

fixed page adapter page

master
jkpete 2 months ago
parent
commit
fb32fb41f5
  1. 2
      Example/SaveSystem/Script/ViewSaveSystem.cs
  2. 2
      addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotEditParam.cs
  3. 2
      addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotRowData.cs
  4. 75
      addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotTable.cs
  5. 15
      addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotTableRowData.cs

2
Example/SaveSystem/Script/ViewSaveSystem.cs

@ -15,7 +15,7 @@ namespace EGFramework.Examples.Test{ @@ -15,7 +15,7 @@ namespace EGFramework.Examples.Test{
{
Container container = this.GetNode<TabContainer>("TabContainer");
DataStudent dataStudent = new DataStudent("S", 18);
DataStudent dataStudent = new DataStudent(null, 18);
DataStudent dataStudent2 = new DataStudent("F", 20);
List<DataStudent> dataStudents = new List<DataStudent>();
dataStudents.Add(dataStudent);

2
addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotEditParam.cs

@ -18,7 +18,7 @@ namespace EGFramework.UI @@ -18,7 +18,7 @@ namespace EGFramework.UI
public override void Init(KeyValuePair<string, object> editValue)
{
base.Init(editValue);
if (editValue.Value is string)
if (editValue.Value is string || editValue.Value is null)
{
this.ParamEdit = new LineEdit();
ParamEdit.Name = "ParamEdit";

2
addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotRowData.cs

@ -59,7 +59,7 @@ namespace EGFramework.UI @@ -59,7 +59,7 @@ namespace EGFramework.UI
this.List.AddChild(new Label()
{
Name = kv.Key,
Text = kv.Value.ToString(),
Text = kv.Value?.ToString(),
HorizontalAlignment = HorizontalAlignment.Center,
SizeFlagsHorizontal = Control.SizeFlags.ExpandFill
});

75
addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotTable.cs

@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Security.Cryptography.X509Certificates;
using Godot;
namespace EGFramework.UI{
@ -11,7 +12,7 @@ namespace EGFramework.UI{ @@ -11,7 +12,7 @@ namespace EGFramework.UI{
public partial class EGodotTable : BoxContainer, IEGFramework, IEGodotTable
{
public BoxContainer FunctionContainer { set; get; }
public EGodotTableRowData Title { set; get; }
public EGodotRowData Title { set; get; }
public BoxContainer RowDataContainer { set; get; }
public ScrollContainer RowDataScroll { set; get; }
public BoxContainer PageContainer { set; get; }
@ -21,6 +22,9 @@ namespace EGFramework.UI{ @@ -21,6 +22,9 @@ namespace EGFramework.UI{
private EGodotTablePageAdapter PageAdapter { set; get; }
private bool IsSearched { set; get; }
public Color MainColor { set; get; } = new Color();
public Color MinorColor { set; get; } = new Color();
/// <summary>
/// The max data count for one page.
/// </summary>
@ -59,7 +63,8 @@ namespace EGFramework.UI{ @@ -59,7 +63,8 @@ namespace EGFramework.UI{
{
if (Title == null)
{
Title = this.CreateNode<EGodotTableRowData>("TitleContainer");
Title = this.CreateNode<EGodotRowData>("TitleContainer");
titleData.Add("Operate", "");
Title.Init(titleData);
}
else
@ -75,6 +80,10 @@ namespace EGFramework.UI{ @@ -75,6 +80,10 @@ namespace EGFramework.UI{
{
EGodotTableRowData rowData = this.CreateNode<EGodotTableRowData>("row" + dataPointer);
rowData.Init(row);
rowData.OnModify.Register(data=>
{
this.EGEditDialog(data,rowData.OnDataEdit,"Modify");
});
dataPointer++;
}
}
@ -84,6 +93,43 @@ namespace EGFramework.UI{ @@ -84,6 +93,43 @@ namespace EGFramework.UI{
{
PageContainer = this.CreateNode<BoxContainer>("PageContainer");
PageContainer.Vertical = false;
PageContainer.Alignment = AlignmentMode.End;
Label labelCount = PageContainer.CreateNode<Label>("to");
labelCount.Text = "Data count : "+PageAdapter.DataLength;
Control empty1 = PageContainer.CreateNode<Control>("empty1");
empty1.CustomMinimumSize = new Vector2(32, 0);
Button firstPage = PageContainer.CreateNode<Button>("firstPage");
firstPage.Text = "<<";
Button lastPage = PageContainer.CreateNode<Button>("lastPage");
lastPage.Text = "<";
Label currentPage = PageContainer.CreateNode<Label>("currenLabel");
currentPage.Text = PageAdapter.CurrentPage.ToString();
Button nextPage = PageContainer.CreateNode<Button>("next");
nextPage.Text = ">";
Button endPage = PageContainer.CreateNode<Button>("firstPage");
endPage.Text = ">>";
Control empty2 = PageContainer.CreateNode<Control>("empty2");
empty2.CustomMinimumSize = new Vector2(32, 0);
Label labelTo = PageContainer.CreateNode<Label>("to");
labelTo.Text = "To";
SpinBox inputPage = PageContainer.CreateNode<SpinBox>("pageEdit");
inputPage.SetSize(new Vector2(120, 60));
inputPage.MinValue = 0;
inputPage.MaxValue = PageAdapter.MaxPage;
inputPage.Alignment = HorizontalAlignment.Center;
Label labelPage = PageContainer.CreateNode<Label>("page");
labelPage.Text = "page";
}
}
@ -104,31 +150,6 @@ namespace EGFramework.UI{ @@ -104,31 +150,6 @@ namespace EGFramework.UI{
// self.AddChild(Table);
// return Table;
// }
// public static EGodotTable CreateTable<T>(this Node self, IEnumerable<T> tableData, string tableName = "ObjectTable", int limit = 0)
// {
// EGodotTable Table = new EGodotTable();
// Table.Name = tableName;
// MemberInfo[] propertyNames = typeof(T).GetProperties();
// MemberInfo[] fieldNames = typeof(T).GetFields();
// MemberInfo[] memberInfos = propertyNames.Concat(fieldNames).ToArray();
// string[] propertyName = new string[memberInfos.Length];
// int dataPointer = 0;
// for (int i = 0; i < memberInfos.Length; i++)
// {
// propertyName[i] = memberInfos[i].Name;
// }
// Table.CreateRowData(propertyName, "Title");
// foreach (T t in tableData)
// {
// string[] s = t.GetType().GetProperties().Select(p => p.GetValue(t)?.ToString()).ToArray();
// string[] a = t.GetType().GetFields().Select(p => p.GetValue(t)?.ToString()).ToArray();
// string[] result = s.Concat(a).ToArray();
// Table.CreateRowData(result, "tableRowData" + dataPointer);
// dataPointer++;
// }
// self.AddChild(Table);
// return Table;
// }
}
public class EGodotTablePageAdapter
{

15
addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotTableRowData.cs

@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using Godot;
using Tmds.Linux;
namespace EGFramework.UI{
public partial class EGodotTableRowData : EGodotRowData
@ -9,6 +10,9 @@ namespace EGFramework.UI{ @@ -9,6 +10,9 @@ namespace EGFramework.UI{
public Button Modify { get; set; }
public Button Delete { get; set; }
public EasyEvent<Dictionary<string, object>> OnModify { set; get; } = new EasyEvent<Dictionary<string, object>>();
public EasyEvent OnDelete { set; get; } = new EasyEvent();
public override void Init(Dictionary<string, object> data)
{
base.Init(data);
@ -26,14 +30,14 @@ namespace EGFramework.UI{ @@ -26,14 +30,14 @@ namespace EGFramework.UI{
Delete.Text = "Delete";
Delete.SizeFlagsHorizontal = Control.SizeFlags.ExpandFill;
Operate.AddChild(Delete);
Modify.Connect("pressed",Callable.From(OnEdit));
Delete.Connect("pressed",Callable.From(OnDelete));
Modify.Connect("pressed", Callable.From(OnEdit));
Delete.Connect("pressed", Callable.From(OnDelete.Invoke));
}
public void OnEdit(){
if(Data == null){
return ;
}
this.EGEditDialog(Data,OnDataEdit,"修改");
OnModify.Invoke(Data);
}
public virtual void OnDataEdit(Dictionary<string, object> e)
@ -47,10 +51,5 @@ namespace EGFramework.UI{ @@ -47,10 +51,5 @@ namespace EGFramework.UI{
base.RefreshData(data);
Operate.ToEnd();
}
public void OnDelete()
{
}
}
}
Loading…
Cancel
Save