diff --git a/addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotMenu.cs b/addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotMenu.cs index 7a279f0..2bde392 100644 --- a/addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotMenu.cs +++ b/addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotMenu.cs @@ -5,14 +5,21 @@ namespace EGFramework.UI { public partial class EGodotMenu : Control, IEGFramework { - public IOCContainer PageContainer { set; get; } + public Dictionary PageContainer { set; get; } = new Dictionary(); - public void RegisterPage(T page) where T : Control + public void RegisterPage(string name,T page) where T : Control { - PageContainer.Register(page); + if (PageContainer.ContainsKey(name)) + { + PageContainer[name] = page; + } + else + { + PageContainer.Add(name,page); + } } - public void OpenPage(T page) where T : Control + public void OpenPage(string name,T page) where T : Control { page.Visible = true; diff --git a/addons/EGFramework/Module/GenerateTools/Templete/Variant/EGDataStruct.cs b/addons/EGFramework/Module/GenerateTools/Templete/Variant/EGDataStruct.cs index 4e025f8..8985e3f 100644 --- a/addons/EGFramework/Module/GenerateTools/Templete/Variant/EGDataStruct.cs +++ b/addons/EGFramework/Module/GenerateTools/Templete/Variant/EGDataStruct.cs @@ -1,10 +1,5 @@ using System; using System.Collections.Generic; -using System.IO; -using System.Linq; -using Godot; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; namespace EGFramework { @@ -61,125 +56,4 @@ namespace EGFramework return Value; } } - - public interface IEGTree - { - public string Name { set; get; } - public IEGTree GetParent(); - public void SetParent(IEGTree tree); - public IEnumerable GetChilds(); - public void AppendTree(IEGTree tree); - - } - - public class EGTree : IEGTree - { - public string Name { set; get; } - - public string StrValue { set; get; } - public long IntegerValue { set; get; } - public byte[] ByteValue { set; get; } - public float FloatValue { set; get; } - public bool BoolValue { set; get; } - - public IEGTree Parent { set; get; } - public List Childs { set; get; } = new List(); - - public EGTree() - { - } - - public EGTree(string name) - { - this.Name = name; - } - - public void AppendTree(IEGTree tree) - { - tree.SetParent(this); - Childs.Add(tree); - } - - public virtual IEnumerable GetChilds() - { - return Childs; - } - - public virtual IEGTree GetParent() - { - return Parent; - } - - public void SetParent(IEGTree tree) - { - this.Parent = tree; - } - } - - public static class EGTreeFactory - { - public static EGTree CreateTreeByJson(string json) - { - JsonTextReader reader = new JsonTextReader(new StringReader(json)); - Stack TreeStack = new Stack(); - EGTree resultTree = new EGTree(); - EGTree lastTree = null; - while (reader.Read()) - { - if (reader.TokenType == JsonToken.StartObject) - { - if (lastTree != null) - { - TreeStack.Push(lastTree); - } - } - if (reader.TokenType == JsonToken.EndObject) - { - if(TreeStack.Count>0) - TreeStack.Pop(); - } - - if (reader.TokenType == JsonToken.PropertyName) - { - EGTree newTree = new EGTree(); - if (reader.Value != null) - { - newTree.Name = reader.Value.ToString(); - } - if (TreeStack.Count > 0) - { - TreeStack.Peek().AppendTree(newTree); - } - else - { - resultTree.AppendTree(newTree); - } - lastTree = newTree; - } - - if (lastTree != null && reader.TokenType == JsonToken.Integer) - { - lastTree.IntegerValue = (long)reader.Value; - } - if (lastTree != null && reader.TokenType == JsonToken.Boolean) - { - lastTree.BoolValue = (bool)reader.Value; - } - if (lastTree != null && reader.TokenType == JsonToken.String) - { - lastTree.StrValue = (string)reader.Value; - } - if (lastTree != null && reader.TokenType == JsonToken.Float) - { - lastTree.FloatValue = (float)reader.Value; - } - if (lastTree!=null && reader.TokenType == JsonToken.Bytes) - { - lastTree.ByteValue = (byte[])reader.Value; - } - } - return resultTree; - } - } - } \ No newline at end of file diff --git a/addons/EGFramework/Module/GenerateTools/Templete/Variant/EGTree.cs b/addons/EGFramework/Module/GenerateTools/Templete/Variant/EGTree.cs new file mode 100644 index 0000000..81134ed --- /dev/null +++ b/addons/EGFramework/Module/GenerateTools/Templete/Variant/EGTree.cs @@ -0,0 +1,127 @@ +using System.Collections.Generic; +using System.IO; +using Newtonsoft.Json; + +namespace EGFramework +{ + public interface IEGTree + { + public string Name { set; get; } + public IEGTree GetParent(); + public void SetParent(IEGTree tree); + public IEnumerable GetChilds(); + public void AppendTree(IEGTree tree); + + } + + public class EGTree : IEGTree + { + public string Name { set; get; } + + public string StrValue { set; get; } + public long IntegerValue { set; get; } + public byte[] ByteValue { set; get; } + public float FloatValue { set; get; } + public bool BoolValue { set; get; } + + public IEGTree Parent { set; get; } + public List Childs { set; get; } = new List(); + + public EGTree() + { + } + + public EGTree(string name) + { + this.Name = name; + } + + public void AppendTree(IEGTree tree) + { + tree.SetParent(this); + Childs.Add(tree); + } + + public virtual IEnumerable GetChilds() + { + return Childs; + } + + public virtual IEGTree GetParent() + { + return Parent; + } + + public void SetParent(IEGTree tree) + { + this.Parent = tree; + } + } + + public static class EGTreeFactory + { + public static EGTree CreateTreeByJson(string json) + { + JsonTextReader reader = new JsonTextReader(new StringReader(json)); + Stack TreeStack = new Stack(); + EGTree resultTree = new EGTree(); + EGTree lastTree = null; + while (reader.Read()) + { + if (reader.TokenType == JsonToken.StartObject) + { + if (lastTree != null) + { + TreeStack.Push(lastTree); + } + } + if (reader.TokenType == JsonToken.EndObject) + { + if(TreeStack.Count>0) + TreeStack.Pop(); + } + + if (reader.TokenType == JsonToken.PropertyName) + { + EGTree newTree = new EGTree(); + if (reader.Value != null) + { + newTree.Name = reader.Value.ToString(); + } + if (TreeStack.Count > 0) + { + TreeStack.Peek().AppendTree(newTree); + } + else + { + resultTree.AppendTree(newTree); + } + lastTree = newTree; + } + + if (lastTree != null && reader.TokenType == JsonToken.Integer) + { + lastTree.IntegerValue = (long)reader.Value; + } + if (lastTree != null && reader.TokenType == JsonToken.Boolean) + { + lastTree.BoolValue = (bool)reader.Value; + } + if (lastTree != null && reader.TokenType == JsonToken.String) + { + lastTree.StrValue = (string)reader.Value; + } + if (lastTree != null && reader.TokenType == JsonToken.Float) + { + lastTree.FloatValue = (float)reader.Value; + } + if (lastTree!=null && reader.TokenType == JsonToken.Bytes) + { + lastTree.ByteValue = (byte[])reader.Value; + } + } + return resultTree; + } + } + +} \ No newline at end of file