=== ChildItemTemplateSelector (UWP & Xamarin) ===
The ChildItemTemplateSelector This returns a fitting DataTemplate based on the given child item.
<tabs>
<tab name="UWP">
* Returns a custom template if one is configured.
* Otherwise, it returns a ''UBIKProjectItem'' template if the given item is a MROViewModel and contains ProjectData (namely if the associated object is a [[MRO_Objects_(Client)#MRO_objects_with_project_information_.28WinX_only.29|MRO object with project information]])* Otherwise, it returns a ''UBIKTaskItem'' template if the given item is a TaskViewModel (namely if the associated object is a [[MRO_Objects_(Client)#Task|Task]])* If nothing of the above fits, it returns a ''UBIKChildItem''template.
</tab>
<tab name="Xamarin">
* If the given ContentListItemViewModel is not null:
** If the given item is a TaskViewModel (namely if the associated object is a [[MRO_Objects_(Client)#Task|Task]]) and the TaskItemTemplate is not null, it returns that TaskItemTemplate.
** Otherwise, if the given item is a TaskViewModel (namely if the associated object is a [[MRO_Objects_(Client)#Task|Task]]) & the TaskItemTemplate is null, it returns a ''UBIKTaskItem''template.
** If the given MROViewModel contains ProjectData (namely if the associated object is a [[MRO_Objects_(Client)#MRO_objects_with_project_information_.28WinX_only.29|MRO object with project information]]) and the ProjectItemTemplate is not null, it returns that ProjectItemTemplate.
** Otherwise, if the given MROViewModel contains ProjectData (namely if the associated object is a [[MRO_Objects_(Client)#MRO_objects_with_project_information_.28WinX_only.29|MRO object with project information]]) and the ProjectItemTemplate is null, it returns a ''UBIKProjectItem''template.
** If nothing of the above fits & the ChildItemTemplate is not null, it returns that ChildItemTemplate.
** If nothing of the above fits & the ChildItemTemplate is null, it returns a ''UBIKChildItem''template.
* Returns null if the given ContentListItemViewModel is null.
</tab>
</tabs>
{{Hint|To get an overview of how template selectors work, please refer to [[UBIK_Templates#Template_loading_mechanism|Template loading mechanism]].}}
=== PropertyDirectItemTemplateSelector (UWP & Xamarin) ===
The PropertyDirectItemTemplateSelector This returns a fitting DataTemplate based on the given property item.
<tabs>
<tab name="UWP">
** if the related property is read only or
** if the object is locked or
** when the object property requires authentication.
* Otherwise:
** Returns a ''UBIKPropertyDirectItemList'' template if the MetaProperty of the given item has a [[UBIK_Client_Basics#Selective_List_Properties|SelectiveList]].** Returns a ''UBIKPropertyDirectItemBool'' template if the given PropertyViewModel Property is of type Bool.** Returns a ''UBIKPropertyDirectItemString'' template if the given PropertyViewModel Property is of type String.** Returns a ''UBIKPropertyDirectItemInt'' template if the given PropertyViewModel Property is of type Int.** Returns a ''UBIKPropertyDirectItemDouble'' template if the given PropertyViewModel Property is of type Double.** Returns a ''UBIKPropertyDirectItemDateTime'' template if the given PropertyViewModel Property is of type DateTime.** Returns a ''UBIKPropertyDirectItemGuid'' template if the given PropertyViewModel Property is of type Guid.** Returns a ''UBIKPropertyDirectItemGeoData'' template if the givenPropertyViewModel given Property is of type GeoData.
</tab>
<tab name="Xamarin">
** if the related property is read only or
** if the object is locked or
** when the object property requires authentication.
* Otherwise:
** Returns a ''UBIKPropertyDirectItemList'' template if the MetaProperty of the given item has a [[UBIK_Client_Basics#Selective_List_Properties|SelectiveList]].** Returns a ''UBIKPropertyDirectItemBool'' template if the given PropertyViewModel Property is of type Bool.** Returns a ''UBIKPropertyDirectItemString'' template if the given PropertyViewModel Property is of type String.** Returns a ''UBIKPropertyDirectItemInt'' template if the given PropertyViewModel Property is of type Int.** Returns a ''UBIKPropertyDirectItemDouble'' template if the given PropertyViewModel Property is of type Double.** Returns a ''UBIKPropertyDirectItemGuid'' template if the given PropertyViewModel Property is of type Guid.
</tab>
</tabs>
{{Hint|To get an overview of how template selectors work, please refer to [[UBIK_Templates#Template_loading_mechanism|Template loading mechanism]].}}
=== TaskPropertyTemplateSelector (UWP & Xamarin) ===
The TaskPropertyTemplateSelector This returns a fitting DataTemplate based on the given task property item.
<tabs>
<tab name="UWP">
** if the related property is read only or
** if the object is locked or
** when the objects property requires authentication.
* Otherwise:
** Returns a ''UBIKTaskPropertyList'' template if the MetaProperty of the given item has a [[UBIK_Client_Basics#Selective_List_Properties|SelectiveList]].** Returns a ''UBIKTaskPropertyBool'' template if the given TaskViewModels (namely the associated object is a [[MRO_Objects_(Client)#Task|Task]]) Value is of type Bool.** Returns a ''UBIKTaskPropertyString'' template if the given TaskViewModels (namely the associated object is a [[MRO_Objects_(Client)#Task|Task]]) Value is of type String.** Returns a ''UBIKTaskPropertyInt'' template if the given TaskViewModels (namely the associated object is a [[MRO_Objects_(Client)#Task|Task]]) Value is of type Int.** Returns a ''UBIKTaskPropertyDouble'' template if the given TaskViewModels (namely the associated object is a [[MRO_Objects_(Client)#Task|Task]]) Value is of type Double.** Returns a ''UBIKTaskPropertyDateTime'' template if the given TaskViewModels (namely the associated object is a [[MRO_Objects_(Client)#Task|Task]]) Value is of type DateTime.** Returns a ''UBIKTaskPropertyGuid'' template if the given TaskViewModels (namely the associated object is a [[MRO_Objects_(Client)#Task|Task]]) Value is of type Guid.** Returns a ''UBIKTaskPropertyGeoData'' template if the given TaskViewModels (namely the associated object is a [[MRO_Objects_(Client)#Task|Task]]) Value is of type GeoData.
</tab>
<tab name="Xamarin">
** if the related property is read only or
** if the object is locked or
** when the objects property requires authentication.
* Otherwise:
** Returns a ''UBIKTaskPropertyList'' template if the MetaProperty of the given item has a [[UBIK_Client_Basics#Selective_List_Properties|SelectiveList]].** Returns a ''UBIKTaskPropertyBool'' template if the given TaskViewModels (namely the associated object is a [[MRO_Objects_(Client)#Task|Task]]) Value is of type Bool.** Returns a ''UBIKTaskPropertyString'' template if the given TaskViewModels (namely the associated object is a [[MRO_Objects_(Client)#Task|Task]]) Value is of type String.** Returns a ''UBIKTaskPropertyInt'' template if the given TaskViewModels (namely the associated object is a [[MRO_Objects_(Client)#Task|Task]]) Value is of type Int.** Returns a ''UBIKTaskPropertyDouble'' template if the given TaskViewModels (namely the associated object is a [[MRO_Objects_(Client)#Task|Task]]) Value is of type Double.** Returns a ''UBIKTaskPropertyGuid'' template if the given TaskViewModels (namely the associated object is a [[MRO_Objects_(Client)#Task|Task]]) Value is of type Guid.
</tab>
</tabs>
{{Hint|To get an overview of how template selectors work, please refer to [[UBIK_Templates#Template_loading_mechanism|Template loading mechanism]].}}
=== HotSpotTemplateSelector (UWP & Xamarin) ===
The HotSpotTemplateSelector This returns a fitting DataTemplate based on the given [[HotSpotting#HotSpots|HotSpot]] item.<tabs><tab name="UWP">* Returns a ''UBIKAngularLinkHotSpot'' template if the given [[HotSpotting#HotSpots|HotSpot]] is of type LinkHotSpot with HotSpotShape Angular & if the UBIKAngularLinkHotSpot template is not null.* Returns a ''UBIKRoundLinkHotSpot'' template if the given [[HotSpotting#HotSpots|HotSpot]] is of type LinkHotSpot with HotSpotShape Round & if the UBIKRoundLinkHotSpot template is not null.* Returns a ''UBIKSignatureHotSpot'' template if the given [[HotSpotting#HotSpots|HotSpot]] is of type [[HotSpotting#SignatureSpot|SignatureSpot]] & if the UBIKSignatureHotSpot template is not null.* Returns a ''UBIKObjectHotSpot'''' template if the given [[HotSpotting#HotSpots|HotSpot]] is of type ObjectHotSpot & if the UBIKObjectHotSpot template is not null.* Returns a ''UBIKMediaHotSpot'' template if the given [[HotSpotting#HotSpots|HotSpot]] is of type [[HotSpotting#MediaSpot|MediaSpot]] & if the UBIKMediaHotSpot template is not null.* Returns a ''UBIKInputHotSpot'' template if the given [[HotSpotting#HotSpots|HotSpot]] is of type [[HotSpotting#InputSpot|InputHotSpot]] & if the UBIKInputHotSpot template is not null.* If nothing of the above fits, it returns a ''UBIKDefaultHotSpot''.</tab><tab name="Xamarin">* Returns a ''UBIKAngularLinkHotSpot'' if the given [[HotSpotting#HotSpots|HotSpot]] is of type LinkHotSpot with HotSpotShape Angular & if the UBIKAngularLinkHotSpot template is not null.* Returns a ''UBIKRoundLinkHotSpot'' if the given [[HotSpotting#HotSpots{{Hint|HotSpot]] is To get an overview of type LinkHotSpot with HotSpotShape Round & if the UBIKRoundLinkHotSpot how template is not null.* Returns a ''UBIKSignatureHotSpot'' if the given selectors work, please refer to [[HotSpottingUBIK_Templates#HotSpotsTemplate_loading_mechanism|HotSpotTemplate loading mechanism]] is of type [[HotSpotting#SignatureSpot|SignatureSpot]] & if the UBIKSignatureHotSpot template is not null.}}* Returns a ''UBIKObjectHotSpot'''' if the given [[HotSpotting#HotSpots|HotSpot]] is of type ObjectHotSpot & if the UBIKObjectHotSpot template is not null.* Returns a ''UBIKMediaHotSpot'' if the given [[HotSpotting#HotSpots|HotSpot]] is of type [[HotSpotting#MediaSpot|MediaSpot]] & if the UBIKMediaHotSpot template is not null.* Returns a ''UBIKInputHotSpot'' if the given [[HotSpotting#HotSpots|HotSpot]] is of type [[HotSpotting#InputSpot|InputHotSpot]] & if the UBIKInputHotSpot template is not null.* If nothing of the above fits, it returns a ''UBIKDefaultHotSpot''.</tab></tabs>
=== ProfileItemTemplateSelector (UWP) ===
* The ProfileItemTemplateSelector This returns a ''UBIKProfileItem'' template if the given item is a Profile file.* If the given item is a folder, it returns a ''UBIKProfileFolder''template.{{Hint|To get an overview of how template selectors work, please refer to [[UBIK_Templates#Template_loading_mechanism|Template loading mechanism]].}}
=== RootItemTemplateSelector (UWP) ===
The RootItemTemplateSelector This returns a fitting DataTemplate based on the given root item. * Returns a custom template if one is configured.* Otherwise:** It returns a ''UBIKProjectItem'' template if the given item is a MROViewModel and contains ProjectData (namely if the associated object is a [[MRO_Objects_(Client)#MRO_objects_with_project_information_.28WinX_only.29|MRO object with project information]]).** It returns a ''UBIKTaskItem'' template if the given item is a TaskViewModel (namely if the associated object is a [[MRO_Objects_(Client)#Task|Task]]).
* If nothing of the above fits, it returns a ''UBIKMainItem''.
{{Hint|To get an overview of how template selectors work, please refer to [[UBIK_Templates#Template_loading_mechanism|Template loading mechanism]].}}
=== ComboBoxItemTemplateSelector (UWP) ===
* The ComboBoxItemTemplateSelector This returns a ''DropDownItemTemplate'' for drop-down list items.
* Otherwise, it returns a ''ComboBoxSectionItemTemplate'' (for the selected item when the drop-down list is closed).
{{Hint|To get an overview of how template selectors work, please refer to [[UBIK_Templates#Template_loading_mechanism|Template loading mechanism]].}}
=== ChildAreaTemplateSelector (UWP) / ChildAreaTemplateConverter (Xamarin) ===
</tab>
</tabs>
{{Hint|To get an overview of how template selectors work, please refer to [[UBIK_Templates#Template_loading_mechanism|Template loading mechanism]].}}
[[Category:Client|UBIK Templates]]
[[Category:UBIK|UBIK Templates]]
[[Category:WinX|UBIK Templates]]
=== ContentAreaTemplateSelector (UWP) / ContentAreaTemplateConverter (Xamarin) ===
* If the context object is classified with the [[SYSCLS_CONTENTAREATEMPLATE|ContentAreaTemplate Classification]] and carries a valid content area template name:
** Tries to return a custom template with the name of CustomTemplateName + Suffix;
** If not found, returns an [[Developer_Mode#Errors|error template ]] (strict policy on) or goes to rule 2 (strict policy off).
* Otherwise:
** Tries to return a custom template with the name of ''UBIKContentArea'' + Suffix;
** If not found, it returns an [[Developer_Mode#Errors|error template]].
</tab>
<tab name="Xamarin">
* If the context object is classified with the [[SYSCLS_CONTENTAREATEMPLATE|ContentAreaTemplate Classification]] and carries a valid content area template name:
** Tries to return a custom template with the name of CustomTemplateName;
** If not found, returns an [[Developer_Mode#Errors|error template]].
* Otherwise:
** Tries to return a custom template with the name of ''UBIKContentArea'';
** If not found, it returns an [[Developer_Mode#Errors|error template]].
</tab>
</tabs>
{{Hint|To get an overview of how template selectors work, please refer to [[UBIK_Templates#Template_loading_mechanism|Template loading mechanism]].}}
[[Category:Client|UBIK Templates]]
[[Category:UBIK|UBIK Templates]]
[[Category:WinX|UBIK Templates]]
=== PropertyEditorItemTemplateSelector (UWP) / EditTemplateConverter (Xamarin) ===