5.5.1.1.1. Frame
Frames are reusable parts of screens. Frames are included in screens using the frame XML element.
A frame controller must extend the AbstractFrame class.
Tip
|
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 host screen using dot:
frame_id.component_id
-
Host 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 usingds$ds_id
in 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
getDsContext().getChildren()
collection.
The screen commit causes commit of modified datasources of all frames included in the screen.