protected virtual void RenderItemHeader(Template template) { var db = EditorAssetLoader.GetDB(); var currentLabel = Functions.ExtractNameFromType(template.GetType()); if (currentLabel != lastLabel && db.SelectedSort == SortOption.TYPES) { EditorGUILayout.BeginHorizontal(); GUILayout.Label(currentLabel, EditorStyles.boldLabel); Style.Spacing(); EditorGUILayout.EndHorizontal(); } EditorGUILayout.BeginHorizontal(EditorStyles.toolbar); bool prevValue = template.Show; var label = Style.RichTextLabelType(template.Name, null, template.GetType()); template.Show = EditorGUILayout.Foldout( template.Show, $"<color={Style.GetHexFromColor(Style.Secondary)}>{template.ID}</color> {label}", true, new GUIStyle(EditorStyles.foldout) { richText = true }); if (template.Show != prevValue) { DatabaseWindow.SetActiveRecord(template.Show ? template.ID : -1); } lastLabel = currentLabel; if (Style.ToolBarButton("Clone", Status.Secondary)) { var newTemplate = DatabaseWindow.ActiveCollection.Clone(template); DatabaseWindow.SetActiveRecord(newTemplate.ID); } if (Style.ToolBarButton("Delete", Status.Danger)) { DatabaseWindow.ActiveCollection.Remove(template); } EditorGUILayout.EndHorizontal(); }
protected virtual List <Template> GetCollectionTemplates() { var db = EditorAssetLoader.GetDB(); var collection = DatabaseWindow.ActiveCollection; var list = db.Get(collection.GetType()).List(); switch (db.SelectedSort) { case SortOption.AZ: { list = list.OrderBy(x => x.ID).ToList(); break; } case SortOption.ZA: { list = list.OrderByDescending(x => x.ID).ToList(); break; } case SortOption.TYPES: { list = list.OrderBy(x => x.GetType().ToString()).ToList(); break; } default: break; } if (!String.IsNullOrEmpty(db.SearchQuery)) { list = list.Where(x => x.Name.IndexOf(db.SearchQuery, 0, StringComparison.CurrentCultureIgnoreCase) != -1).ToList(); } return(list); }