3.6.1.1.1. Frame
|  
       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:
frame_id.component_id -  
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 usingds$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
getDsContext().getChildren()collection. 
The screen commit causes commit of modified datasources of all frames included in the screen.