From f29e22f0767ab930317ef5aac74defe3fdbc1771 Mon Sep 17 00:00:00 2001 From: Cj <161484149+CJ-SPT@users.noreply.github.com> Date: Fri, 14 Jun 2024 11:53:43 -0400 Subject: [PATCH] Hook up lists and make tree work with null --- AssemblyRemapperGUI/Form1.cs | 16 ++-- AssemblyRemapperGUI/Utils/GUI.cs | 130 ++++++++++++++++++++++++++++--- 2 files changed, 128 insertions(+), 18 deletions(-) diff --git a/AssemblyRemapperGUI/Form1.cs b/AssemblyRemapperGUI/Form1.cs index 2fb74ee..b8cf6d1 100644 --- a/AssemblyRemapperGUI/Form1.cs +++ b/AssemblyRemapperGUI/Form1.cs @@ -65,14 +65,14 @@ namespace AssemblyRemapperGUI FieldCount = FieldCountEnabled.GetCount(FieldCountUpDown), PropertyCount = PropertyCountEnabled.GetCount(PropertyCountUpDown), NestedTypeCount = NestedTypeCountEnabled.GetCount(NestedTypeCountUpDown), - IncludeMethods = [], - ExcludeMethods = [], - IncludeFields = [], - ExcludeFields = [], - IncludeProperties = [], - ExcludeProperties = [], - IncludeNestedTypes = [], - ExcludeNestedTypes = [], + IncludeMethods = GUI.GetAllEntriesFromListBox(MethodIncludeBox), + ExcludeMethods = GUI.GetAllEntriesFromListBox(MethodExcludeBox), + IncludeFields = GUI.GetAllEntriesFromListBox(FieldIncludeBox), + ExcludeFields = GUI.GetAllEntriesFromListBox(FieldExcludeBox), + IncludeProperties = GUI.GetAllEntriesFromListBox(PropertiesIncludeBox), + ExcludeProperties = GUI.GetAllEntriesFromListBox(PropertiesExcludeBox), + IncludeNestedTypes = GUI.GetAllEntriesFromListBox(NestedTypesIncludeBox), + ExcludeNestedTypes = GUI.GetAllEntriesFromListBox(NestedTypesExcludeBox), } }; diff --git a/AssemblyRemapperGUI/Utils/GUI.cs b/AssemblyRemapperGUI/Utils/GUI.cs index 92164f4..bf9bccb 100644 --- a/AssemblyRemapperGUI/Utils/GUI.cs +++ b/AssemblyRemapperGUI/Utils/GUI.cs @@ -1,4 +1,5 @@ using AssemblyRemapper.Models; +using AssemblyRemapper.Utils; namespace RemapperGUI.Utils; @@ -52,16 +53,25 @@ internal static class GUI var remapTreeItem = new TreeNode($"Remap: {model.NewTypeName}"); - var forceRenameNode = new TreeNode($"Force Rename: {model.UseForceRename}"); - var ispublicNode = new TreeNode($"IsPublic: {isPublic}"); - var isAbstractNode = new TreeNode($"IsAbstract: {isAbstract}"); - var isInterfaceNode = new TreeNode($"IsInterface: {isInterface}"); - var IsEnumNode = new TreeNode($"IsEnum: {isEnum}"); - var IsNestedNode = new TreeNode($"IsNested: {isNested}"); - var IsSealedNode = new TreeNode($"IsSealed: {IsSealed}"); - var HasAttrNode = new TreeNode($"HasAttribute: {HasAttribute}"); - var IsDerivedNode = new TreeNode($"IsDerived: {IsDerived}"); - var HasGenericsNode = new TreeNode($"HasGenericParameters: {HasGenericParameters}"); + var forceRenameNode = new TreeNode($"Force Rename: {(model.UseForceRename ? model.UseForceRename : "Disabled")}"); + + var ispublicNode = new TreeNode($"IsPublic: {(isPublic != null ? isPublic : "Disabled")}"); + + var isAbstractNode = new TreeNode($"IsAbstract: {(isAbstract != null ? isAbstract : "Disabled")}"); + + var isInterfaceNode = new TreeNode($"IsInterface: {(isInterface != null ? isInterface : "Disabled")}"); + + var IsEnumNode = new TreeNode($"IsEnum: {(isEnum != null ? isEnum : "Disabled")}"); + + var IsNestedNode = new TreeNode($"IsNested: {(isNested != null ? isNested : "Disabled")}"); + + var IsSealedNode = new TreeNode($"IsSealed: {(IsSealed != null ? IsSealed : "Disabled")}"); + + var HasAttrNode = new TreeNode($"HasAttribute: {(HasAttribute != null ? HasAttribute : "Disabled")}"); + + var IsDerivedNode = new TreeNode($"IsDerived: {(IsDerived != null ? IsDerived : "Disabled")}"); + + var HasGenericsNode = new TreeNode($"HasGenericParameters: {(HasGenericParameters != null ? HasGenericParameters : "Disabled")}"); remapTreeItem.Nodes.Add(forceRenameNode); remapTreeItem.Nodes.Add(ispublicNode); @@ -74,6 +84,106 @@ internal static class GUI remapTreeItem.Nodes.Add(IsDerivedNode); remapTreeItem.Nodes.Add(HasGenericsNode); + if (model.SearchParams.IncludeMethods.Count > 0) + { + var includeMethodsNode = + GenerateNodeFromList(model.SearchParams.IncludeMethods, "Include Methods"); + + remapTreeItem.Nodes.Add(includeMethodsNode); + } + + if (model.SearchParams.ExcludeMethods.Count > 0) + { + var excludeMethodsNode = + GenerateNodeFromList(model.SearchParams.ExcludeMethods, "Exclude Methods"); + + remapTreeItem.Nodes.Add(excludeMethodsNode); + } + + if (model.SearchParams.IncludeFields.Count > 0) + { + var includeFieldsNode = + GenerateNodeFromList(model.SearchParams.IncludeFields, "Include Fields"); + + remapTreeItem.Nodes.Add(includeFieldsNode); + } + + if (model.SearchParams.ExcludeFields.Count > 0) + { + var excludeFieldsNode = + GenerateNodeFromList(model.SearchParams.ExcludeFields, "Exclude Fields"); + + remapTreeItem.Nodes.Add(excludeFieldsNode); + } + + if (model.SearchParams.IncludeProperties.Count > 0) + { + var includeProperties = + GenerateNodeFromList(model.SearchParams.IncludeProperties, "Include Properties"); + + remapTreeItem.Nodes.Add(includeProperties); + } + + if (model.SearchParams.ExcludeProperties.Count > 0) + { + var excludeProperties = + GenerateNodeFromList(model.SearchParams.ExcludeProperties, "Exclude Properties"); + + remapTreeItem.Nodes.Add(excludeProperties); + } + + if (model.SearchParams.IncludeNestedTypes.Count > 0) + { + var includeNestedTypes = + GenerateNodeFromList(model.SearchParams.IncludeNestedTypes, "Include Nested Types"); + + remapTreeItem.Nodes.Add(includeNestedTypes); + } + + if (model.SearchParams.IncludeNestedTypes.Count > 0) + { + var excludeNestedTypes = + GenerateNodeFromList(model.SearchParams.ExcludeNestedTypes, "Exclude Nested Types"); + + remapTreeItem.Nodes.Add(excludeNestedTypes); + } + return remapTreeItem; } + + /// + /// Generates a new node from a list of strings + /// + /// + /// + /// A new tree node, or null if the provided list is empty + private static TreeNode GenerateNodeFromList(List items, string name) + { + var node = new TreeNode(name); + + foreach (var item in items) + { + node.Nodes.Add(item); + } + + return node; + } + + /// + /// Buils a list of strings from list box entries + /// + /// + /// + public static List GetAllEntriesFromListBox(ListBox lb) + { + var tmp = new List(); + + foreach (var entry in lb.Items) + { + Logger.Log(entry); + tmp.Add((string)entry); + } + + return tmp; + } } \ No newline at end of file