Adressage

L'adressage est pris en charge dans toutes les vues du kit d'outils de l'interface utilisateur, notamment dans les vues imbriquées dans d'autres vues définies dans une page d'interface utilisateur.

Le schéma d'adressage est une structure hiérarchique de type arborescence dont la racine est définie par / au plus haut niveau sur la page affichée. La structure du schéma d'adressage est similaire à celle utilisée pour un répertoire. Les noeuds suivants dans l'arborescence sont ajoutés lors du chargement de la page.

Deux types de base de noeuds sont disponibles, Conteneur et Elément. Les noeuds de conteneur incluent d'autres noeuds, tels que des éléments, des vues et d'autres noeuds de conteneur.
Restriction: Les vues du kit d'outils Coaches obsolète ne sont pas adressables à l'aide du schéma d'adressage décrit.

Généralement, vous utilisez l'adressage dans les vues de l'interface utilisateur lorsque des fonctions sont appelées par des événements de vue ou des formules qui sont utilisées dans certaines vues. Des fonctions peuvent être utilisées en ligne, comme dans le bloc de script JavaScript d'un code HTML personnalisé sur une page ou dans la section JavaScript en ligne des propriétés Comportement de la vue.

Styles d'adressage

Les adressages de style relatif et absolu sont pris en charge. Une référence commençant par / implique une référence absolue, par exemple en commençant au niveau racine de l'arborescence de la vue. L'omission de / au début du chemin signifie "from where I am". L'utilisation de .. dans une référence entraîne la sauvegarde d'un niveau en tant qu'arborescence de répertoires de fichiers.

Dans une formule, les références sont calculées à partir du point de référence de la zone dont vous définissez la formule :
  • Les zones du même niveau que le niveau en cours sont référencées à l'aide du nom de zone (sans utiliser / au début de la référence).
  • Les zones qui sont du niveau supérieur peuvent être référencées en tant que ../FieldOneLevelAboveMe.
  • Les zones qui sont de deux niveaux supérieurs sont référencées en tant que ../../FieldOneLevelAboveMe, etc.
  • L'adressage relatif à l'aide de ../ peut être pratique dans certains cas.

Méthodes JavaScript d'accès aux vues

A partir d'un code HTML personnalisé
Pour accéder à une vue dans un bloc JavaScript, utilisez la vue globale de la page et sa méthode page.ui.get(ControlId path). Par exemple, supposons que vous ayez une vue Texte nommée Text1 et que, à des fins de validation, vous souhaitiez y accéder dans une fonction appelée à partir d'un événement On click d'un bouton. Pour ce faire, utilisez un code similaire à celui de l'exemple suivant :
var myTextField = page.ui.get("/Text1");
myTextField.getValue() // returns the value in the text field
myTextField.focus() // would set the focus to the text field.
A partir du code JavaScript en ligne d'une vue
Pour accéder à une vue depuis une fonction contenue dans une vue de conteneur, utilisez l'une des options suivantes :
bpmEventHelper.ui.getView(ControlId [, thisview])
thisview.ui.get(ControlId)
thisview est défini dans la vue de conteneur.
Par exemple, supposons que vous ayez défini une vue de conteneur qui inclut deux vues nommées Text1 et Select1 et que, à des fins de validation, vous souhaitiez accéder aux deux vues imbriquées à partir d'une fonction validateControls appelée à partir d'un événement On click d'un bouton dans la vue parent. Pour accéder aux vues, placez un code similaire à celui de l'exemple suivant dans la section JavaScript en ligne sur les propriétés Behavior de la vue de conteneur :
var thisview = this; // required

this.validateControls = function(button)
{
    var textControl = bpmEventHelper.ui.getView("Text1", thisview);
    var selectControl =  thisview.ui.get("Select1");
    textControl.getValue(); // returns the value of the SPARK control in 
    this coach view with the ControlId "Text1"
    selectControl.getSelectedItem(); // returns the selected value in the 
    SPARK control in this coach view with the ControlId "Select1"
}
		
Par exemple, pour accéder à une vue Texte FirstName dans une vue Address, procédez à son adressage en utilisant l'adresse absolue, comme suit :
"/Address/FirstName" or "${Address}.ui.get('FirstName')"
Dans des formules
Les vues peuvent être référencées dans des formules à l'aide de la syntaxe suivante :
  • ${FieldName} fait référence à la vue pour laquelle control id = FieldName.
  • @{FieldName} fait référence à la valeur de la vue pour laquelle control id = FieldName.
  • ${FieldName).getValue() et @{FieldName} sont équivalents.

Vues de disposition non adressables

Les vues utilisées uniquement à des fins de disposition doivent être omises de l'adresse. Par exemple, vous pouvez adresser une vue FirstName qui est imbriquée dans une vue VerticalLayout en utilisant l'adresse /FirstName et non l'adresse /VerticalLayout/FirstName.
Astuce: Pour exclure une vue de conteneur personnalisée non adressable d'une adresse, définissez la propriété suivante sur true dans la fonction load de la vue personnalisée, dans la section JavaScript en ligne, sous Comportement:
this.constructor.prototype.IS_ADDRESS_INVISIBLE = true;

Vues personnalisées adressables

Lorsque vous créez une vue personnalisée que vous souhaitez adressable, appelez la fonction suivante dans la méthode load :
bpmEventHelper.ui.loadView(this)
Si votre vue personnalisée comporte une zone de contenu, appelez plutôt la fonction suivante :
bpmEventHelper.ui.loadContainer(this)
Dans la fonction unload de votre vue, appelez la fonction appropriée :
bpmEventHelper.ui.unloadView(this)
ou
bpmEventHelper.ui.unloadContainer(this)

Références aux zones homologues dans des tableaux

Lorsque vous utilisez des formules dans un tableau, vous pouvez accéder aux zones de la ligne my en utilisant une syntaxe comportant le signe = après le nom de la zone. Par exemple, supposons que vous avez défini les vues Quantity (Integer), Cost (Decimal) et Total (Decimal) dans un tableau. Vous pouvez indiquer la valeur de la vue Total à l'aide de la formule suivante :
@{Quantity=} * @{Cost=}
Notez qu'aucune liaison de données n'est requise pour la vue Total, ce qui signifie qu'aucune zone de total de données n'est nécessaire dans le tableau.

Fonctions d'aide

Vous pouvez utiliser les fonctions d'aide getParent et getSibling dans l'espace de nom bpmext.ui.View par exemple. Dans l'exemple, il est facile d'obtenir la vue de conteneur ou la vue homologue sans connaître l'ensemble de la structure hiérarchique.

Par exemple, supposons que vous disposez d'une vue de conteneur nommée CV qui contient deux vues nommées Button1 et Button2. Si btn1View est l'objet bpmext.ui.View pour Button1, vous pouvez accéder à CV à l'aide de btn1View.ui.get(“CV”) ou de btn1View.ui.getParent();. Vous pouvez accéder à Button2 à l'aide de bt1View.ui.getSibling(“Button2”).