AbstractAbstract ReadonlyDisplayUser-facing label shown in the view-mode switcher (e.g. "Grid", "Tag Cloud").
Abstract ReadonlyIconFont Awesome icon class shown in the switcher (e.g. "fa-solid fa-table").
Abstract ReadonlyNameStable internal key for the view type — matches the DriverClass column on the
MJ: View Types entity and the @RegisterClass registration key
(e.g. "GridViewType", "CardsViewType").
Optional ReadonlyPropOptional Angular component class for this view type's configuration prop-sheet (honors IViewPropSheet). Undefined when the view type has no configurable options.
Abstract ReadonlyRendererThe Angular component class that renders this view type. The host instantiates / mounts this component and feeds it data per the IViewRenderer contract.
ReadonlyUsesDefault: this view type uses its own opaque per-view-type config (stored in
DisplayState.viewTypeConfigs). Override to true in a view type that renders the
canonical grid columns (see IViewTypeDescriptor.UsesCanonicalGridState).
Default: nothing to preload. Override in subclasses whose availability predicate needs async data (e.g. the Cluster view type loading which entities have Entity Documents).
Optional_provider: IMetadataProviderDefault availability: available for every entity. Override in subclasses that have requirements (e.g. Timeline needs a date field, Map needs geocoding).
Optional_provider: IMetadataProvider
Abstract base class for all view-type descriptors.
Concrete descriptors extend this and register themselves with the ClassFactory:
The ViewTypeEngine resolves descriptors by
DriverClassname usingMJGlobal.Instance.ClassFactory.CreateInstance(BaseViewTypeDescriptor, driverClass).NOTE: This class is registered with the ClassFactory itself (via subclasses) and is intentionally NOT decorated — only concrete subclasses carry
@RegisterClass.