Fluent model
Mateu is not only declarative.
It also provides a fluent model made of records and interfaces that implement Component.
This model lets you build pages, apps and reusable UI blocks programmatically.
Core fluent types
Section titled “Core fluent types”Represents an application shell.
Important fields include:
- route
- homeRoute
- pageTitle
- title
- subtitle
- menu
- widgets
- variant
- logo
App is the fluent equivalent of a full application shell.
Represents a full page with:
- title
- subtitle
- breadcrumbs
- header
- footer
- content
- toolbar
- buttons
- badges
- kpis
- actions
Use it when you want explicit control over a page structure.
Represents a fluent form with:
- header
- footer
- content
- toolbar
- buttons
Use it when you want form composition without relying only on inferred declarative fields.
Listing
Section titled “Listing”Represents a listing/table/card-style collection page.
Important capabilities include:
- columns
- filters
- toolbar
- search
- selection
- paging
- lazy loading
- detail path
- header/footer content
Use it for searchable collections and listing screens.
MenuBar
Section titled “MenuBar”Represents a fluent menu bar built from Actionable options.
Use it when navigation must be created explicitly.
Action model
Section titled “Action model”Action
Section titled “Action”Fluent representation of action behavior.
It includes settings for:
- background
- validationRequired
- confirmationRequired
- rowsSelectedRequired
- href
- js
- sse
- modal config
- custom events
This matches the same conceptual space as the declarative @Action.
Trigger model
Section titled “Trigger model”Mateu also exposes a fluent trigger model.
Core types include:
TriggerOnLoadTriggerOnSuccessTriggerOnErrorTriggerOnValueChangeTriggerOnEnterTriggerOnCustomEventTrigger
Use the fluent trigger model when dynamic interaction behavior should be described directly in code instead of only via annotations.
UI metadata
Section titled “UI metadata”Small fluent metadata object with:
faviconpageTitlehomeRoute
Useful in combination with UISupplier.
Mental model
Section titled “Mental model”The fluent model gives you:
- explicit component trees
- explicit page composition
- explicit app composition
- a way to mix reusable UI blocks into declarative screens
Use declarative by default.
Use fluent when you need more control.