ObjectBehind and PageControler
Documentation status: guide — see Maturity and evidence.
The view runtime has a local behavioral layer. Keep its responsibilities separate from business objects.
Responsibilities
ObjectItem
business/conceptual state and business capabilities
ObjectBehind
local behavior attached to a page, frame or component
PageControler
local event bus and resolver for the page
PageModel
page-level functional state and coordination
DataSetsManager
registry of DataSet, DataSource and DataCursor surfaces
An ObjectBehind can initialize a page, refresh or select a local dataset, coordinate child views, control local visibility/navigation, translate a component event into an application action, and dispatch local visual events. Reusable business validation, domain rules, long-running coordination, persistence rules and integration logic belong outside it.
Typical lifecycle
view metadata loaded
-> PageControler created
-> page/frame ObjectBehind created
-> DataSetsManager assembled
-> components created and bound
-> local events dispatched
-> page behavior coordinates local data and state
-> view closes and local objects are released
Local event flow
user gesture
-> functional component
-> local visual/UX event
-> PageControler
-> PageModel or component ObjectBehind
-> local reaction
-> optional explicit escalation
A visual event is not automatically a business event, a server call, or a conceptual-memory mutation. Escalation should be explicit.
Event levels
Keep four levels distinct: local visual events, UXfc intention events, application coordination events, and business/process events. This separation is essential for local-first behavior and for keeping web or remote deployments from turning every UI interaction into a network call.