Object Container
The Object Container is a CygNet-aware control that dynamically populates itself using Canvas object files (.cob) and passed-in facilities. The control determines how many Canvas objects to draw based on facility inheritance, and then fills itself in with an object for each child of the parent facility. The Object Container allows the creation of sophisticated, easy-to-maintain Canvas screens, it:
- can be connected to a Tag Chooser or any other facility sender for its facility context
- supports relative facilities and facility filtering to specify exactly what to display in the container
- will dynamically resize and re-orient objects appropriately
- supports a pagination interface to page through objects on multiple pages
- eliminates the need for complex white-space management scripting.
For example, imagine you have a well-pad facility and want to compare wells on each well pad, but each well pad has a different number of wells. By creating a single Canvas object that represents a child well with common data (UDCs), adding the Canvas object to the Object Container, linking the container to a Tag Chooser, the Object Container will instantiate an object for each well on the selected well pad and then pass in the facility for it. One well pad might contain four wells, while another might contain seven wells. The Object Container control determines the number of child wells for each parent, and draws the objects accordingly as the facility is passed in from the Tag Chooser. If the number of wells exceeds to set limit per page, you can page through the remaining wells via the pagination toolbar at the bottom of the container, before switching to another well pad.
Note: Each object created by an Object Container is effectively a full screen. If the source object includes scripting support, the overhead associated with initializing and running the object is increased. The cost can be incremental with only a few objects, but care should be taken to avoid a high volume of scripted objects, especially on 32-bit clients with a more limited memory footprint.
Object Container Example
The following image shows a Tag Chooser and Object Container.
|
A sample Object Container linked to a Tag Chooser, |
Property Inheritance
Property Inheritance
Property inheritance, or sending and receiving, is a widely used concept in Canvas. The application supports an explicit relationship between screens, objects, and controls, where certain property values, such as facilities and SiteService details, are passed from one element to another via an inheritance framework. Screens, objects, and controls can be configured as property senders or property receivers and provide configuration options where you can explicitly define the source of the facility and SiteService. Depending on how you have your screens, objects, and controls configured, the facility and SiteService may be received from any one of the following sources:
- from itself — indicated by selecting <Self> and then explicitly configuring the property
- received from the screen — indicated by selecting Screen, which is always present as a sender
- received from another control — indicated by selecting the Name of the sending control.
Broadcasting
Screens and objects support an additional notification option to broadcast their facility and SiteService selection changes to other open screens. If configured, a <Broadcast> option is available to source the screen's facility and SiteService properties from another open screen.
For example, a Text Tool can be configured to get its facility from the screen and the screen can be configured to get its facility from a Tag Chooser. Or Screen_A might source its facility from Screen_B, which gets its facility from a Tag Chooser.
Receiver or Sender
The Object Container control supports property inheritance as a receiver of its SiteService and facility:
| Receive from | Send to | ||
|---|---|---|---|
| SiteService | Facility | SiteService | Facility |
| self screen |
self screen other controls |
none | none |
The Object Container does not send its SiteService or facility to other controls.
