private void NewChild_Click(object sender, EventArgs e) { var treeT = GetCurrentTree(); var tree = treeT.Item1; var list = treeT.Item2; var table = treeT.Item3; var item = TreeToObject[tree.SelectedNode]; bool reload1 = false; ListEntry listItem; if (item is ListEntry) { listItem = (ListEntry)item; } else { var entry2 = (ListEntryEntry)item; //find the real class for this type listItem = Data.List1.FirstOrDefault(x => x.NameStringID == entry2.TypeStringID); //really should not allow this under normal circumstances, but we assume the user knows what they are doing. if (listItem == null) { listItem = Data.List2.FirstOrDefault(x => x.NameStringID == entry2.TypeStringID); } if (listItem == null) { return; //this is likely a primitive type. can't add child fields to a primitive type. } reload1 = true; } var entry = new ListEntryEntry() { NameStringID = (table == StringTableType.Derived)?0:GetNewNameID(StringTableType.Field), Parent = listItem, }; listItem.Entries.Add(entry); ReloadTree(tree, list); ReloadTree(TreeView1S, Data.List1); var current = new List <TreeNode>(); foreach (TreeNode node in tree.Nodes) { current.Add(node); } tree.SelectedNode = TreeWhere(current, x => TreeToObject[x] == entry); }
private string TypeName(ListEntryEntry child) { var typeName = Data.GetString(child.TypeStringID); switch ((StructFieldClassification)child.TypeClass) { case StructFieldClassification.List: return(typeName + "[]"); case StructFieldClassification.Map: return("Map<uint, " + typeName + ">"); default: return(typeName); } }
public TSODataMaskWrapper(ListEntryEntry item) { Item = item; }
public TSODataStructWrapper(ListEntryEntry item) { Item = item; }