Parent: #320
Summary
Allow resources to contribute additional tabs to ResourceTabs, or replace/remove default tabs. Currently, ResourceTabs hardcodes four tabs (Data, Attributes, Operations, Capabilities) with no way for consumers to customize them.
Motivation
The /subsystem=elytron/credential-store=* resource would benefit from an "Aliases" tab alongside the default tabs. Similar use cases exist for other resources that have domain-specific data that doesn't fit into the generic attribute view (e.g., deployments content, messaging queues, datasource connection pools).
Capabilities
- Add tabs — inject extra tabs after the "Data" tab (or at a specified position)
- Remove tabs — suppress default tabs that aren't useful for a resource (e.g., hide "Capabilities" when empty)
- Replace tab content — swap the content of an existing tab with a custom implementation
Registration
A registry keyed by Environment + AddressTemplate. When ResourceTabs is constructed for a matching template, the registry provides the tab customizations.
Open Questions
- Should custom tabs receive the same
Metadata and loaded ModelNode that the Data tab uses, or should they load their own data?
- How should tab ordering work when multiple extensions match (e.g., a wildcard and an exact template)?
- Should there be a standard interface/abstract class for custom tab content?
Parent: #320
Summary
Allow resources to contribute additional tabs to
ResourceTabs, or replace/remove default tabs. Currently,ResourceTabshardcodes four tabs (Data, Attributes, Operations, Capabilities) with no way for consumers to customize them.Motivation
The
/subsystem=elytron/credential-store=*resource would benefit from an "Aliases" tab alongside the default tabs. Similar use cases exist for other resources that have domain-specific data that doesn't fit into the generic attribute view (e.g., deployments content, messaging queues, datasource connection pools).Capabilities
Registration
A registry keyed by
Environment+AddressTemplate. WhenResourceTabsis constructed for a matching template, the registry provides the tab customizations.Open Questions
Metadataand loadedModelNodethat the Data tab uses, or should they load their own data?