public void ConfirmInput() { string path = levelPathInput_.value; Predicate <HierarchyComponentData> search = (x) => string.Equals(x.Path, path, StringComparison.CurrentCultureIgnoreCase); HierarchyComponentData item = Current.Entries.Find(search) ?? NavigationElements.Find(search); if (item != null) { switch (item.Hierarchy) { case HierarchyLevel.Folder: Current = item as HierarchyComponentFolder; GenerateComponentNameList(); break; case HierarchyLevel.Special: switch (item.Path) { case "$parent-folder": Current = Current.Parent ?? Current; break; case "$root-folder": Current = Root; break; } GenerateComponentNameList(); break; } } }
static AddCustomComponentMenuLogic() { NavigationElements = new List <HierarchyComponentData>(); NavigationElements.Add(new HierarchyComponentSpecial("Parent Folder", "parent-folder")); NavigationElements.Add(new HierarchyComponentSpecial("Root Folder", "root-folder")); Root = new HierarchyComponentFolder("#root#>", null); Root.CreateFile("Text Effects/Advanced Text Mesh Settings", "com.customcampaign.textmeshsettings"); Root.CreateFile("Text Effects/Reveal Text Listener", "com.customcampaign.listeners/revealtext"); Root.CreateFile("Json Data", "com.customcampaign.generic/jsondata"); }
private void CreateButtons(HierarchyComponentFolder folder) { int sortIndex = 1; int sortLength = (folder.Entries.Count + NavigationElements.Count + sortIndex).ToString().Length; var subfolders = (from entry in folder.Entries where entry is HierarchyComponentFolder select entry).ToList(); var files = (from entry in folder.Entries where entry is HierarchyComponentFile select entry).ToList(); subfolders.Sort((x, y) => string.Compare(x.Name, y.Name)); files.Sort((x, y) => string.Compare(x.Name, y.Name)); if (Current.Parent != null) { CreateEntries(NavigationElements, new Color(0.68f, 0.83f, 0.38f)); } CreateEntries(subfolders, Colors.BlueCyanColors.lightSkyBlue); CreateEntries(files, Colors.white); void CreateEntries(List <HierarchyComponentData> entries, Color color) { foreach (var entry in entries) { string sort = sortIndex.ToString(); while (sort.Length < sortLength) { sort = $"0{sort}"; } ComponentEntry componentEntry = ComponentEntry.CreateEntry(entry, ClickOnEntry, DoubleClickOnEntry, true, color); componentEntry.sortString_ = sort; buttonList_.Add(componentEntry); ++sortIndex; } } }
private void OnEnable() { Current = Root; GenerateComponentNameList(); }