Developer

List Management

The Extensibility Framework lets you define a list container (translates to UITableViewController) using the configuration files.

Although you can define cells individually, you can also create a configuration that automatically renders a cell for each BO coming from the binding.This feature is widely used with master-detail application types, which follow a drill-down approach. You can choose from the two approaches or mix them, but you can use only one ListItem (UITableViewCell) with a feed in a ListSection, which groups cells within the definition.
<!-- Tile definition -->
<Tile tileId="LeaveRequestList">
<!-- Tile title comes from a localized resource -->
<P pid="title" value="{$_i18n.leaverequestlist}"></P>
<!--  ‘LeaveRequests’ binding referenced from the tile-->
<BindingRef ref="LeaveRequests" />        
<ListContainer>
<ListSection>
<!-- A feed is assigned to the ListItem => a cell is created and displayed for each BO -->
<!-- Warning! A ListSection can only contain one ListItem with a feed -->
    <ListItem feed="LeaveRequests"> 
    <!--the ‘actionIndicator’ refers to the cell’s accessory type -->
    <!-- ‘arrow’ means disclosure indicator -->
    <P pid="actionIndicator" value="arrow"></P>
        <!--Layout the cell’s content -->

<LinearContainer layout="horizontal">
        <!—UILabel inside the cell -->
<UIElement type="label">
<!—UILabel’s text is the absence type coming from thebinding -->
			<P pid="text" value="{$LeaveRequests.AbsenceTypeName}"></P>
		</UIElement>
	</LinearContainer>
	</ListItem>
    <!--/ListSection>
</ListContainer>
</Tile>
The Extensibility Framework provides support for grouping table view cells in sections, based on BO property you specify. To use this feature, add the autoGroupBy attribute in the ListSection as shown in this example:
<Tile tileId="GroupScreen">
<BindingRef ref="Titles"/>
<ListContainer>
<!-- autoGroupBy attribute is used to group the items based on their ratings -->
	<ListSection autoGroupBy="Rating">
<!—Section Header definition for the group ‘Rating’ -->
		<ListBar> 
			<LinearContainer layout="vertical"> 
    <UIElement type="label">
        <!—Section Header definition for the group ‘Rating’ -->
				        <P pid="text" value="Rating: {$Titles.Rating}"/>
				    </UIElement>
			 </LinearContainer>
		</ListBar>
<! -- Cells with feed -->
<! -- Remark: feed should be the same as used for autoGroupBy -->
		<ListItem feed="Titles">
			<LinearContainer layout="vertical">
				<UIElement type="label">
					 <P pid="text" value="{$Titles.Name}"/>
				</UIElement>
			</LinearContainer>
		</ListItem>
	</ListSection>
</ListContainer>
	</Tile>