This is a legacy API. For new data API available since release 7.0, see Screen Controllers.
Frames are reusable parts of screens. Frames are included in screens using the frame XML element.
A frame controller must extend the AbstractFrame class.
You can create a frame in Studio using the Blank frame template.
Below are the rules of interaction between a frame and its enclosing screen:
Frame components can be referenced from a screen using dot:
List of screen components can be obtained from a frame controller by invoking
getComponent(component_id)method, but only if there is no component with the same name in the frame itself. I.e. frame components mask screen components.
Screen datasource can be obtained from a frame by invoking
getDsContext().get(ds_id)method or injection, or using
ds$ds_idin query, but only if the datasource with the same name is not declared in the frame itself (same as for components).
From a screen, frame datasource can be obtained only by iterating the
The screen commit causes commit of modified datasources of all frames included in the screen.