Class SerenityHubCatalogGridBuilder
Shared rendering for a category-filtered grid of SerenityHubToolCards — Create, Browse, and
Advanced differ only by which catalog category they render (spec §1: no view hardcodes its own tool list),
so the filter + grid-building logic lives here once instead of being duplicated three times.
Since UX feedback round 4, the result is no longer one flat grid — entries are split into collapsible
Foldout sections by SerenityHubCatalogGrouper so a 30+ item view stays scannable.
SerenityHubValidateView groups into its own fixed Validators/Tools split instead, but reuses
BuildSection(string, IReadOnlyList<VisualElement>) for the identical Foldout chrome.
Inheritance
SerenityHubCatalogGridBuilder
Assembly: Serenity.UnityLocalization.Installation.Editor.dll
Syntax
public static class SerenityHubCatalogGridBuilder
Methods
BuildGrid(IReadOnlyList<SerenityHubToolEntry>, SerenityHubContext)
Declaration
public static VisualElement BuildGrid(IReadOnlyList<SerenityHubToolEntry> entries, SerenityHubContext context)
Parameters
Returns
| Type |
Description |
| VisualElement |
|
BuildSection(string, IReadOnlyList<VisualElement>)
Builds one titled, default-expanded Foldout section wrapping cardRoots in a card
grid. Public so SerenityHubValidateView can render its own Validators/Tools split with the
same chrome instead of duplicating the Foldout-plus-grid construction.
Declaration
public static VisualElement BuildSection(string title, IReadOnlyList<VisualElement> cardRoots)
Parameters
Returns
| Type |
Description |
| VisualElement |
|
FilterByCategory(IReadOnlyList<SerenityHubToolEntry>, SerenityHubCategory)
Returns every catalog entry belonging to category, in catalog order.
Declaration
public static IReadOnlyList<SerenityHubToolEntry> FilterByCategory(IReadOnlyList<SerenityHubToolEntry> catalogEntries, SerenityHubCategory category)
Parameters
Returns