IBM Domino Designer 9.0.1 - Guide d'utilisation

Première édition

Publication : octobre 2013

A propos de la présente édition

Cette édition de la documentation produit est conforme à l'engagement d'IBM en matière d'accessibilité.

Mises à jour apportées à ce document

Ce fichier HTML contient la dernière version de la documentation produit officielle de cette édition. Une mise à jour est effectuée tous les trimestres, si nécessaire. Pour les dernières mises à jour de la documentation produit, consultez les articles spécifiques à l'édition dans la section de documentation produit du wiki.

Impression

Lorsque vous imprimez ce document, certains éléments de style sont supprimés pour générer une sortie d'impression de meilleure qualité. Voici quelques astuces concernant l'impression :
  • Il est possible que la longueur du document dépasse les possibilités d'impression du navigateur. Microsoft Internet Explorer est en mesure d'imprimer correctement des documents volumineux.
  • Ce document est long. Utilisez la fonction d'aperçu avant impression pour déterminer la longueur de page imprimée.
  • Vous pouvez mettre en évidence une section du document et choisir ensuite d'imprimer uniquement le contenu sélectionné

Utilisation en mode déconnecté

Vous pouvez sauvegarder une copie locale de ce document à partir de votre navigateur. Chaque navigateur comporte des menus et options de menu différents. Si vous avez besoin d'aide pour sauvegarder le document en local, consultez l'aide du navigateur.

Envoi de commentaires

Si vous souhaitez envoyer des commentaires sur ce document, voir le site Web Documentation Feedback.

Nouveautés d'IBM Domino Designer 9.0.1 Social Edition

Informations sur les nouvelles fonctions et les améliorations de Domino Designer.

Cette rubrique répertorie les nouvelles fonctions et les modifications relatives à Domino Designer 9.0.1 Social Edition.

Des mises à jour périodiques de l'aide Domino Designer sont disponibles sur le Web. Pour télécharger le dernier fichier d'aide Designer, accédez à la section Lotus documentation de developerWorks à l'adresse http://www.ibm.com/developerworks/lotus/documentation/. Cliquez sur Technical Library , sur By product, puis sur Domino Designer, et enfin, choisissez l'édition que vous voulez voir.

Dans le domaine de Domino Designer et XPages, les changements et ajouts apportés à cette édition sont les suivants.

  • Dojo version 1.8.1 a été mis au niveau de la version 1.8.3
  • Les fonctions XPages ci-après sont désormais conformes aux exigences d'accessibilité :
    • Expérience d'exécution XPages
    • Interface utilisateur Web de modèle Teamroom XPages
    • Interface utilisateur Web de modèle Discussion XPages
  • Les optimisations apportées aux fonctions mobiles XPages 9.0.1 incluent :
    • Ajout d'événements à utiliser avec les contrôles Page d'application mobile et Application mono-page mobile dans la bibliothèque d'extensions
    • Ajout d'un événement deviceBean afin de faciliter l'utilisation et la programmation de l'identification d'une gamme populaire de périphériques mobiles et de tablettes. Les informations fournies par ce bean vous permettent de décider si votre programme doit charger ou décharger des parties d'une page d'application en fonction du navigateur ou du périphérique demandeur.
    • Fonctionnalités de téléchargement de fichiers photo/vidéo
    • Thème OneUI IDX Mobile pour iOS et Android
    • Remplacement des thèmes mobile et mobile par défaut pour iOS et Android
    • Basculement des agents utilisateur de débogage mobile pour reproduire le comportement des agents utilisateur iOS ou Android
  • Des optimisations ont été effectuées au niveau de la recherche dynamique (moteur de recherche, plus particulièrement) qui incluent la prise en charge de robots de recherche et coïncident avec un meilleur temps de réponse des pages wiki utilisant la fonction de contenu dynamique.
  • XULRunner for XPiNC (XPages dans le client Notes) a été mis au niveau de la version 10.0.6 pour optimisation du rendu XPages dans le client Notes
  • L'indexation de l'aide du produit a été optimisée
  • Il est désormais possible d'exécuter les applications XPages reposant sur serveur directement sur un serveur Domino en utilisant l'option de lancement Exécuter les applications XPages basées sur serveur directement sur le serveur Domino.
  • JavaScript côté client XPiNC (XPages dans le client Notes) a été optimisé par l'ajout d'une fonctionnalité XSP.executeCommand().

  • Mise à jour du paramètre JVM.Properties Designer par défaut pour prendre en charge des besoins en mémoire supérieurs
  • Optimisation du chargement de fichier en actualisation partielle
  • Mise à niveau de CKEditor de 3.6.6.1 à 3.6.6.2

Consultez la section XPages section de ce document pour plus de détails sur certains des éléments XPages.

Consultez la section Programmabilité, langages et services pour plus de détails sur ces types d'éléments.

XPages

La conception et la création d'applications logicielles qui peuvent être utilisées par toute personne, quelles que soient ses potentialités ou ses déficiences, est une exigence majeure dans le monde de l'entreprise. La création d'une application accessible via XPages requiert la prise en compte d'un grand nombre d'utilisateurs différents, dont certains souffrent d'handicaps divers et d'autres de problèmes liés à l'âge.

En ce qui concerne XPages, des modifications majeures ont été apportées dans cette édition afin d'aider les développeurs à créer des applications XPages accessibles et de rendre l'expérience d'exécution XPages plus compatible avec les exigences d'accessibilité.

Les rubriques ci-dessous fournissent une synthèse des changements apportés à cette édition et des ajouts effectués visant à atteindre une plus grande conformité aux normes d'accessibilité.

  • Introduction d'un nouveau thème accessible - XPages prend désormais en charge un thème conforme aux instructions et exigences d'accessibilité. Ce thème s'intitule oneuiv2.1_blue
  • Mise à l'écart de la propriété role - pour ces contrôles, la propriété role est obsolète depuis la version 9.0.1. Par défaut, la valeur compatible appropriée est générée. Pour une conformité aux normes d'accessibilité, ne spécifiez pas de valeur pour cette propriété.
    • xp:dataTable - Table de données
    • xp:fileDownload - Téléchargement de fichier
    • xp:viewPanel - Vue
    • xp:tabbedPanel - Panneau à onglets
    • xp:tabPanel - voir Panneau à onglets
    • xp:pager - Pager
    • xp:pagerControl - voir Pager
    • xe:dataView - Vue de données
  • Ajout des propriétés accesskey - Raccourci-clavier et tabindex - Index d'onglets au contrôle Conteneur de widget - ces propriétés sont nouvelles pour ce contrôle avec la version 9.0.1. Consultez la section Références des propriétés (bibliothèque d'extension) de ce guide pour plus d'informations.
    • xe:widgetContainer - Conteneur de widget
  • Ajout des propriétés titleBarLabel - Barre de titre, placeBarLabel - Libellé de barre d'espace, leftColumnLabel - Libellé de colonne gauche et rightColumnLabel - Libellé de colonne droite - ces propriétés sont une nouveauté de la version 9.0.1. Elles s'appliquent au contrôle ci-dessous. Consultez la section Références des propriétés (bibliothèque d'extension) de ce guide pour plus d'informations.
    • xe:applicationConfiguration - Configuration d'application
  • Ajout de la propriété ariaLabel - Libellé ARIA - cette propriété est une nouveauté de la version 9.0.1. Elle s'applique aux contrôles ci-dessous. Consultez les sections Ajout de contrôles - Références des propriétés, Ajout de contrôles - Références des contrôles et Références des propriétés (bibliothèque d'extension) de ce guide pour plus d'informations.
    • xe:formtable - Table de masque
    • xe:navigator - Navigateur
    • xp:pager - Pager
    • xe:pagerAddRows - Ajouter des lignes (Pager)
    • xe:pagerDetail - Afficher/Masquer les détails (Pager)
    • xe:pagerExpand - Développer/Réduire (Pager)
    • xe:pagerSizes - Tailles (Pager)
    • xe:tagCloud - Nuage de balises
    • xe:dataView - Vue de données
  • Ajout de la propriété summary - Récapitulatif des données - cette propriété est une nouveauté de la version 9.0.1. Elle s'applique au contrôle ci-dessous. Consultez la section Références des propriétés (bibliothèque d'extension) de ce guide pour plus d'informations.
    • xe:dataView - Vue de données
  • Ajout de la propriété headerLinkTitle - Titre de lien d'en-tête - cette propriété est une nouveauté de la version 9.0.1. Elle s'applique aux contrôles ci-dessous. Consultez la section Références des propriétés (bibliothèque d'extension) de ce guide pour plus d'informations.
    • xe:viewExtraColumns - voir la propriété Colonnes supplémentaires.
    • xe:viewSummaryColumn - voir la propriété Colonnes supplémentaires.
  • Ajout de la propriété imageAlt - Texte de remplacement d'image - Image Alternate Text - cette propriété est une nouveauté de la version 9.0.1. Elle s'applique au contrôle ci-dessous. Consultez les sections Ajout de contrôles - Références des propriétés et Ajout de contrôles - Références des contrôles de ce guide pour plus d'informations.
    • xp:tabPanel - voir le contrôle Panneau à onglets.
  • Ajout de la propriété linkTitle - Titre de lien - cette propriété est une nouveauté de la version 9.0.1. Elle s'applique aux contrôles ci-dessous. Consultez la section Références des propriétés (bibliothèque d'extension) de ce guide pour plus d'informations.
    • xe:viewExtraColumns - voir la propriété Colonnes supplémentaires.
    • xe:viewSummaryColumn - voir la propriété Colonnes supplémentaires.
  • Ajout de la propriété readonly - Lecture seule - cette propriété est une nouveauté de la version 9.0.1. Elle s'applique au contrôle ci-dessous. Consultez les sections Ajout de contrôles - Références des propriétés et Ajout de contrôles - Références des contrôles de ce guide pour plus d'informations.
    • xp:label - Libellé
  • Documentation des exigences pour une compatibilité d'accessibilité - ces contrôles ont des exigences spécifiques pour une conformité aux normes d'accessibilité qui ont été documentés pour cette édition. Consultez les sections Ajout de contrôles - Références des propriétés et Ajout de contrôles - Références des contrôles de ce guide pour plus d'informations.
    • xp:button - Bouton
    • xp:checkBox - Case à cocher
    • xp:checkBoxGroup - Groupe de cases à cocher
    • xp:dataTable - Table de données
    • xp:dateTimeHelper - Sélecteur de date et d'heure
    • xp:label - Libellé
    • xp:link - Lien
    • xp:message - Afficher erreur
    • xp:radioGroup - Groupe de boutons d'option
    • xp:radio - Bouton d'option
    • xp:Table - Tableau
    • xp:tabbedPanel - Panneau à onglets
  • Les contrôles ci-après n'ont pas été testés par rapport aux dernières normes d'accessibilité. Un chemin accessible différent est recommandé. Consultez les sections Ajout de contrôles - Références des propriétés, Ajout de contrôles - Références des contrôles et Références des propriétés (bibliothèque d'extension) de ce guide pour plus d'informations.
    • xe:djAccordionContainer
    • xe:djAccordionPane
    • xe:djBorderContainer
    • xe:djBorderPane
    • xe:djButton
    • xe:djCheckBox
    • xe:djComboBox
    • xe:djContentPane
    • xe:djCurrencyTextBox
    • xe:djDateTextBox
    • xe:djextImageSelect
    • xe:djFilteringSelect
    • xe:djNumberSpinner
    • xe:djNumberTextBox
    • xe:djRadioButton
    • xe:djSimpleTextarea
    • xe:djStackContainer
    • xe:djStackPane
    • xe:djTabContainer
    • xe:djTabPane
    • xe:djTextarea
    • xe:djTextBox
    • xe:djTimeTextBox
    • xe:djToggleButton
    • xe:djValidationTextBox
    • xe:djxDataGrid
    • xe:djxDataGridColumn
    • xe:djxDataGridRow
    • xe:dropDownButton
    • xe:dynamicViewPanel
    • xe:inPlaceForm
    • xe:linksList
    • xe:listView
    • xe:listViewColumn
    • xe:popupMenu
    • xe:sortLinks
    • xe:toolbar
    • xe:tooltip
    • xe:tooltipDialog
    • xp:viewColumn
    • xp:viewColumnHeader
    • xp:viewPager
    • xp:viewPanel
    • xp:viewTitle
  • Optimisation du contenu dynamique - pour cette édition, la fonction Contenu dynamique a été optimisée afin de prendre en charge l'indexation de documents par des robots de recherche qui ne sont pas en mesure d'exécuter du code JavaScript côté client.

    Une nouvelle propriété a été ajoutée au fichier de configuration qui vous permet de spécifier les ID d'agents utilisateur devant être reconnus comme moteurs de balayage. Si un ID présent dans la liste est contenu dans l'en-tête d'agent utilisateur de la demande, une URL différente est retournée lors du rendu des liens ou dans l'en-tête d'emplacement d'une réponse de redirection, la différence étant que le signe "#" est remplacée par un "?" ou un "&."

    Ceci ne se produit que si le paramètre content est présent dans la demande. Si cette vérification est exécutée, le résultat est stocké dans un attribut de session pour minimiser l'impact sur les performances.

    En suivant l'URL retournée, un moteur de balayage peut extraire le document sans exécuter JavaScript côté client. L'exemple ci-dessous montre comment utiliser cette propriété :

    # ########################################
    # Search Engine web crawler User-Agent Ids
    # ########################################
    # A comma-separated and lowercase list of Web crawler user-agent Ids. If this property is missing an hard coded list of well known search crawlers is used (Google,Bing,Yahoo). Few keywords can be used with a special meaning
    # <empty>: The feature is disabled and no check will be performed against the user-agent header 
    # <auto>: This keyword is replaced with the list of hard coded search crawlers ids.
    
    #xsp.search.bot.id.list=<empty> (will disable the check) the usual behaviour is followed and no check is performed against the useragent.
    
    #xsp.search.bot.id.list=<auto>,blekkobot (will include google,bing,yahoo and blekko search crawlers in the list of ids to be checked against the user agent, if one of the id is found in the user-agent header, it will be treated as bot and url will be normalize to help indexing. i.e. Avoid use of # sign in URLs)

    Si cette configuration est activée, l'agent utilisateur du robot de recherche Google : Mozilla/5.0 (compatible ; Googlebot/2.1; +http://www.google.com/bot.html) sera reconnu comme robot et le comportement alternatif sera suivi.

  • Il est désormais possible d'exécuter les applications XPages reposant sur serveur directement sur un serveur Domino en utilisant l'option de lancement Exécuter les applications XPages basées sur serveur directement sur le serveur Domino.

    Pour que cela fonctionne, vous devez d'abord avoir un compte configuré dans Notes pour vous donner accès au serveur HTTP. Pour créer ou afficher des comptes Notes, sélectionnez Fichier -> Préférences -> Comptes sous Notes et assurez-vous que votre compte dispose du type correct (HTTP/HTTPS) et contient le nom d'hôte qualifié complet dont vous devez vous servir pour accéder au serveur. Si vous utilisez SSO, le nom doit correspondre exactement au nom du serveur enregistré avec le serveur. Si le nom d'hôte ne peut pas être déduit correctement des informations figurant dans l'espace de travail Notes, un erreur risque de s'afficher.

    Vous devez ensuite enregistrer les applications RunOnServer que vous voulez utiliser ET fournir un nom d'hôte. Pour ce faire, sélectionnez Fichier > Préférences > Performances XPages > Exécuter sur Serveur pour ajouter l'application, le serveur et le nom d'hôte.

    Vous pouvez tester ceci indépendamment d'XPages en configurant le compte puis en tapant l'adresse HTTP de l'application dans la barre d'adresse d'URL Notes. Si l'application se charge sans invite, le navigateur Notes intégré utilise correctement les informations définies dans le compte Notes. Assurez-vous aussi que le nom de serveur que vous avez utilisé dans la barre d'adresses sert également dans la préférence RunOnServer comme nom d'hôte facultatif.

  • JavaScript côté client XPiNC (XPages dans le client Notes) a été optimisé par l'ajout d'une fonctionnalité XSP.executeCommand(). XSP.executeCommand(commandID, commandParameters) a été ajouté depuis 9.0. commandID identifie la fonction requise. commandParams est un objet contenant des valeurs d'argument arbitraires ou peut être nul. Cette fonctionnalité utilise le même chemin d'exécution que les autres commandes JavaScript XPiNC, comme XSP.alert(), XSP.confirm(), XSP.publishEvent(), etc.

    Quand une commande XSP.executeCommand() est appelée, XPages consulte la liste des fournisseurs de commandes enregistrés. Si un fournisseur qui gère la commande est trouvé, il est appelé et exécuté, et un résultat est retourné, si nécessaire.

Programmabilité, langages et services

Dans le domaine de la programmabilité et des langages, les ajouts ou changements ci-après ont été apportés :

  • Evénements de contrôle pour mobile - ces événements ont été ajoutés pour être utilisés avec les contrôles Page d'application mobile et Application mono-page mobile dans la bibliothèque d'extensions :
    • onOrientationChange
    • onBeforeTransitionIn
    • onAfterTransitionIn
    • onBeforeTransitionOut
    • onAfterTransitionOut

    Consultez ce guide d'utilisation pour plus d'informations.

  • deviceBean - également dans le domaine des optimisations effectuées dans le développement des applications mobiles, deviceBean et ses API associées ont été ajoutées pour cette édition.

    Dans les versions précédant celle-ci, XPages fournissait l'API d'agent utilisateur côte serveur context.getUserAgent(). Cette API sert à identifier l'agent utilisateur demandeur, ce qui facilite la gestion des ressources côté serveur comme CSS et JavaScript côté client ainsi que la présentation des applications et vous permet d'afficher ou de masquer des composants au sein d'XPage avant d'envoyer une réponse à l'agent utilisateur demandeur.

    L'informatique mobile étant de plus en plus populaire, il est également important de pouvoir identifier les nombreux types d'agents utilisateur (ou périphériques mobiles) différents, tâche plus complexe qu'avec les applications de navigateur de bureau classiques. Pour faciliter ce processus, un nouveau bean géré, deviceBean, a été introduit au sein de l'exécution XPages afin de faciliter l'utilisation et la programmation de l'identification d'une gamme populaire de périphériques mobiles et de tablettes directement au sein de JavaScript côté serveur ou des expressions calculées EL (Expression Language). Les informations fournies par ce bean vous permettent de décider si votre programme doit charger ou décharger des parties d'une page d'application en fonction du navigateur ou du périphérique demandeur.

    Ainsi, il est possible d'identifier un périphérique dans EL en appelant # {deviceBean.mobile} et alternativement dans JavaScript côté serveur en appelant # {javascript:deviceBean.isMobile()}. deviceBean prend aussi en charge un point d'extension, ce qui permet son optimisation dans des packs de mise à niveau futurs fournis par IBM® ou sa personnalisation pour répondre aux besoins de votre propre projet particulier.

    Les API suivantes sont disponibles pour ce bean :

    • deviceBean.mobile - version EL. Identifie un périphérique en tant que périphérique mobile.
    • deviceBean.isMobile() - version JavaScript. Identifie un périphérique en tant que périphérique mobile.
    • deviceBean.tablet - version EL. Identifie un périphérique en tant que tablette.
    • deviceBean.isTablet() - version JavaScript. Identifie un périphérique en tant que tablette.
    • deviceBean.getValue() - version JavaScript. Utilisée pour accéder à toutes les autres méthodes d'une autre façon ainsi qu'à donner accès aux extensions futures. Ainsi, il est possible d'utiliser getValue('mobile') et de faire en sorte qu'il retourne le même résultat qu'isMobile OU getValue('chrome') afin de renvoyer un appel d'extension isChrome() qui, si EL (Expression Language) est utilisé, peut être deviceBean.chrome
    • deviceBean.iphone - version EL. Identifie un périphérique en tant qu'iPhone.
    • deviceBean.isIphone() - version JavaScript. Identifie un périphérique en tant qu'iPhone.
    • deviceBean.ipad - version EL. Identifie un périphérique en tant qu'iPad.
    • deviceBean.isIpad() - version JavaScript. Identifie un périphérique en tant qu'iPad.
    • deviceBean.android - version EL. Identifie un périphérique en tant que périphérique Android.
    • deviceBean.isAndroid() - version JavaScript. Identifie un périphérique en tant que périphérique Android.
    • deviceBean.blackberry - version EL. Identifie un périphérique en tant que périphérique Blackberry.
    • deviceBean.isBlackBerry() - version JavaScript. Identifie un périphérique en tant que périphérique Blackberry.
    • deviceBean.windows - version EL. Identifie un périphérique en tant que périphérique mobile Windows.
    • deviceBean.isWindows() - version JavaScript. Identifie un périphérique en tant que périphérique mobile Windows.
    • deviceBean.version['key'] - version EL. Retourne la version de la clé spécifiée (#{deviceBean.version['iphone']}, par exemple)
    • deviceBean.getVersion('key') - version JavaScript. Retourne la version de la clé spécifiée (#{javascript:deviceBean.getVersion('iphone');}, par exemple)
    Le code exemple ci-dessous fournit quelques exemples d'utilisation de l'API disponible à partir de deviceBean:
    <?xml version="1.0" encoding="UTF-8"?>
    <xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">
    	<xe:singlePageApp id="singlePageApp1"
    		selectedPageName="appPage1">
    		<xe:appPage id="appPage1" pageName="appPage1">
    			<xe:djxmHeading id="djxmHeading1">deviceBean</xe:djxmHeading>
    			<xe:djxmRoundRectList id="djxmRoundRectList1">
    				<xe:djxmLineItem id="djxmLineItem2" label="Mobile"
    					rightText="#{deviceBean.mobile}">
    				</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem5" label="Tablet"
    					rightText="#{deviceBean.tablet}">
    				</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem1" label="Android"
    					rightText="#{javascript:deviceBean.isAndroid()}">
    				</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem7" label="Apple"
    					rightText="#{javascript:deviceBean.getValue
    ('apple')}">
    				</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem8" label="Windows"
    					rightText="#{javascript:deviceBean.getValue
    ('windows')}">
    				</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem9" label="Blackberry"
    					rightText="#{javascript:deviceBean.getValue
    ('blackberry')}">
    				</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem22" label="iPhone"
    					rightText="#{javascript:deviceBean.isIphone()}">
    				</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem23" label="iPad"
    					rightText="#{deviceBean.ipad}">
    				</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem24" label="iPod"
    					rightText="#{javascript:deviceBean.getValue
    ('ipod')}">
    				</xe:djxmLineItem>
    			</xe:djxmRoundRectList>
    		</xe:appPage>
    	</xe:singlePageApp>
    </xp:view>

Dans le domaine des services Domino Access (API REST), les ajouts ou changements ci-après ont été apportés dans cette édition :

  • Service de base Domino - l'API REST API un accès aux ressources non spécifiques à l'un des domaines de services. Ainsi, la plupart des applications doivent lire des informations relatives aux mots de passe des utilisateurs authentifiés (date de dernière modification, date d'expiration, etc). Puisque cette exigence n'est pas spécifique à un service REST particulier (agenda, courrier, etc.), cette fonction est incluse dans les services de base. Les ressources disponibles depuis ces services incluent :
    • la ressource de statistiques de mot de passe (pwstats)
    • la ressource nonce
  • Service d'agenda Domino - il s'agit d'une API REST qui fournit des ressources et des méthodes pour accéder aux données d'agenda. Le service représente les données d'agenda dans les formats JSON et iCalendar.

Présentation du produit

IBM Domino Designer prend en charge le développement d'applications pour la plateforme IBM Domino en utilisant XPages, des formulaires, des vues et d'autres éléments, tels que des contrôles.

XPage est une technologie de développement d'applications rapide pour la création d'applications Web collaboratives. XPages fournit un ensemble riche de contrôles d'interface utilisateur et d'accès aux données reposant sur la technologie Java™ Server Faces Technology. XPages prend en charge l'intégration des ressources NFS IBM Notes et Domino, telles que des documents, des vues, des agents, des formules et la sécurité. Ces applications peuvent être rendue sous la forme de pages web 2.0 dynamiques dans un navigateur et dans le client Notes. L'interface de développement fournit un environnement de conception par glisser-déposer intuitif ainsi qu'un environnement de source XML. La présentation est gérée via des feuilles de style en cascade (CSS) et la logique métier peut être développée à l'aide de JavaScript.

La documentation Domino Designer inclut :

  • Le guide d'utilisation de Domino Designer présente le produit et décrit la technologie XPages, ainsi que les éléments qui la composent. Ce document décrit également les fonctions Domino Designer qui ont été ajoutées à la version 8.5.
  • Le document Domino Designer XPages Reference décrit l'interface JavaScript avec les objets Domino, les actions simples et d'autres éléments de programmation spécifiques à XPages.
  • Le document Domino Designer Basic User Guide and Reference décrit les éléments de type formulaire de Domino Designer, notamment les formulaires, les vues, les langages de formule, LotusScript, etc.

Cette documentation fait référence aux produits suivants : IBM Domino, IBM Domino Designer, IBM Notes, IBM iNotes et IBM Notes Traveler.

Présentation de XPages

Une application XPages se compose de code XML interprété par un serveur Domino ou un client Notes et il est rendu dans un navigateur Web ou un client Notes. Vous pouvez interagir avec les contrôles sur la page de sorte à envoyer des requêtes au serveur.

Par exemple, ce code XML est pour une application XPages contenant une zone d'édition et deux boutons :
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
	<xp:this.data>
		<xp:dominoDocument var="document1" formName="create"></xp:dominoDocument>
	</xp:this.data>
	<xp:inputText id="inputText1" value="#{document1.subject}"></xp:inputText><xp:br></xp:br>
	<xp:button id="button1" value="Submit"><xp:eventHandler event="onclick" submit="true" 
		refreshMode="complete" immediate="false" save="true"></xp:eventHandler></xp:button>
	<xp:button id="button2" value="Cancel"><xp:eventHandler event="onclick" submit="true" 
		refreshMode="complete" immediate="true" save="false"></xp:eventHandler></xp:button>
	<xp:this.navigationRules>
		<xp:navigationRule outcome="xsp-success" viewId="/main.xsp"></xp:navigationRule>
	</xp:this.navigationRules>
</xp:view>
Voici une explication ligne par ligne de ce que le code XML exemple signifie:
  • xmlns:xp="http://www.ibm.com/xsp/core"

    Domino définit des contrôles et d'autres artefacts dans l'espace de noms http://www.ibm.com/xsp/core en utilisant xp comme abréviation d'élément.

  • xp:dominoDocument var="document1" formName="create"

    L'application XPages est associée au formulaire Domino appelé create.

  • xp:inputText id="inputText1" value="#{document1.subject

    La zone d'édition est liée au champ intitulé subject sur le masque create.

  • xp:button id="button1" value="Submit", save="true", xp:navigationRule outcome="xsp-success" viewId="/main.xsp"

    Si vous cliquez sur le premier bouton, une requête est envoyée au serveur. Ce dernier enregistre les données provenant de la zone d'entrée en tant que nouveau document reposant sur le masque create puis envoie au client une nouvelle page intitulée main.

  • id="button2" value="Cancel", save="false"

    Si vous cliquez sur le second bouton, une requête est également envoyée au serveur. Dans ce cas, le serveur se contente de renvoyer la page main.

Domino Designer fournit une interface utilisateur incluant un navigateur, un éditeur XPages, une palette Contrôles, un onglet Propriétés, un onglet Evénements et d'autres artefacts. L'illustration suivante montre comment la page créée par le code XML précédent apparaît dans le mode de conception de Domino Designer :
interface utilisateur XPages

Les utilisateurs peuvent se servir du menu ou de la fonction de glisser-déplacer pour manipuler les contrôles et le texte dans l'éditeur. Les utilisateurs peuvent également utiliser les différents onglets pour définir des valeurs pour les propriétés et les événements. Notez également que les utilisateurs peuvent utiliser l'onglet Source pour éditer directement le XML.

Les utilisateurs font appel aux propriétés XPage afin d'identifier les formulaires Domino et les vues Domino en tant que sources de données et ils utilisent les propriétés de contrôle pour lier les contrôles aux zones d'une source de données.

Important : Soyez prudent si vous modifiez le code XML directement, car des erreurs pourraient empêcher la page XPage de fonctionner.
Les contrôles principaux sont :
  • Contrôle pour obtenir une entrée - Zone d'édition, Texte enrichi, Zone d'édition multiligne, Zone de liste, Zone de liste déroulante, Case à cocher, Bouton d'option, Groupe de cases à cocher, Groupe de boutons d'option, Sélecteur de date et d'heure
  • Contrôles pour effectuer des actions - Bouton, Chargement de fichier, Téléchargement de fichier
  • Contrôles pour l'affichage - Lien, Libellé, Champ calculé, Image, Erreur d'affichage, Erreurs d'affichage, Pager
  • Contrôles personnalisés - Zone modifiable
Les contrôles conteneurs comprennent :
  • Panneau - crée un rectangle sur la page pour y inclure d'autres contrôles
  • Répéter - ce contrôle répète une variable un certain nombre de fois.
  • Inclusion de page - incorpore une autre XPage
  • Table - crée une table avec un nombre fixe de colonnes et de lignes
  • Vue - incorpore une vue Domino
  • Table de données - crée une table dont les lignes du milieu sont variables en nombre et liées à une collection de données
  • Panneau à onglets - ce contrôle crée un ensemble de panneaux qui se chevauchent, chacun d'entre eux étant accessible par le biais d'un onglet.
  • Section - crée des panneaux condensables
L'interface de programmation est JavaScript, qui s'exécute aussi bien sur le serveur que sur le client :
  • JavaScript client se rattache à des événements comme onclick, onblur et onfocus. Ces scripts s'exécutent sur le navigateur web ou sur le client Notes avant qu'il n'envoie une requête au serveur et n'utilise le modèle Web DOM. Vous pouvez créer des scripts, par exemple qui vérifient qu'une zone d'entrée a du contenu ou qui confirment une opération de serveur qui supprime les données.
  • Le serveur JavaScript se rattache aussi aux événements mais s'exécute une fois que la requête a été transmise au serveur. De plus, JavaScript serveur peut servir à calculer les valeurs de contrôle, les liaisons de données et les propriétés. Le serveur JavaScript a accès à un ensemble étendu de bibliothèques, dont une pour les objets Domino. Il s'agit des mêmes objets Domino accessibles également via LotusScript et Java. Ils accèdent au magasin de données Domino et manipulent l'environnement Domino.
Sont également disponibles dans certains contextes les actions simples et le langage EL (Expression Language).

Les objets globaux fournissent un mécanisme de création simple pour les objets principaux. Ainsi, session est un objet NotesSession pour la session actuelle, database est un objet NotesDatabase pour la session actuelle, et context est un objet XSPContext pour le contexte dans lequel JavaScript s'exécute. Les variables de portée proposent un mécanisme simple de partage des valeurs entre les contrôles, les pages et les sessions.

Masques et vues

Dans Domino, un formulaire définit la manière dont les documents sont affichés à l'utilisateur et la façon dont les éléments de données du formulaire sont stockés. Une vue présente les documents en colonnes et en lignes.

Quand l'utilisateur final ouvre un nouveau document, le masque qui définit ce document est utilisé pour rendre une page sur l'interface utilisateur du client. Lorsque les utilisateurs sauvegardent le nouveau document, les données en provenance de l'interface utilisateur sont utilisées pour créer le document en fonction des définitions de données figurant sur le masque. De même, à l'ouverture d'un document par les utilisateurs, les données provenant du document sont rendues sur l'interface utilisateur client conformément aux définitions de données spécifiées sur le masque.

Généralement, chaque ligne d'une vue représente un document. Il est toutefois facile dans une application XPages de rassembler plusieurs vues en un seule, et dans ce cas, chaque ligne est en fait une vue de plusieurs documents.

Les colonnes peuvent contenir des valeurs de données tirées de documents ou des informations calculées, comme la date de la dernière modification du document. Il est possible de trier les vues et de les catégoriser pour mieux présenter les documents. Les vues peuvent être utilisées comme mécanismes d'accès aux données, permettant par exemple à l'utilisateur d'ouvrir un document en cliquant deux fois sur sa ligne dans la vue.

Les applications XPage utilisent les masques et les vues. Vous pouvez utiliser des formulaires pour connecter les contrôles de la page aux définitions de données Domino. Associez d'abord la page à un masque. Liez alors les contrôles d'entrée de données de la page aux champs du masque. Les vues Domino peuvent être incorporées dans des contrôles Vue XPages.

Les autres éléments Domino utilisables sur une page sont notamment les suivants :
  • les bibliothèques JavaScript
  • les ressources image
  • les ressources de feuille de style
  • les ressources de thème

Navigation dans Domino Designer

IBM Domino Designer est installé en tant que perspectives Eclipse qui comprennent des vues, des palettes et des éditeurs facilement accessibles. Vous pouvez exécuter les tâches en utilisant le menu principal, les menus contextuels et les icônes se trouvant dans les barres de titre des vues, des palettes et des éditeurs.

Les perspectives IBM Domino Designer sont les suivantes :
  • Domino Designer affiche tous les éléments de conception dans le navigateur Applications et apparaît initialement par défaut.
  • XPages exclut les éléments de conception non nécessaires au développement XPages.
  • Masques/Vues exclut les éléments de conception qui ne sont nécessaires qu'au développement XPages.

Pour changer de perspective, cliquez sur Fenêtre > Ouvrir la perspective.

Pour ajuster le contenu des perspectives, accédez à Fichier > Préférences > Domino Designer > navigateur Applications.

Les perspectives IBM Domino Designer étant définies selon les conventions Eclipse, vous pouvez déplacer, redimensionner, fermer et ouvrir des vues. Pour sauvegarder votre nouvel arrangement sous forme de perspective en lui attribuant le nom de votre choix, sélectionnez Fenêtre > Sauvegarder la perspective sous dans la barre de menus.

Vous pouvez également vous déplacer d'une vue à une autre à l'aide du raccourci clavier par défaut, Ctrl + F7, ou en cliquant sur Fenêtre > Navigation dans le menu principal d'Eclipse.

Pour afficher une vue non visible, cliquez sur Fenêtre > Afficher les vues Eclipse dans le menu principal d'Eclipse, puis sélectionnez la vue masquée dans la liste.

Eléments de conception et navigateur Applications

Les éléments de conception disponibles sont affichés par le navigateur Applications.

Par défaut, le navigateur Applications est situé à gauche de la fenêtre Quand vous créez ou ouvrez une application, les éléments qui la composent apparaissent dans le navigateur Applications.
  • Pour créer une application, cliquez sur Fichier > Nouveau > Application ou cliquez avec le bouton droit de la souris dans le navigateur Applications et sélectionnez Nouvelle application (Ctrl-N).
  • Pour ouvrir une application existante, sélectionnez-la dans le navigateur Applications ou, si elle ne s'y trouve pas, cliquez sur Fichier > Application > Ouvrir et sélectionnez-la.
  • Pour afficher les types d'élément de conception disponibles ainsi que les groupes d'éléments de conception, développez une application. Détaillez un groupe pour voir les types d'élément de conception qui le composent.
  • Pour créer un élément de conception d'un type sélectionné, utilisez le menu ou cliquez avec le bouton droit. Quand les éléments de conception sont créés, ils apparaissent sous leur type. Des listes d'éléments de conception peuvent s'afficher dans l'éditeur si vous cliquez deux fois sur le type d'élément. Les éléments de conception peuvent être ouverts pour édition en cliquant deux fois sur l'élément.

Le tableau suivant décrit chaque élément de conception et indique le type de l'application dans lequel il est généralement utilisé.

Elément de conception Description
Masques Fournit la structure permettant à la fois de créer et d'afficher des documents. Pour XPages, un masque peut être utilisé comme source de données.
Vues Listes triées et catégorisées de documents. Pour Designer, qui repose sur les masques, les vues sont les points d'entrée des données stockées dans une base de documents. Les vues peuvent être incorporées dans XPages.
Dossiers Conteneurs utilisés pour stocker les documents apparentés ou les groupes de documents. Les dossiers ont les mêmes éléments de conception que les vues.
XPages Définissent le texte et les commandes d'interface utilisateur dont les utilisateurs se servent lors de l'utilisation d'une application.
Contrôles personnalisés Ensemble de commandes de l'interface utilisateur stockées sous la forme d'un seul objet.
Agencements de cadres Ensemble de cadres permettant d'ajouter une structure à votre application.
Pages Elément de conception de base de données affichant des informations.
Eléments partagés - Sous-masques Ensemble d'éléments de formulaire stockés sous la forme d'un seul objet.
Eléments partagés - Champs Collecte les données. Vous créez des champs sur les masques, les sous-masques et les régions de présentation. Pour XPages, vous liez les contrôles à des champs.
Eléments partagés - Colonnes Affichent les valeurs de champ et d'autres informations relatives aux documents. Vous créez des colonnes dans les vues et dans les dossiers.
Eléments partages - Plans Fournissent une structure organisationnelle à une application et contrôlent la manière dont les éléments s'affichent dans un panneau de navigation.
Eléments partagés - Navigateurs Feuille de route graphique qui dirige les utilisateurs vers des parties spécifiques d'une application.
Code - Agents Définissent une tâche d'arrière-plan ou activée par l'utilisateur dans l'une des parties d'une application.
Code - Actions partagées Définit une tâche activée par l'utilisateur sur un masque ou une vue.
Code - Bibliothèque de scripts Contient du code LotusScript, Java ou JavaScript pour inclusion dans des éléments de programmation client ou serveur. Les bibliothèques JavaScript sont destinées aux XPages.
Code - Script de la base Eléments de programmation activés pour des événements de niveau application, comme l'ouverture ou la fermeture d'une application.
Code - Fournisseurs de services Web Application modulaire autonome auto-descriptive basée sur XML, qui peut être publié sur le Web et appelé depuis celui-ci. Un fournisseur de services Web est un service Web hébergé sur un serveur Domino qui peut être appelé à partir d'autres ordinateurs.
Code - Utilisateurs de services Web Appel les services Web sur d'autres ordinateurs.
Code - Java

Crée un élément Classe Java, Interface ou Enum dont la portée s'étend au projet NSF (sous Code/Java dans la perspective Java). Le code Java est directement appelable par le code dans XPages.

Code - Jars

Permet de travailler avec les bibliothèques/code Java incluses à l'application NSF. Vous évite de déployer des JARS sur un serveur et/ou d'inclure des fichiers source uniquement dans la base de données de l'application. Cet élément est uniquement disponible pour les applications XPage, où le fichier JAR est automatiquement chargé par l'environnement d'exécution XPages.

Données - Connexions de données Ressources établissant une échange de données entre une application Domino et une source de données externe.
Données - Vues d'accès DB2 Définit une vue DB2 des données Notes.
Ressources - Images Peuvent être utilisées en tant que graphique ou icône sur des Xpages, des pages, des formulaires, des sous-masques, des boutons d'action, des entrées de plan et en tant qu'images d'arrière-plan sur des formulaires, des documents, des pages, des cellules de tableaux et des boutons d'action.
Ressources - Fichiers Permettent de partager des fichiers non NSF dans des applications.
Ressources - Applets Programme Java autonome qui peut être exécuté dans votre application Domino.
Ressources - Feuilles de style Peuvent être créées ou importées. Par défaut, les pages XPages et les contrôles d'interface utilisateur se servent des feuilles de style en cascade (CSS) fournies avec Domino. Vous pouvez remplacer les valeurs par défaut par ces ressources.
Ressources - Thèmes Personnalisations côté serveur d'une génération HTML à utiliser pour définir l'apparence d'une application. Par défaut, les pages XPages et les contrôles d'interface utilisateur se servent du thème défini pour le serveur. Ce thème global peut être modifié pour toutes les applications. Il peut être remplacé par un thème spécifique d'une application.
Ressources - A propos du document Décrit la fonction d'une application.
Ressources - Utilisation du document Fournit des instructions aux utilisateurs.
Ressources - Icône Aide les utilisateurs à identifier rapidement la base de documents sur les panneaux de signets ; peut être introduite dans votre application à partir de l'éditeur d'icône.
Applications composites - Propriétés de câblage Donne accès aux fichiers WSDL dans une application composite.
Applications composites - Applications Donnent accès aux fichiers XML requis contenant les définitions de l'application composite.
Applications composites - Composants Déployés dans les applications composites si basés sur des XPages
Configuration d'application - Propriétés de l'application Permet de définir des propriétés au niveau de l'application.
Configuration d'application - Faces-config Fournit un accès en édition à webcontent\web-inf\faces-config.xml. Il s'agit du fichier de configuration qui est utilisé pour la configuration des beans gérés (entre autres, tels que les convertisseurs/des valideurs personnalisés) dans les XPages.
Configuration d'application - Propriétés Xsp Fournit un accès en édition au fichier contenant la collection des paramètres d'infrastructure XPages, appelés xsp.properties. Il est employé au niveau de l'application ou du serveur afin de définir et de contrôler les paramètres XPages dans votre application XPages. Chaque application NSF XPages contient un fichier de propriétés xsp.properties.

Puisque ce guide utilisateur se concentre sur XPages et sur les applications se servant d'XPages, il présente en détail un sous-ensemble d'éléments utilisés dans les applications XPages. Vous trouverez des informations détaillées sur les éléments de conception et les applications reposant sur les masques dans le document Références et guide de l'utilisateur de base de Domino Designer.

Sélection et filtrage des types d'éléments de conception

Vous pouvez sélectionner et filtrer les types d'éléments de conception que vous souhaitez afficher dans le navigateur Applications en effectuant vos sélections dans Préférences > Domino Designer > navigateur Applications.

Sélectionnez les éléments que vous préférez utiliser et afficher en sélectionnant les éléments dans le panneau Préférences. En sélectionnant la perspective de votre choix dans une liste du panneau, vous pouvez aussi définir les sélections et les options de filtrage séparément pour chacune des trois perspectives : Domino Designer, XPages et Masques/Vues Domino Designer.

Comparaison des versions d'éléments de conception

Vous pouvez comparer différentes versions d'éléments de conception ou des ressources en faisant un clic droit sur un élément spécifique et en sélectionnant le type de comparaison dans le menu contextuel. Lors d'une comparaison, tous les éditeurs de comparaison s'affichent dans la zone de l'éditeur. Les différences entre les versions sont mis en évidence dans l'éditeur de comparaison, ce qui vous permet de parcourir et copier les changements entre les versions à comparer.

Vous pouvez effectuer les types de comparaison suivants :
  • Comparer avec > Historique local - Compare l'élément ou la ressource sélectionné(e) à celui ou celle figurant dans l'historique local, enregistré(e) lorsque vous sauvegardez des modifications.
  • Comparer avec > Réciproquement - Compare deux ou trois éléments ou ressources sélectionné(e)s les uns aux autres

Editeur de conception

L'éditeur est l'espace où vous éditez des XPages et autres éléments de conception, et affichez les listes d'éléments de conception.

La vue Propriétés affiche, dans l'éditeur, les propriétés pour la sélection actuelle. Par exemple, si vous utilisez un contrôle d'interface utilisateur dans une page XPage, dès que vous cliquez dessus dans l'éditeur XPages, la vue Propriétés affiche ses propriétés.

Vous pouvez effectuer les tâches suivantes dans l'éditeur :

Tâche Action
Ouvrir un élément de conception ou une liste Sélectionnez la liste ou élément de conception dans le navigateur Applications. Cliquez deux fois dessus ou sélectionnez Fichier > Ouvrir.
Basculer entre les éléments de conception ouverts et les listes Cliquez sur l'onglet de la liste ou l'élément de conception que vous souhaitez afficher.
Fermer un élément de conception ou une liste Cliquez sur l'icône Fermer (un X) de l'élément de conception ou sélectionnez Fichier > Fermer.
Fermer tous les éléments de conception et toutes les listes, y compris celui ou celle actuellement ouvert(e) Cliquez sur Fichier > Tout fermer. Vous pouvez également cliquer avec le bouton droit de la souris et sélectionner Tout fermer.
Agrandir l'éditeur Cliquez sur l'icône Agrandir ou cliquez deux fois sur l'onglet.
Restaurer la taille et l'emplacement d'origine de l'éditeur Cliquez sur l'icône Restaurer ou cliquez deux fois sur l'onglet. Cette fonction est activée uniquement si vous avez maximisé l'éditeur.
Redimensionner l'éditeur avec les flèches du clavier Cliquez avec le bouton droit de la souris sur l'onglet, sélectionnez Taille, puis Gauche, Droite, Haut ou Bas pour mettre en évidence un bord de l'éditeur. Appuyez ensuite sur la flèche du clavier appropriée pour développer ou réduire l'éditeur.

Editeur Source

Utilisez l'éditeur source pour éditer directement le code source XPages.

Lorsque vous éditez une XPage, vous pouvez utiliser l'onglet Source pour éditer directement le code source XPages. Cela peut s'avérer très utile si vous connaissez le langage de XPages.

Vous pouvez effectuer les tâches suivantes dans l'éditeur :

Tâche Action
Utilisation de l'assistant de contenu lors du codage.

Appuyez sur CTRL+ESPACE pour appeler les fonctions d'assistant de contenu lors du codage. Ceci fonctionne également pour SSJS (Server Side JavaScript) imbriqué dans votre XPage.

L'assistant de contenu en tant que fonction de l'éditeur de source XPages est géré via l'utilisation d'un schéma. Domino Designer génère de manière dynamique un schéma basé sur l'application Notes en cours. Le schéma contient des informations d'aide pour chaque attribut de chaque balise dans le cadre de l'exécution de XPages.

Utilisation de la navigation du lien hypertexte lors du codage.

La navigation de lien hypertexte décrit la fonctionnalité Eclipse générique au cours de laquelle le texte dans un éditeur peut être transformé en lien hypertexte. Appuyez sur CTRL tout en survolant n'importe quel texte ou lien (y compris un nom de contrôle personnalisé) pour accéder directement à cet élément de conception/emplacement de lien. Eclipse indique à l'éditeur que vous utilisez la navigation de lien hypertexte.

Par exemple, vous pouvez utiliser cette fonction lors de l'édition des contrôles personnalisés. Lorsque vous appuyez sur CTRL et déplacez le curseur sur une commande personnalisée dans l'éditeur de source, la navigation entre liens hypertexte vous permet d'accéder directement au contrôle personnalisé.

Utilisation de l'aide contextuelle lors du codage.

Pour utiliser cette fonction, déplacez le curseur sur un 'noeud' particulier avec votre curseur pour obtenir plus d'informations à ce sujet. Comme pour la navigation de lien hypertexte, (voir ci-dessus), la structure de l'éditeur Eclipse est capable de fournir une description pour la balise actuelle (et l'attribut).

Tous les attributs et balises fournissant une description via xsp-config sont capables de rendre ces informations visibles dans la fonction d'aide contextuelle de l'éditeur source des XPages.

Vous pouvez contrôler le comportement de cette fonctionnalité à partir de l'onglet Préférences Domino Designer. La fonction est activée par défaut, avec un délai de 500 millisecondes associé à la préférence. Autrement dit, une fois que le curseur a été "au repos" pendant plus de 500 ms (millisecondes), la structure d'éditeur Eclipse appelle la fonction d'aide contextuelle de l'éditeur source XPages.

Appel du système d'aide du produit Appuyez sur F1 pour ouvrir l'aide contextuelle.
Effectuez les autres tâches d'édition. Cliquez avec le bouton droit sur la page de l'éditeur Source pour afficher un menu des autres actions que vous pouvez effectuer dans l'éditeur.
Agrandir l'éditeur Cliquez sur l'icône Agrandir ou cliquez deux fois sur l'onglet.
Restaurer la taille et l'emplacement d'origine de l'éditeur Cliquez sur l'icône Restaurer ou cliquez deux fois sur l'onglet. Cette fonction est activée uniquement si vous avez maximisé l'éditeur.
Redimensionner l'éditeur avec les flèches du clavier Cliquez avec le bouton droit de la souris sur l'onglet, sélectionnez Taille, puis Gauche, Droite, Haut ou Bas pour mettre en évidence un bord de l'éditeur. Appuyez ensuite sur la flèche du clavier appropriée pour développer ou réduire l'éditeur.

Palettes et vues

Les palettes et les vues fournissent les outils permettant d'utiliser les éléments de conception.

Palettes

Les palettes vous permettent de travailler avec des contrôles et des sources de données. Les palettes suivantes sont disponibles :

Palette Contrôles
Contient les contrôles de l'interface utilisateur permettant de concevoir la présentation des XPages et de déterminer le mode de saisie et de stockage de données dans la base de documents. Vous pouvez déplacer des contrôles par glisser-déposer de la palette Contrôles vers XPages.

Cette palette est uniquement active lorsque l'éditeur de XPages est actif, par exemple, si vous éditez une XPage ou un contrôle personnalisé. La palette contient des tiroirs de contrôles d'interface utilisateur : Contrôles principaux et Contrôles conteneurs. Elle contient également un tiroir pour les contrôles personnalisés, si vous en avez ajouté à l'application IBM Domino Designer en cours.

Un tiroir est un panneau imbriqué qui vous permet de faire défiler les options à l'aide des flèches vers le haut et le bas situées au début et à la fin de chaque tiroir.

Vous pouvez également effectuer les tâches suivantes avec la palette et les tiroirs:
  • Pour masquer la palette, fermez-la.
  • Pour modifier les propriétés de la palette, cliquez à l'aide du bouton droit de la souris et faites une sélection.
  • Pour développer ou réduire un tiroir, cliquez dessus.
Palette Données
Espace où vous visualisez les sources de données associées à la XPage ou au contrôle sélectionné dans l'éditeur de XPages. Pour afficher la palette Données, cliquez sur Fenêtre > Afficher les vues Eclipse > Palette Données.

Gardez à l'esprit les remarques ci-après quand vous glissez et déplacez des éléments depuis les palettes Contrôles et Données :

  • Vous pouvez ajouter des contrôles à tous les contrôles conteneurs, à l'exception des panneaux de vue.
  • A l'exception du contrôle Lien, vous n'avez pas le droit d'ajouter de contrôle à un contrôle principal. En effet, un contrôle Lien peut avoir des enfants, et il agit ainsi comme un contrôle conteneur à cet égard. Si vous essayez d'ajouter un contrôle à un contrôle principal, le nouveau contrôle est ajouté à la page au-dessus du contrôle existant.
  • Sur l'onglet Source, vous pouvez transformer un contrôle en premier ou dernier enfant d'un contrôle conteneur en le faisant glisser jusqu'à la balise de début ou de fin du conteneur, en cliquant deux fois dessus, ou en utilisant le menu Créer avec la balise de début et de fin mise en évidence.
  • Vous ne pouvez ajouter des contrôles que dans les cellules d'un tableau et non pas dans les lignes ni dans le conteneur de tableau lui-même.
  • Vous pouvez ajouter des contrôles à une colonne dans une table de données. Une fois que vous avez créé des contrôles sur l'onglet Source, vous pouvez ajouter des contrôles de conteneur définis en tant qu'en-tête ou bas de page de tableau de données (ou colonne de tableau de données). Pour définir un contrôle en tant qu'en-tête ou pied de page, ajoutez-le à un élément xp:this.facets dans la colonne ou table de données.
  • Vous ne pouvez ajouter des contrôles que sur les onglets d'un panneau à onglets et non pas sur le panneau lui-même.
  • Si vous faites glisser un contrôle jusqu'à la balise de fin d'un panneau à onglets de l'onglet Source, ou utilisez le menu Créer avec la balise de fin mise en évidence, le contrôle sera ajouté sur le dernier onglet du panneau à onglets.
  • Vous pouvez insérer un contrôle à un contrôle personnalisé qui a été ajouté dans une page XPage uniquement s'il existe une zone modifiable définie pour le contrôle personnalisé. Si la zone modifiable a un nom de facette, il n'est possible d'ajouter qu'un seule contrôle ; si vous supprimez le nom de facette, vous êtes en mesure d'ajouter plusieurs contrôles.
  • Vous ne pouvez pas ajouter un contrôle à un contrôle personnalisé imbriqué dans un autre contrôle personnalisé.
  • Quand vous faites glisser des sources de données à partir de la palette de données, vous pouvez réorganiser les sources avant qu'elles ne soient insérées sur la page. Dans la partie supérieure de la palette Données, cliquez sur l'icône Sélectionner contrôles puis sélectionnez Sélection de contrôles liés à des données. Utilisez les touches de déplacement du curseur pour faire glisser les sources de données vers la page.

Vous pouvez créer des profils de palette de contrôle à partir desquels vous sélectionnez les contrôles qui apparaissent dans la palette de contrôle et leur ordre d'apparition. Vous pouvez créer plusieurs profils de palette, avec différentes dispositions de palettes de contrôle que vous pouvez activer tour à tour. Pour accéder aux paramètres de profil des palettes, sélectionnez Fichier-Préférences-Domino Designer-Palette. La liste suivante fournit des informations supplémentaires sur l'utilisation des profils de palette de contrôle :

  • Par défaut, un profil initial nommé Profil1 est créé. Ce profil contient l'état actuel de la palette quand Designer est lancé pour la première fois. Si vous avez modifié la palette en vous servant de l'ancienne page des préférences de palette de Designer, ces changements sont répercutés dans Profil1. Vous pouvez renommer et supprimer Profil1 à partir de l'interface utilisateur des profils de palette.
  • L'interface utilisateur possède une liste des profils et une arborescence affichant les tiroirs de contrôle et les contrôles dans ces tiroirs. L'arborescence montre la présentation de la palette pour le profil sélectionné dans la liste des profils. Vous pouvez cocher les contrôles/tiroirs que vous voulez afficher dans la palette et désélectionnez ceux que vous ne souhaitez pas voir. Il vous est aussi possible de déplacer des contrôles individuels dans leur tiroir parent mais le déplacement des contrôles entre les tiroirs est interdit.
  • Vous pouvez aussi réorganiser les tiroirs. La réorganisation des tiroirs des contrôles n'est cependant pas prise en charge par la palette Contrôles pour la présente édition. Les contrôles personnalisés n'apparaissent jamais dans l'arborescence mais sont toujours présents dans la palette des contrôles.
  • Quand vous cliquez sur la commande de création pour créer un nouveau profil, la disposition de palette des nouveaux profils repose sur le profil actuellement sélectionné dans la liste des profils. Par défaut, le profil actif est sélectionné dans la liste des profils. Pour changer de profils, sélectionnez simplement le profil que vous voulez activer puis cliquez sur "Appliquer" ou "OK".
  • Pour restaurer le fichier sélectionné sur le profil par défaut, cliquez sur Restaurer les valeurs par défaut. La restauration du profil par défaut ne supprime pas les profils permettant de créer.
  • Si vous supprimez tous les profils de la liste des profils, Profil1 est recréé, avec une disposition de palette correspondant à la disposition par défaut.

Vues

Les vues sont des panneaux dans Eclipse qui permettent de consulter et travailler avec les différents aspects de votre application. Les vues suivantes sont disponibles :

Vue Evénements
Espace où vous créez des événements pour des XPages et des contrôles. Vous pouvez utiliser cette vue pour associer des actions ou des scripts simples à des événements. Les événements sont organisés en catégories pour y accéder plus facilement.

Lors de l'écriture de scripts, vous pouvez créer des événements sur le serveur ou sur le client. Vous pouvez spécifier des options pour mettre à jour des XPages une fois que les événements se sont produits, y compris des mises à jour partielles d'une partie des éléments de XPage basés sur la technologie AJAX (Asynchronous JavaScript And XML).

Pour les actions simples, vous pouvez écrire des actions qui exécutent une activité préprogrammée pouvant être modifiée par des arguments. Vous pouvez également créer des groupes d'actions simples.

Vue Structure
Fournit une représentation hiérarchique du code source XML dans des XPages. Vous pouvez cliquer sur les noeuds individuels de cette vue pour naviguer dans la page XPage et mettre à jour des propriétés dans la vue Propriétés. Vous pouvez également faire glisser et déposer des éléments afin de réorganiser des sections et modifier la séquence des éléments.
Vue Erreurs
Affiche des erreurs, des avertissements et d'autres informations sur les ressources d'IBM Domino Designer. Ces messages sont générés quand vous générez l'espace de travail Eclipse. Par exemple, si vous enregistrez une XPage contenant des erreurs de syntaxe, la vue Erreurs affiche ces erreurs.
Vue Propriétés
Espace où vous définissez des propriétés pour les XPages et les contrôles. Cette vue interagit avec l'éditeur actuellement ouvert. Ainsi, si vous êtes en train de concevoir une page XPage et que vous déplacez la mise en évidence sur un contrôle d'interface utilisateur spécifique de cette page, les propriétés associées à ce contrôle s'affichent dans la vue Propriétés.

La vue Propriétés se trouve en bas de la fenêtre IBM Domino Designer et contient des onglets individuels sur lesquels vous pouvez cliquer pour afficher un ensemble d'options. Etant donné que chaque page XPage et contrôle d'interface utilisateur possède son propre ensemble unique de propriétés, les onglets et les options qu'ils contiennent changent en fonction de la sélection actuelle. Par exemple, lorsque vous visualisez une liste de XPages, si vous cliquez sur le nom d'une XPage spécifique, la vue Propriétés affiche des informations générales sur la XPage, telles que son nom, son auteur et sa date de création. Si vous cliquez deux fois sur le nom d'une page XPage, cette dernière s'ouvre en mode édition dans l'éditeur XPages d'IBM Domino Designer et un nouvel ensemble d'onglets apparaît dans la vue Propriétés. Ces onglets changent en fonction de la sélection actuelle dans l'éditeur, totalité de la page XPage ou contrôle d'interface utilisateur individuel, par exemple.

Vous pouvez réduire, agrandir et restaurer la vue à l'aide des boutons situés sur la barre de titre Propriétés. Cliquez ave le bouton droit de la souris sur l'onglet Propriétés pour effectuer les tâches suivantes :
  • masquer la vue
  • réduire et agrandir la vue
  • détacher la vue en tant que fenêtre distincte
  • restaurer une vue réduite ou agrandie

Comment obtenir des informations ?

La façon la plus rapide d'accéder aux informations est de consulter le système d'aide installé. Les autres ressources possibles sont un centre de documentation, un wiki Domino Designer et des articles sur différents sites Web.

Pour accéder à l'aide depuis Domino Designer ou Notes, cliquez sur Aide > Table des matières de l'aide. L'accès le plus rapide aux informations s'effectue par la recherche, pour laquelle quelques conseils sont proposés ci-dessous :
  • Entrez des mots entiers, sans vous préoccuper de la casse. Ainsi, si vous recherchez des informations sur la méthode createFTIndex, vous pouvez entrer createftindex, mais si vous tapez createftinde, la recherche échouera.
  • Il peut arriver que les résultats de la recherche affiche des titres en double ou similaires, particulièrement pour les rubriques de référence. Lorsque vous passez le pointeur de la souris sur un titre, un texte en incrustation vous indique le nom du fichier, cette information apparaissant également dans la ligne d'état.
  • Si vous utilisez fréquemment une partie de l'aide, vous devez y associer une portée de recherche. Consultez la rubrique d'aide relative à ce sujet.
En appuyant sur F1, vous affichez un système d'aide complémentaire dans le panneau de droite, dont certaines informations sont synthétiques par nature. Vous pouvez naviguer jusqu'à une documentation plus complète en utilisant les liens proposés ou en cliquant sur Rechercher ou Toutes les rubriques au bas de la page.

L'aide installée avec le produit est aussi disponible dans le centre de documentation Notes Domino à l'adresse http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp.

Visitez le wiki Domino Designer sur http://www.lotus.com/ldd/ddwiki.nsf pour des articles, des forums et des informations supplémentaires. Vous pouvez y poster des articles.

Servez-vous de Google ou d'un autre produit Web pour rechercher en dehors de l'aide, en commençant votre requête par domino designer. Ainsi, pour obtenir des informations sur la méthode createFTIndex, entrez domino designer createftindex comme requête de recherche.

Pour une introduction directe à XPages, utilisez le tutoriel proposé dans l'aide. Ce dernier utilise le modèle avancé Site Finder Demo.

Définition d'une portée de recherche

Une portée de recherche limite les rubriques d'aide sur lesquelles porte la recherche.

Pourquoi et quand exécuter cette tâche

Par défaut, une requête s'applique à toutes les rubriques de l'aide. Procédez comme suit pour créer une recherche nommée qui restreint la recherche aux rubriques spécifiées.

Procédure

  1. Dans la fenêtre d'aide Recherche, cliquez sur Portée de la recherche.
  2. Dans la boîte de dialogue Sélectionner la portée de la recherche, sélectionnez Rechercher uniquement dans les rubriques suivantes et cliquez sur Créer.
  3. Dans la boîte de dialogue Nouvelle liste de recherche, entrez un nom pour la recherche.
  4. Cochez les cases correspondant aux parties sur lesquelles vous voulez faire porter la recherche. Vous pouvez sélectionner les rubriques au niveau de démarrage et un niveau en-dessous.
  5. Cliquez sur OK pour enregistrer la portée et fermer la boîte de dialogue Nouvelle liste de recherche.

    La nouvelle portée apparaît dans la liste des portées quand Rechercher uniquement dans les rubriques suivantes est sélectionné.

    Créez maintenant une nouvelle portée, si vous le souhaitez.

    Vous pouvez aussi modifier ou supprimer la portée sélectionnée.

  6. Cliquez sur OK pour fermer la boîte de dialogue Sélectionner la portée de la recherche.
  7. La portée en vigueur apparaît à droite de Portée de la recherche. Pour la changer :
    1. Cliquez sur Portée de la recherche pour ouvrir la boîte de dialogue Sélectionner la portée de la recherche.
    2. Sélectionnez Rechercher uniquement dans les rubriques suivantes puis choisissez une portée ou sélectionnez Rechercher dans toutes les rubriques.
    3. Cliquez sur OK.

Exemple

Ainsi, pour créer une portée de recherche ne concernant que les rubriques Domino Designer, procédez comme suit : dans la boîte de dialogue Nouvelle liste de recherche, entrez Designer comme Nom de liste puis cochez toutes les rubriques de niveau supérieur dont le nom commence par Lotus Domino Designer.

Raccourcis clavier et accessibilité

Domino Designer propose quelques aides spécifiques aux utilisateurs à mobilité réduite ou vision limitée.

IBM Domino Designer propose quelques aides spécifiques aux utilisateurs à mobilité réduite ou vision limitée.

Domino Designer fournit en particulier

  • Des raccourcis clavier qui vous permettent de naviguer dans Domino Designer et d'y exécuter une grande variété de tâches.
  • Des touches de raccourci étendues qui vous permettent de naviguer dans la barre des signets et dans les onglets de fenêtre en vous servant du clavier. Vous devez activer ces touches pour pouvoir les utiliser.

Pour plus d'informations, voir la section d'aide du produit "Accessibilité et raccourcis clavier", dans Références et guide de l'utilisateur de base de Domino qui propose différentes rubriques relatives aux raccourcis clavier permettant de réaliser des tâches particulières.

Vous trouverez une édition accessible de l'aide produit complète dans le centre de documentation IBM Notes et Domino, à l'adresse http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp.

Il existe également des informations supplémentaires dans la rubrique relative à la "personnalisation de Notes pour l'accessibilité" dans l'aide Notes. Si l'aide n'est pas installée, vous pouvez aussi accéder à la bibliothèque technique IBM Documentation de developerWorks, à l'adresse http://www.lotus.com/ldd/doc, pour télécharger ou visualiser l'aide Notes.

Sinon, consultez le site Web IBM Special Needs à l'adresse http://www.ibm.com/able.

Tutoriels

Cette section, qui donne accès aux tutoriels, propose des informations sur ces derniers.

Le tutoriel actuellement disponible dans cette section est le tutoriel XPages Site Finder. Consultez les autres rubriques de cette section pour plus d'informations.

Tutoriel XPages Site Finder

Ce tutoriel démontre la facilité avec laquelle il est possible de créer une application Web dans IBM Domino Designer à l'aide d'éléments XPage. Il vous permet de créer et de prévisualiser trois XPages. Vous placez des contrôles sur les pages XPages afin de pouvoir accéder aux données et de les consulter, de naviguer vers d'autres pages, d'actualiser une page et d'effectuer diverses autres opérations. Vous allez même utiliser JavaScript.

Il est utile, mais pas essentiel, de connaître Domino Designer et les éléments de conception traditionnels. Par ailleurs, certains graphiques et éléments de conception en-dehors de notre champ d'étude sont préchargés. Pour ceux qui découvrent Eclipse, Navigation dans Domino Designer constitue un bon préambule.

L'application de démonstration, intitulée SiteFinderDemo, est un modèle avancé livré avec Domino Designer. Elle permet, comme le propose de nombreux sites Web, de localiser un emplacement précis. Vous entrez un code postal ou une adresse, et le serveur renvoie les lieux correspondants. Dans ce tutoriel, vous développez une page Web permettant de soumettre les données, ainsi que d'autres pages afin de créer et d'éditer les documents de site.

Pour plus de simplicité, l'accès n'est pas restreint. Tout le monde peut créer et éditer des documents. Cet accès vous permet de prévisualiser les fonctionnalités XPage sans avoir à configurer un serveur. Toutefois, pour une véritable application, il est recommandé de restreindre l'accès. Vous pouvez le faire facilement via une liste de contrôle d'accès. Dans le menu, cliquez sur Fichier > Application > Contrôle d'accès.

Le mécanisme de recherche de l'application de démonstration est simple ; il repose uniquement sur des correspondances exactes. Dans une véritable application, un mécanisme plus sophistiqué est appréciable.

Cette documentation fait référence aux produits suivants : IBM Domino, IBM Domino Designer, IBM Notes, IBM iNotes et IBM Notes Traveler.

Objectifs

  • Configuration et visualisation d'une application contenant des éléments XPage
  • Création d'une page XPage
  • Ajout de contrôles à une page XPage
  • Association de données à une page XPage
  • Ajout de fonctions de navigation à une page XPage
  • Création d'un contrôle personnalisé
  • Utilisation de fonctions avancées de liaison et de création de scripts

Durée

Environ 90 minutes sont nécessaires pour effectuer ce tutoriel.

Configuration de l'application exemple

Au cours de ce tutoriel, vous allez créer trois pages XPages nommées respectivement Site, SiteFinder et SiteList. Lorsque vous ouvrez pour la première fois le modèle d'application, vous voyez des pages XPages disposent de noms similaires. Trois d'entre elles sont des solutions finales et sont nommées respectivement SiteFinal, SiteFinderFinal et SiteListFinal. Deux sont des solutions intermédiaires : Site1 et SiteList1.

Lancez IBM Domino Designer et procédez comme suit :
  1. Dans le menu, cliquez sur Fichier > Application > Nouveau(Ctrl+B).
  2. Dans la fenêtre Nouvelle application, effectuez les étapes suivantes :
    1. Conservez la valeur Local actuellement sélectionnée dans Serveur.
    2. Indiquez un titre, par exemple Site Finder Demo.
    3. Acceptez ou modifiez le nom de fichier proposé (SiteFinderDemo.nsf, par exemple).
    4. Facultatif : Cliquez sur Chiffrement. Sélectionnez Ne pas chiffrer cette base localement, puis cliquez sur OK.

      Cette étape permet à d'autres utilisateurs Notes d'accéder à l'application en local (par exemple, si vous l'envoyez par courrier électronique à quelqu'un). Généralement, il est nécessaire de chiffrer les applications réelles afin de les sécuriser. Le chiffrement en local n'empêche pas l'application d'être partagée via sa réplication sur un serveur.

    5. Sélectionnez Créer index de recherche documentaire. Vous en aurez besoin ultérieurement.
    6. Conservez la valeur Local actuellement sélectionnée pour Serveur, relative aux modèles.
    7. Sélectionnez Afficher modèles avancés.
    8. Dans la liste des modèles, sélectionnez Site Finder Demo.
    9. Désélectionnez l'option Répercuter modifications.
    La fenêtre Nouvelle application doit désormais avoir une apparence semblable à l'image suivante.

    Fenêtre Nouvelle application

  3. Cliquez sur OK.

    Domino Designer crée la nouvelle application, et ses éléments s'affichent sous Applications dans la partie gauche de l'écran. Développez les différents éléments pour en savoir davantage sur la conception de cette application.

  4. Développez l'élément Code, puis cliquez deux fois sur Agents. Dans la liste des agents, cliquez avec le bouton droit de la souris sur Create sample data et sélectionnez Exécuter.

    Cet agent crée plusieurs exemples d'enregistrement que vous pouvez utiliser pour tester l'application. Répondez aux éventuels messages des boîtes de dialogue. Cliquez sur X dans le coin supérieur droit afin de fermer le panneau contenant la liste des agents.

  5. Développez XPages, puis cliquez deux fois sur Site Finder Demo (le résultat final pour SiteFinder).
  6. Cliquez sur Concevoir > Prévisualiser dans navigateur Web > Navigateur Web du système par défaut, ou sélectionnez un navigateur particulier parmi ceux répertoriés.

    Un mini serveur Web s'exécutant sur votre ordinateur ouvre un navigateur, génère du code HTML pour la page XPage et transmet la page au navigateur en utilisant localhost comme nom de serveur.

    Si la configuration de votre ordinateur ne prend pas en charge localhost, l'adresse URL de prévisualisation ne fonctionne pas. Ouvrez un navigateur et utilisez 127.0.0.1 ou l'adresse IP réelle de votre ordinateur dans l'URL, http://127.0.0.1/SiteFinderDemo.nsf/SiteFinderFinal.xsp, par exemple.

  7. Indiquez une valeur dans la zone Zip/Postal code (par exemple, 02108), puis cliquez sur Search.

    La page est alors envoyée vers le serveur. Ce dernier traite les informations contenues dans la page et transmet une autre page au client.

  8. Fermez le navigateur quand vous avez fini.
  9. Dans Domino Designer, fermez l'élément XPage en cliquant sur X dans l'onglet correspondant.

    L'affichage peut varier. Si un panneau comprend plusieurs onglets, un X figure sur chaque onglet. Si le panneau ne comprend qu'un seul onglet, celui-ci s'affiche comme une fenêtre et le X figure dans le coin supérieur droit.

N'hésitez pas à explorer l'application en prévisualisant les pages XPages comportant Final dans leur nom. Ces pages XPages correspondent à la version définitive des éléments que vous concevez au cours de ce tutoriel.

Création d'une page XPage

Cette leçon vous apprend à créer une page XPage de base.

Cette leçon fait appel à un masque et à une vue, mais elle n'indique pas comment les créer. Le masque Site contient les zones de stockage des informations du site et des critères de recherche ; la vue SiteList est utilisée pour afficher la liste des sites et les résultats de la recherche. Consultez-les rapidement. Pour obtenir de la documentation sur les formulaires et les vues, voir Références et guide de l'utilisateur de base de Domino Designer dans l'aide.
  • Les masques sont utilisés par des pages XPages pour définir les données stockées dans un document, et non la façon dont elles sont affichées. Cette définition est similaire à l'utilisation de zones masquées sur les masques d'affichage pour organiser et calculer des données. Le masque Site contient les zones de données pour la création de documents et un texte explicatif. Les utilisateurs ne le voient jamais ; la présentation n'est donc pas importante.
  • Des vues sont utilisées par les pages XPages pour définir des collections de documents et leur ordonnancement. Pratiquement comme vous utiliseriez une vue simplement pour indexer des données afin qu'elles puissent être traitées à l'aide d'un programme, la vue SiteList fait office d'index pour vos documents de données. Elle répertorie le contenu de tous les documents triés par nom de site. Les vues constituent une méthode efficace d'organisation des documents et il est courant que plusieurs vues affichent différents sous-ensembles et ordres de tri.

Vérifiez que l'application est étendue et procédez comme suit :

  1. Cliquez deux fois sur XPages.

    Cette action affiche une liste d'éléments XPage dans le panneau central.

  2. Cliquez sur Nouvelle XPage.
  3. Attribuez le nom SiteList à votre nouvelle page. (L'extension .xsp est utilisée et automatiquement ajoutée.)

    Vous pouvez utiliser des espaces dans le nom, mais les noms sont généralement plus clairs sans ceux-ci.

  4. Cliquez sur OK. Un élément de conception XPage vide est créé dans le panneau central.
  5. Placez les graphiques d'en-tête sur la page :
    1. Dans Contrôles principaux, sélectionnez et faites glisser Image vers la XPage. La fenêtre Sélectionner une image s'affiche.
    2. Sélectionnez xpTitlebarLeft_ren.gif.

      La fenêtre Sélectionner image est similaire à cette capture d'écran.

      Fenêtre Sélectionner image

    3. Cliquez sur OK.

    Les images que vous voyez dans la capture d'écran ont été préchargées. Chaque image de la liste est une ressource de la base de données en cours. Le bouton Ajouter permet d'importer des images supplémentaires (et il existe d'autres façons d'importer des images).

    Après avoir cliqué sur OK, l'image doit s'afficher en tant qu'en-tête.

  6. Cliquez dans l'espace vide à droite de l'image en l'en-tête, ou appuyez sur la flèche Droite pour aller dans cette direction. Vous devrez peut-être faire défiler la page vers la droite si l'espace n'est pas visible. Appuyez sur Entrée pour que le curseur passe à la ligne suivante.
  7. Entrez un texte d'en-tête :
    1. Sur la XPage, cliquez sur la ligne vide située sous l'en-tête.
    2. Tapez Liste de sites et appuyez sur Entrée.
    3. Mettez la ligne de texte en évidence.
    4. Dans le panneau du bas, cliquez sur Police et modifiez les polices comme vous le souhaitez (par exemple, gras 14 bleu).
    Vous ajouterez ultérieurement une feuille de style et vous l'appliquerez à ce texte, ce qui constituera une autre façon de contrôler le formatage.
La conception pour votre XPage est similaire à la capture d'écran suivante :

XPage SiteList

Les développeurs Web expérimentés peuvent être amenés à utiliser des éléments structurant le document, comme H1 et H2. L'interface utilisateur de conception ne prend pas cette structure en charge, mais l'interface utilisateur source permet d'entrer du XML. Cliquez sur l'onglet Source pour afficher et modifier la page en tant que XML. Cliquez sur l'onglet Conception pour revenir dans le tutoriel.

Ajout d'un contrôle Vue

Un contrôle Vue XPage permet d'afficher des informations à partir d'une vue définie. Le contrôle que vous créez au cours de cette leçon vous permet d'afficher les données de la vue SiteList.

Assurez-vous que la XPage List of Sites est ouverte dans le panneau central, puis procédez comme suit :
  1. Sous Contrôles conteneurs, sélectionnez et faites glisser l'élément Vue vers la page XPage.
  2. Dans la fenêtre Sélectionner la source de données pour la vue, effectuez les opérations suivantes :
    1. Dans Afficher des données depuis, conservez Vue Domino.
    2. Dans Application, conservez En cours.

      Vous pouvez sélectionner n'importe quelle application Domino, mais le contrôle de vue ne fonctionne que si cette application est disponible sur le serveur d'exécution.

    3. Dans la liste déroulante Vue, sélectionnez SiteList.
    4. Entrez view1 dans Nom source données.

      Ce nom peut être utilisé dans du code JavaScript côté serveur.

    5. Dans la liste des colonnes figurant à la fin de l'écran, conservez les cases NomSite, Adresse, Ville et TypeSite sélectionnées.

    La fenêtre est similaire à cette capture d'écran.

    Fenêtre Sélectionner la source de données pour la vue

  3. Cliquez sur OK.

    Un tableau représentant la vue s'affiche. Les quatre colonnes représentent les colonnes de la vue, et deux lignes indiquent les titres et le contenu des colonnes. La première ligne contient une commande de pagineur qui permet à l'utilisateur de naviguer dans les données de la vue.

  4. Ajustez le contrôle Vue :
    1. Pour redimensionner les colonnes, sélectionnez les deux lignes d'une colonne en cliquant sur la cellule de la première ligne en maintenant la touche Maj enfoncée tout en cliquant sur la seconde cellule, puis faites glisser la poignée d'une des cellules.
    2. Sélectionnez la totalité de la ligne d'en-tête en cliquant sur la première cellule et en maintenant la touche Maj enfoncée pendant que vous cliquez sur les autres cellules de la ligne. Appuyez sur Ctrl+G ou utilisez les propriétés de police pour mettre ces cellules en gras.
  5. Autorisez les utilisateurs à ouvrir un document en cliquant dessus dans la première colonne du contrôle de vue :
    1. Cliquez à l'intérieur de la cellule gauche à la fin (SiteName).
    2. Sur l'onglet Propriétés dans le panneau inférieur, cliquez sur Affichage.
    3. Sélectionnez Afficher les valeurs dans cette colonne sous forme de liens.

    La page est similaire à cette capture d'écran.

    XPage List of Sites avec contrôle Vue

  6. Liez le contrôle Vue à la page d'édition.
    1. Cliquez sur le contrôle de vue pour mettre en évidence la totalité de la vue.
    2. Dans l'onglet Propriétés du panneau du bas, cliquez sur Vue.
    3. Dans la liste déroulante Lors de l'exécution, ouvrir le document sélectionné à l'aide de à la fin, sélectionnez Site1.
  7. Enregistrez la page, puis lancez sa prévisualisation.
    1. Cliquez sur la XPage pour mettre en évidence la page.

      Pour ce faire, vous pouvez également cliquer, dans le volet de droite, sur Structure > Document racine > XPage. Cette action met en évidence la page proprement dite. Il vous est aussi possible de mettre en évidence des éléments de conception spécifiques en cliquant dessus sous Plan.

    2. Appuyez sur Ctrl+E afin d'enregistrer la page.
    3. Cliquez sur Concevoir > Prévisualiser dans navigateur Web > Navigateur Web du système par défaut ou sur le navigateur de votre choix. Cliquez sur un document de la liste. Il s'ouvre avec la XPage Site. Vous pouvez apporter des modifications au document à partir de cette fenêtre et cliquez sur Submit pour les enregistrer. Lorsque vous soumettez la page, vous n'êtes pas redirigé vers un autre écran et vous pouvez donc continuer à éditer et enregistrer le même document.
      Plusieurs opérations permettent d'enregistrer les modifications et d'actualiser le navigateur :
      • Le bouton Submit que vous utilisez dans ce tutoriel met à jour les sources de données et actualise la page.
      • Le bouton Bouton vous permet d'associer de simples actions ou du code JavaScript à un événement onclick. Utilisez ce type d'événement pour mettre à jour les sources de données et rediriger l'utilisateur vers une autre page.
      • Les événements de page permettent d'associer de simples actions ou du code JavaScript à un événement postSaveDocument. Vous pouvez placer un bouton Soumettre sur la page et, dans l'événement postSaveDocument, redirigez l'utilisateur vers une autre page.

      Votre XPage est similaire à SiteList1 que vous pouvez ouvrir à titre de comparaison.

  8. Fermez votre navigateur.

Création d'une page XPage pour édition

Des masques peuvent aussi être utilisés pour concevoir des pages Web, mais les pages XPages permettent d'utiliser plus d'options d'interface utilisateur et d'obtenir de façon plus simple, un contrôle accru de l'apparence. Il est également utile d'avoir un masque pour fournir une liste de zones pour la liaison de données. De plus, le masque peut être utilisé pour procéder au calcul de zones calculées via des formules de zones et non via du code sur la XPage.

Dans cette leçon, vous allez apprendre à ajouter du texte sur une page, ajouter des contrôles sur une page, modifier l'apparence d'une page via des feuilles de style et lier des sources de données avec une page. Les étapes sont nombreuses, mais ne les effectuez qu'une par une.

Effectuez les opérations suivantes :

  1. Au début de la liste des XPages, cliquez sur Nouvelle XPage. Vous pouvez aussi cliquer avec le bouton droit de la souris sur XPages > Nouvelle XPage.
  2. Attribuez le nom Site à votre page et cliquez sur OK. Les noms de la page XPage et du masque ne doivent pas forcément être les mêmes, mais c'est cependant plus pratique. Le fait de leur attribuer le même nom permet certains comportements automatiques qui n'entrent pas dans le cadre de ce tutoriel.
  3. Ajoutez une feuille de style à la page, comme suit :
    1. Dans le panneau de fin, cliquez sur Style.
    2. Faites défiler jusqu'à la fin et cliquez sur Ajouter une feuille de style à la page
    3. Dans la zone Ajouter une feuille de style à la page , sélectionnez styles.css.
    4. Cliquez sur OK.
    Ces fichiers CSS sont des éléments de conception de feuilles de style inclus dans le modèle d'application.
  4. Ajoutez une titre pour la page et définissez un style, comme suit :
    1. Sur la page XPage, tapez un titre pour la page, par exemple, Site Description et appuyez sur Entrée.
    2. Mettez le texte en évidence.
    3. Dans le panneau du bas, cliquez sur Style si vous ne vous y trouvez pas déjà.
    4. Dans la liste figurant sous styles.css, cliquez sur .title.
    L'apparence du texte va changer afin de se conformer au style sélectionné.
  5. Associez (liez) la page XPage au magasin de données dorsal Domino comme suit :
    1. Cliquez en dehors du texte sur la page XPage afin que la page soit sélectionnée.
    2. Dans le panneau du bas, sous Propriétés, cliquez sur Données.
    3. Cliquez sur Ajouter et sélectionnez Document Domino.

      Une source de données document1 s'affiche.

    4. Sur le côté du panneau, localisez Formulaire et sélectionnez Site dans la liste déroulante.

      Ainsi, la XPage est associée aux définitions de données sur le masque Site.

  6. Configurez la palette de données comme suit :
    1. En bas sur le côté, cliquez sur le lien Palette de données. Un onglet Données s'affiche dans le panneau de côté. Vous pouvez aussi afficher l'onglet Données en cliquant sur Fenêtre > Afficher les vues Eclipse > Données.
    2. Sur l'onglet Données, sélectionnez document1 pour Source de données. Il se peut que vous deviez sélectionner la page XPage pour que la nouvelle source de données s'affiche sur la palette Données.

      Les noms et types de zones pour la source de données s'affichent sous le nom de la source de données.

    3. Dans le coin supérieur gauche de l'onglet Données, cliquez sur l'icône de la Boîte de dialogue Sélectionner contrôles pour l'activer.

      L'icône pour la Boîte de dialogue Sélectionner contrôles a cet aspect :

  7. Sélectionnez et faites glisser toutes les zones de la palette Données sur la page XPage sous le titre.

    La boîte de dialogue Sélectionner des contrôles de données liées s'ouvre.

  8. Renseignez la boîte de dialogue comme suit :
    1. Laissez toutes les cases à cocher sélectionnées pour indiquer que vous voulez inclure les zones.
    2. Laissez tout le texte des libellés tel quel.
    3. Changez le type de contrôle de Site type en Zone de liste déroulante en le sélectionnant puis en utilisant le menu déroulant.
    4. Changez le type de contrôle de Amenities en Zone de liste
    5. Changez le type de contrôle de Directions en Boîte d'édition multiligne
    6. Cochez Ajouter un bouton d'envoi au code généré.
    7. Cochez Ajouter un contrôle des messages au code généré.

    La boîte de dialogue doit se présenter comme suit.

    boîte de dialogue Sélectionnez des contrôles de données liées

  9. Cliquez sur OK.

    Un tableau à deux colonnes est créé, avec des libellés dans la première colonne et des contrôles, dans la seconde. Cette deuxième colonne dispose également d'une zone pour afficher les erreurs de validation et d'un bouton Submit.

  10. Mettez en évidence la zone SiteType et procédez aux ajustements suivants :
    1. Cliquez surDonnées sous Propriétés dans le volet de fin et tapez Bureau pour la valeur par défaut.
    2. Afin d'ajouter d'autres options pour les types de site, cliquez sur Valeurs sous Propriétés. Cliquez sur Ajouter un élément trois fois de suite. Sélectionnez et modifiez les libellés pour chaque élément : Sans titre devient Office, Retail et Restaurant.

      Il n'est pas utile de renseigner la zone Valeurs sauf si la valeur stockée est différente de la valeur affichée, ce qui n'est pas le cas ici.

  11. Mettez en évidence la zone Amenities et procédez aux ajustements suivants :
    1. Cliquez sur Zone de liste sous Propriétés dans le volet de fin et cochez Autoriser plusieurs sélections
    2. Cliquez sur Valeurs sous Propriétés. Cliquez sur Ajouter un élément quatre fois de suite. Sélectionnez et modifiez les libellés pour chaque élément : Sans titre devient Cafeteria, Fitness Center, Visitor Center et Executive Briefing Center.
    3. Cliquez sur la colonne 1 dans la cellule, mais en dehors du contrôle Libellé (“Amenities : "). Cliquez sur Cellule de tableau sous Propriétés et sélectionnez Haut pour Alignement vertical de cellule.

      Le libellé est aligné au début de la cellule.

    Si vous préférez utiliser des cases à cocher pour les équipements (Amenities), vous pouvez supprimer le contrôle Zone de liste et faire glisser un contrôle Groupe de cases à cocher depuis la palette Contrôles. Liez le contrôle Groupe de cases à cocher en cliquant sur Données sous Propriétés et en sélectionnant Amenities dans le menu déroulant proposé par l'option Lier à. Entrez les valeurs sur l'onglet Valeurs comme décrit dans l'étape 11 ci-dessus.

    La raison pour laquelle il existe deux zones, City et SearchCity, c'est que cela permet de rechercher une ville différente que celle associée aux noms de sites réels. Par exemple, l'un des exemples de sites se trouve à Brighton, une banlieue de Boston, donc pour la recherche on considère qu'il s'agit de Boston. Pour le pays toutefois, nous allons considérer que le pays réel et le pays de recherche est le même.

    Votre XPage doit avoir l'aspect suivant.

    XPage de description du site

    A ce stade, votre XPage doit être similaire à Site1 que vous pouvez ouvrir pour la comparaison.

  12. Modifiez le tableau afin que la ligne qui contient le bouton Submit soit masquée quand la page n'est pas modifiable. Vous aurez besoin de JavaScript.
    1. Cliquez sur la cellule de table contenant le bouton Submit (la cellule, pas le bouton).
    2. Sous Propriétés dans le panneau du bas, cliquez sur Cellule de tableau, si cet onglet n'est pas déjà sélectionné.
    3. Cliquez sur le losange en regard de Visible, puis cliquez sur Calculer valeur.... L'éditeur de script apparaît.
    4. Dans l'éditeur de script, cliquez deux fois sur document1 dans la liste de variables globales, puis tapez un point.

      La variable globale document1 est un objet de NotesXspDocument qui représente le document que XPage est en train de visualiser. Le point que vous tapez provoque l'affichage d'une liste de méthodes associée à cet objet.

    5. Faites défiler la liste de méthodes vers le bas et cliquez deux fois surisEditable().
      La valeur true est renvoyée si le document est modifiable et false dans le cas contraire. La formule doit être la suivante :
      document1.isEditable()
    6. Cliquez sur OK.

      L'éditeur de script se ferme en enregistrant votre code.

    Ce code masque la cellule contenant le bouton si la valeur renvoyée est false. Vous pouvez masquer aussi le bouton plutôt que la cellule.
  13. Sur la page XPage, cliquez en dehors des contrôles pour mettre en évidence la page et appuyez sur Ctrl+E pour enregistrer la page.
  14. Cliquez sur Concevoir > Prévisualiser dans navigateur Web > Navigateur Web du système par défaut (ou sélectionnez un autre navigateur ). Vous pouvez tester votre application en entrant des valeurs, puis en cliquant sur Submit, ce qui a pour effet d'entrer un nouveau document dans la base de documents. Pour afficher une liste des documents, utilisez le client Notes. Fermez le navigateur quand vous avez fini.

    A ce stade, votre XPage doit être similaire à FinalSite que vous pouvez ouvrir pour la comparaison.

  15. Fermez la XPage Site en cliquant sur le X en haut à droite du panneau central.

Création de contrôles pour ajouter et supprimer des documents

La XPage SiteList vous permet d'afficher et d'éditer des documents dans l'application, mais il faut ajouter des contrôles pour pouvoir créer et supprimer des documents.

Effectuez les opérations suivantes :
  1. Sur la XPage SiteList, cliquez dans la première colonne (pas dans l'en-tête) de manière à la mettre en évidence.
  2. Sous Propriétés, cliquez sur Affichage.
  3. Sélectionnez Case à cocher. Une case à cocher s'affiche au début de chaque ligne. L'utilisateur doit cocher cette case pour sélectionner la ligne correspondante.
  4. Sur la XPage, cliquez sur la fin du titre et appuyez sur la touche Entrée pour insérer une ligne vierge entre le titre et le contrôle de vue.
  5. Si vous ne voyez pas la liste des contrôles dans le panneau de droite, cliquez sur l'onglet Contrôles ou cliquez sur Fenêtre > Afficher les vues Eclipse > Contrôles.
  6. Faites glisser un contrôle Bouton dans la ligne vierge sous le titre et effectuez les opérations suivantes :
    1. Sous Propriétés dans le panneau du bas, cliquez sur Bouton, s'il n'est pas déjà mis en évidence.
    2. Remplacez Libellé par Nouveau site.
    3. Cliquez sur l'onglet Evénements.
    4. Vérifiez que l'événement onClick est sélectionné.
    5. Cliquez sur Ajouter action. La boîte de dialogue Ajouter action simple s'ouvre. La catégorie doit être à Tout et l'action Ouvrir une page. Si ce n'est pas le cas, procédez aux modifications nécessaires.
    6. Sélectionnez Site comme nom pour la page à ouvrir.
    7. Sélectionnez Nouveau document comme document cible.
    La boîte de dialogue doit se présenter comme suit.

    Boîte de dialogue Ajouter action simple

  7. Cliquez sur OK.
  8. Faites glisser un deuxième contrôle Bouton en regard du premier et effectuez les opérations suivantes :
    1. Dans le panneau du bas, cliquez sur l'onglet Propriétés et cliquez sur Bouton, s'il n'est pas déjà mis en évidence.
    2. Remplacez le libellé par Supprimer la sélection.
    3. Cliquez sur l'onglet Evénements.
    4. Vérifiez que l'événement onclick est sélectionné.
    5. Cliquez sur Ajouter action.
    6. Sélectionnez Document comme catégorie.
    7. Sélectionnez Supprimer les documents sélectionnés comme action.
    8. Sélectionnez viewPanel1 comme Nom de vue.

      Si ce nom ne correspond pas à celui de votre contrôle Vue, sélectionnez le vôtre.

    9. Tapez Voulez-vous vraiment supprimer les sites cochés ? comme texte de confirmation.

    La boîte de dialogue doit se présenter comme suit.

    Boîte de dialogue Ajouter action simple

  9. Cliquez sur OK.
  10. Appuyez sur Ctrl+E pour enregistrer la page.
  11. Prévisualisez la page, dans Notes ou dans un navigateur.
  12. Fermez la XPage SiteList en cliquant sur le X en haut à droite du panneau central.
A ce stade, votre XPage doit être similaire à SiteListFinal que vous pouvez ouvrir pour comparaison.

Création d'une XPage pour la recherche

L'utilisateur fait appel à cette page pour spécifier les paramètres de recherche et consulter les résultats. Les paramètres de recherche sont les valeurs pour ville, état, pays et code postal. L'utilisateur peut spécifier ces paramètres et cliquer sur un bouton. La page est actualisée et les résultats sont affichés sous forme de vue. Une propriété de recherche pour la vue limite l'affichage aux documents correspondant aux paramètres de recherche.

Effectuez les opérations suivantes :
  1. Au début de la liste des XPages, cliquez sur Nouvelle XPage. Vous pouvez aussi cliquer avec le bouton droit de la souris surXPages > Nouvelle XPage dans le panneau situé sur le côté.
  2. Attribuez le nom ChercheurSite à votre page et cliquez sur OK.
  3. Sous Contrôles personnalisés dans le panneau de droite, faites glisser le contrôle personnalisé En-tête sur la XPage.

    Il s'agit de la même image que celle que vous avez placée sur la XPage ListeSites, mais elle a été placée dans un contrôle personnalisé afin de faciliter la maintenance. Un contrôle personnalisé est similaire à un sous-masque.

  4. Ajoutez une feuille de style à la page, comme suit :
    1. Cliquez sur la page en dehors des contrôles afin que la page soit sélectionnée.
    2. Sous Propriétés dans le panneau du bas, cliquez sur Style.
    3. Faites défiler jusqu'à la fin et cliquez sur Ajouter une feuille de style à la page
    4. Dans la zone Ajouter une feuille de style à la page , sélectionnez styles.css.
    5. Cliquez sur OK.
  5. Ajoutez un titre, comme suit :
    1. Sur la XPage, appuyez sur Entrée après l'en-tête, tapez un titre pour la page, par exemple, Chercheur de site, et appuyez de nouveau sur Entrée.
    2. Mettez le texte en évidence.
    3. Dans le panneau du bas, cliquez sur Style si vous ne vous y trouvez pas déjà.
    4. Dans la liste figurant sous styles.css, cliquez sur .title.
    L'apparence du texte va changer afin de se conformer au style sélectionné.
  6. Sous le texte du titre, entrez les instructions pour l'utilisateur, par exemple, Renseignez tout ou partie de ces zones et cliquez sur Rechercher et appuyez sur Entrée.
  7. Créez un tableau de quatre lignes et deux colonnes, comme suit :
    1. Dans Contrôles conteneurs dans le panneau de droite, faites glisser Tableau sous les instructions sur la XPage.

      La boîte de dialogue Insérer tableau s'affiche.

    2. Dans la boîte de dialogue Insérer tableau, spécifiez 4 pour les lignes et 2 pour les colonnes.
    3. Cliquez sur OK.
    4. Utilisez les poignées pour modifier la largeur du tableau.
  8. Effectuez les opérations suivantes pour chaque cellule de la colonne 1 :
    1. Dans Contrôles principaux dans le panneau de droite, faites glisser Libellé dans la cellule.
    2. Dans le panneau du bas, modifiez ainsi le libellé du contrôle : Ville (ligne 1), Etat (ligne 2), Pays (ligne 3) ou Code postal (ligne 4).
  9. Effectuez les opérations suivantes pour chaque cellule de la colonne 2 :
    1. Dans Contrôles principaux du panneau sur le côté, faites glisser Zone d'édition vers la cellule.
    2. Sous Propriétés dans le panneau du bas, cliquez sur Boîte d'édition.
    3. Indiquez les noms VilleRecherche (ligne 1), EtatRecherche (ligne 2), PaysRecherche (ligne 3) et CodeRecherche (ligne 4).
    4. Sous Propriétés dans le panneau du bas, cliquez sur Données.
    5. Pour Lier les données via, cliquez sur Avancé.
    6. Dans le menu déroulant Utiliser, sélectionnez Variable de portée.
    7. Dans la zone de liste Paramètre, sélectionnez Portée de session.
    8. Faites défiler jusqu'en bas et tapez le nom de la variable : searchCity (ligne 1), searchState (ligne 2), searchCountry (ligne 3), ou searchZip (ligne 4).
    La liaison de ces boîtes d'édition à des variables de portée va permettre d'accéder à leurs valeurs en code JavaScript plutôt que dans le magasin de données. Une variable de session conserve sa valeur d'une page à l'autre pour la durée de la session utilisateur sur le serveur.
  10. Procédez comme suit pour créer un bouton afin de soumettre et d'actualiser la page :
    1. Dans Contrôles principaux du panneau sur le côté, faites glisser Bouton vers la ligne située sous le tableau.
    2. Dans le panneau du bas, indiquez Rechercher comme libellé du contrôle.
    3. Dans la liste déroulante pour le type de bouton, sélectionnez Soumettre.
    Cliquer sur ce bouton va soumettre la page au serveur et actualiser le contenu de la page sur la base des valeurs entrées par l'utilisateur.
  11. Pour afficher la requête utilisée pour obtenir des résultats, procédez comme suit :
    1. Sur la ligne suivante de la XPage, tapez Chaîne de requête : et un espace.
    2. Dans Contrôles principaux dans le panneau de droite, faites glisser Zone calculée vers la page.
    3. Sous Propriétés dans le panneau du bas, cliquez sur Police. Indiquez la couleur bleue.
    4. Sous Propriétés dans le panneau du bas, cliquez sur Valeur.
    5. Pour Lier les données via, cliquez sur Avancé.
    6. Dans le menu déroulant Utiliser, sélectionnez Variable de portée.
    7. Dans la zone de liste Paramètre, sélectionnez Portée de session.
    8. Faites défiler vers le bas et tapez le nom de variable sous la forme queryString.

      Le choix du nom de variable vous revient et n'a aucune signification précise. Vous lui affecterez une valeur ultérieurement.

    La requête qui sera calculée plus tard est alors affichée. L'affichage n'est probablement pas nécessaire dans une application de production, mais il est utile pour le test.
  12. Dans Contrôles conteneurs du panneau sur le côté, faites glisser Vue vers la ligne suivante de la page.
    1. Pour Afficher les données depuis, conservez Vue Domino.
    2. Pour Application, conservez En cours.
    3. Dans la liste déroulante Vue, sélectionnez ListeSites.
    4. Acceptez view1 dans Nom source données.
    5. Dans la liste de colonnes de la fin, désélectionnez tout sauf NomSite, Téléphone, Adresse, Ville et Etat. Vous pouvez procédez autrement et choisir les colonnes à afficher, mais NomSite doit être inclus.
    6. Cliquez sur OK.
  13. Sous Propriétés dans le panneau du bas, cliquez sur Vue. Pour Lors de l'exécution, ouvrir le document sélectionné à l'aide de, sélectionnez Site.
  14. Sous Propriétés dans le panneau du bas, cliquez sur Données. Vérifiez que la vue est définie sur ListeSites.
  15. Vous allez maintenant définir une requête de recherche pour limiter la vue aux documents correspondant à ce que l'utilisateur entre pour les zones de recherche. Effectuez les opérations suivantes :
    1. Sous Propriétés dans le panneau du bas, cliquez sur Toutes les propriétés.
    2. Faites défiler jusqu'à la fin. Développez Données, puis développez la deuxième occurrence de Données. Sélectionnez la propriété de recherche.

      Votre écran doit avoir l'aspect suivant.

      Propriété de recherche

    3. Cliquez sur le diamant en regard de la propriété Rechercher et sélectionnez Calculer la valeur.

      L'éditeur de script apparaît.

    4. Entrez le code suivant dans l'éditeur de script. Assurez-vous qu'il s'agit du langage JavaScript côté serveur et que Calculer de manière dynamique est défini.
      var tmpArray = new Array("");
      var cTerms = 0;
      if(sessionScope.searchZip != null & sessionScope.searchZip != "") {
      	tmpArray[cTerms++] = "(FIELD SearchZip = \"" + sessionScope.searchZip + "\")";
      }
      if(sessionScope.searchCity != null & sessionScope.searchCity != "") {
      	tmpArray[cTerms++] = "(FIELD SearchCity = \"" + sessionScope.searchCity + "\")";
      }
      if(sessionScope.searchState != null & sessionScope.searchState != "") {
      	tmpArray[cTerms++] = "(FIELD SearchState = \"" + sessionScope.searchState + "\")";
      }
      if(sessionScope.searchCountry != null & sessionScope.searchCountry != "") {
      	tmpArray[cTerms++] = "(FIELD Country = \"" + sessionScope.searchCountry + "\")";
      }
      qstring = tmpArray.join(" AND ").trim();
      sessionScope.queryString = qstring; // affiche simplement la requête
      return qstring // définit la propriété de recherche

      Vous n'allez pas effectuer l'exercice, mais ce code pourrait être converti en fonction et placé dans une bibliothèque de scripts. La bibliothèque de scripts serait alors ajoutée en tant ressource à la page et il serait possible d'accéder à la fonction par une référence simple. Le code peut alors être utilisé à plusieurs endroits, la maintenance étant assurée de façon centrale.

    5. Cliquez sur OK.
    Ce code permet d'obtenir les valeurs entrées par l'utilisateur sur la page en utilisant les variables de portée de session liées à ces boîtes d'édition. Le code crée et renvoie une chaîne de requête correspondant aux valeurs de documents dans les zones CodeRecherche, VilleRecherche, EtatRecherche, et Pays.

    A des fins de clarté, les mêmes noms de zones que ceux des documents recherchés sont utilisés, mais d'autres noms pourraient être utilisés.

  16. Ajustez la première colonne pour permettre à l'utilisateur d'ouvrir le document en mode lecture :
    1. Sur la XPage, cliquez dans la première colonne de la vue.
    2. Sous Propriétés dans le panneau du bas, cliquez sur Affichage.
    3. Cochez Afficher les valeurs dans cette colonne sous forme de liens.
    4. Pour le mode d'ouverture de document, cliquez sur Lecture seule.

    Les utilisateurs Web consultant les résultats de la recherche ne seront pas autorisés à éditer les documents trouvés quand ils suivent le lien. Dans une application réelle, la liste de contrôle d'accès serait aussi utilisée.

  17. Enregistrez vos modifications et effectuez un aperçu de votre nouvel écran de recherche.
  18. Prévisualisez la page. Lancez quelques recherches, par exemple : 02108 ou 33432 pour le code postal ; Boca Raton ou Boston pour la ville ; MA pour l'état ; France pour le pays.
  19. Fermez la XPage ChercheurSite en cliquant sur le X en haut à droite du panneau central.
A ce stade, votre XPage doit être similaire à FinalChercheurSite que vous pouvez ouvrir pour la comparaison.

Le processus présenté ici n'est pas forcément la façon optimale d'organiser une fonction de recherche, mais c'est un moyen de le faire. Vous pouvez aussi affecter la propriété de recherche de la source de données à partir du code JavaScript via le bouton Rechercher. Ainsi, il est plus facile de disposer de plusieurs sources d'informations de requête sur la page, éventuellement avec plusieurs boutons de recherche pour différents types de recherches.

D'autres contrôles sont disponibles pour mieux formater vos résultats. La table de données, par exemple, offre un contrôle accru sur le mode de définition des résultats de recherche et est souvent utilisée au lieu d'une vue. Cependant, le contrôle de vue est très simple à utiliser.

Administration des applications

IBM Domino Designer fournit des fonctions pour administrer et gérer votre travail et les fichiers associés lors du développement de vos projets d'application.

La fonction principale actuelle, l'activation du contrôle des sources, vous permet de stocker des éléments de conception NSF dans un référentiel de contrôle des sources et d'effectuer des opérations de contrôle des sources courantes via Domino Designer. Pour ce faire, elle vous laisse créer une association entre un projet sur disque géré par le contrôle des sources et le projet NSF virtuel suivi par Domino Designer.

Cette fonction est fournie pour vous permettre d'intégrer un client de contrôle des sources SVN à Domino Designer de façon la plus transparente possible et de laisser Domino Designer jouer, autant que possible, le rôle d'un "système agnostique de contrôle des sources".

Cette documentation fait référence aux produits suivants : IBM Domino, IBM Domino Designer, IBM Notes, IBM iNotes et IBM Notes Traveler.

Contrôle des sources dans Domino Designer

Des opérations de contrôle des sources sont possibles avec Domino Designer. La présente section fournit toutes les informations nécessaires à l'utilisation de la fonction d'activation du contrôle des sources qui active cette fonctionnalité.

Activation du contrôle des sources

La fonction d'activation du contrôle des sources a été introduite pour vous permettre de stocker les éléments de conception NSF dans un référentiel de contrôle des sources et d'effectuer des opérations de contrôle des sources courantes via Domino Designer.

Les clients de contrôle des sources reposant sur Eclipse (code source ouvert) comme SVN et CCRC travaillent sur des fichiers physiques. A ce titre, ils ne peuvent pas utiliser directement des projets Designer qui contiennent des fichiers virtuels de mappage vers des éléments de conception basés sur NSF. Ils ne fonctionnent qu'avec des projets qui sont sauvegardés sur disque. De ce fait, vous devez utiliser un projet sur disque qui reproduit le projet NSF virtuel pour effectuer des opérations de contrôle des sources.

Pour résoudre ce problème, la fonction d'activation du contrôle des sources de Domino Designer a été introduite pour vous permettre de stocker les éléments de conception NSF dans un référentiel de contrôle des sources et d'effectuer des opérations de contrôle des sources courantes via Domino Designer. Pour ce faire, elle vous laisse créer une association entre un projet sur disque géré par le contrôle des sources et le projet NSF virtuel suivi par Designer. Cette étape est en fait un prérequis qui doit être effectué avant d'exécuter toute opération de contrôle des sources de base.

En dernier lieu, cette fonction vous permet d'intégrer un client de contrôle des sources SVN à Domino Designer de façon la plus transparente possible et de laisser Domino Designer jouer, autant que possible, le rôle d'un "système agnostique de contrôle des sources".

Prérequis : configuration du système de contrôle des sources de version utilisé avec l'activation du contrôle des sources

Cette rubrique décrit comment configurer pour la première fois un système de contrôle des sources de version pour vous permettre de vous servir de la fonction d'activation du contrôle des sources.

Pourquoi et quand exécuter cette tâche

Les systèmes de contrôle des sources de version à code source ouvert (comme Subversion®) vous permettent de partager des projets dans des référentiels, où ils sont stockés par la suite. Un référentiel est similaire à un serveur de fichiers, sauf qu'il ne se contente pas de stocker une copie du système de fichiers mais qu'il enregistre également ses états précédents et l'historique des changements. Un système de contrôle des sources comme Subversion® accède aux référentiels via des connexions réseau, ce qui vous permet de travailler sur des fichiers partagés et de surveiller chaque modification effectuée par les autres développeurs.

Pour pouvoir utiliser la fonction d'activation du contrôle des sources dans Domino Designer, les plug-ins de contrôle des sources pour SVN/Clearcase (système de gestion des versions et de contrôle des révisions) doivent avoir été installés ou dynamiquement provisionnés dans Designer. En règle générale, les opérations suivantes doivent être effectuées afin de commencer à utiliser la fonction d'activation du contrôle des sources :

Procédure

  1. Installez et configurez les systèmes de contrôle des sources de versions à code source ouvert
  2. Créez un référentiel dans le serveur de sous-versions (consultez la documentation du logiciel de sous-versions)
  3. Enregistrez le nouveau référentiel avec le serveur de contrôle des sources en cliquant sur New - Repository Location - New Repository Panel puis entrez l'URL du serveur et les données d'identification de l'utilisateur.

Que faire ensuite

Si vous n'avez pas encore de système de contrôle de sources de version à code source ouvert installé, vous pouvez vous servir de la procédure ci-dessous pour installer le système Subversion® :
Remarque : Cette version nécessite au moins Eclipse 3.3 et ne prend pas en charge les versions précédentes de l'environnement de développement intégré Eclipse.
  • Ouvrez le menu Application - Installer en sélectionnant la préférence qui active les installations de plug-in Eclipse.
  • Installez le site de mise à jour pour les plug-ins Eclipse SVN répertoriés sur le site http://www.eclipse.org/subversive/downloads.php. Utilisez Helios Release. GEF (3.4 et versions ultérieures) est un préalable obligatoire pour les plug-ins de sous-version, et vous êtes donc invité à installer les plug-ins GEF affichés précédemment.
  • Une fois l'installation terminée, installez les connecteurs SVN apparentés à partir du site de mise à jour suivant : http://community.polarion.com/projects/subversive/download/eclipse/2.0/helios-site/. Durant ce processus, vous pouvez être sollicité pour chaque plug-in de connecteur.
  • Pour vérifier que ces deux sites de mise à jour ont été correctement installés, assurez-vous que la perspective d'exploration du référentiel SVN peut être ouverte dans Domino Designer puis connectez-vous au serveur Subversion.
Remarque : Le scénario d'installation exemple décrit ci-dessus a été testé en utilisant les versions de plug-in suivantes :
  • Plug-in Subversive : Subversive-incubation-0.7.9.I20100512-1900.zip
  • Subversive-connectors : Subversive-connectors-2.2.2.I20100512-1900.zip
Il est fortement recommandé d'utiliser ces versions au lieu de la dernière version ou des versions plus récentes. Si vous voulez toutefois essayer d'autres versions, privilégiez plutôt celles qui correspondent à l'exemple.
Remarque : Par défaut, le plug-in de contrôle source Subversive (et potentiellement d'autres plug-ins du produit de contrôle source) installe la version la plus récente du GEF (Graphical Editing Framework). Si une version de GEF ultérieure à la version 3.6.2 est installée, les XPages ne s'afficheront pas correctement si elles sont ouvertes pour édition dans Designer.

Pour résoudre ce problème, lorsque vous installez le plug-in Subversive (ou plug-ins du produit de contrôle source selon le cas), installez une version spécifique de GEF (Graphical Editing Framework) qui n'est PAS ultérieure à la version 3.6.2. La version 3.6.2 est recommandée. Pour ce faire, pendant la procédure d'installation, décochez la case Only show the latest version of a feature per update site. Développez la fonction .../gef/updates/releases/, et sélectionnez GEF SDK 3.6.2.

Configuration de la fonction d'activation du contrôle des sources

Les rubriques ci-après fournissent des informations sur les tâches de configuration initiales qui doivent être exécutées pour commencer à utiliser la fonction d'activation du contrôle des sources de Domino Designer en tant qu'élément de vos opérations de contrôle des sources quotidiennes.

  • Création d'associations entre les projets sur disque et NSF
  • Association de l'application NSF à un projet existant sur disque
  • Définition du sens de l'opération de synchronisation initiale
  • Association de l'application NSF à un nouveau projet sur disque
  • Définition des préférences de la fonction d'activation du contrôle des sources

Avant de commencer : création d'associations entre les projets sur disque et NSF

La fonction d'activation du contrôle des sources vous demande de créer une association entre un projet sur disque, géré par le contrôle des sources, et le projet NSF virtuel utilisé par Designer.

Les clients de contrôle des sources reposant sur Eclipse (code source ouvert) comme SVN et CCRC travaillent sur des fichiers physiques. A ce titre, ils ne peuvent pas utiliser directement des projets Designer qui contiennent des fichiers virtuels de mappage vers des éléments de conception basés sur NSF. Ils ne fonctionnent qu'avec des projets qui sont sauvegardés sur disque (en tant que projets sur disque). De ce fait, vous devez utiliser un projet sur disque qui reproduit le projet NSF virtuel pour effectuer des opérations de contrôle des sources.

Pour ce faire, la fonction d'activation du contrôle des sources vous demande de créer une association entre un projet sur disque, géré par le contrôle des sources, et le projet NSF virtuel utilisé par Designer. Cette étape est un prérequis qui doit être effectué avant d'exécuter toute opération de contrôle des sources de base.

Les étapes générales qui doivent être exécutées afin de créer cette association sont présentées ci-dessous.

  • Vérifiez que vous avez ouvert ou créé une application NSF dans Designer.
  • Dans le navigateur Applications, sélectionnez l'application NSF que vous voulez associer à un projet sur disque et, dans le menu contextuel que vous ouvrez en cliquant avec le bouton droit de la souris, sélectionnez Equipe de développement - Associer au projet sur disque existant. La fonction d'activation du contrôle des sources de Domino Designer opère en créant une association ou un mappage entre un projet NSF virtuel et un projet sur disque. La sélection de ce choix de menu terminera cette association.

Association de l'application NSF à un projet existant sur disque

La fonction d'activation du contrôle des sources vous permet de créer une association entre un projet existant sur disque, géré par le contrôle des sources, et le projet NSF virtuel utilisé par Designer.

Pourquoi et quand exécuter cette tâche

Procédez comme suit pour créer l'association (ou mappage) Application Designer (.NSF) - projet sur disque (ODP). Cette opération s'effectue à partir du panneau Associer au projet sur disque....

Procédure
  1. Ouvrez ou créez une application NSF dans Domino Designer.
  2. Sélectionnez l'application NSF créée puis choisissez Equipe de développement - Associer au projet sur disque existant... dans le menu. Le panneau Associer au projet sur disque s'affiche. A partir de ce dernier, vous sélectionnez un projet existant sur disque ainsi que le sens de l'opération de synchronisation initiale qui sera effectuée une fois l'association réalisée. L'importation depuis le projet sur disque vers nom_fichier_nsf est le paramètre par défaut.
  3. Consultez la rubrique Définition du sens de l'opération de synchronisation initiale pour plus de détails sur les paramètres de synchronisation.

Définition du sens de l'opération de synchronisation initiale

Cette rubrique décrit les sens disponibles pour l'opération de synchronisation initiale qui se produit lors de la création de l'association entre une application NSF et un projet sur disque.

Lors de la création de l'association entre une application NSF et un projet sur disque, vous devez sélectionner le sens de l'opération de synchronisation initiale. Il peut s'agir de l'une des deux options suivantes :

  • Exporter vers le projet sur disque sélectionné depuis nom fichier nsf - quand ce paramètre est défini, l'opération de synchronisation initiale exporte tout le contenu du projet NSF virtuel vers le projet sur disque dans un format adapté, que vous pouvez ensuite stocker dans un référentiel de contrôle des sources.
  • Importer dans nom fichier nsf depuis le projet sur disque sélectionné- quand ce paramètre est défini, l'opération de synchronisation initiale met à jour le projet NSF en y incluant le contenu provenant du projet sur le disque.

Association de l'application NSF à un projet existant sur disque

La fonction d'activation du contrôle des sources vous permet de créer une association entre un nouveau projet sur disque et une application NSF.

Pourquoi et quand exécuter cette tâche

Pour associer une application NSF à un nouveau projet sur disque, sélectionnez File - Team Development - Set Up Source Control for this Application dans le menu.

Pour procéder à cette opération dans le navigateur Applications de Domino Designer, cliquez avec le bouton droit de la souris sur l'en-tête (icône) de l'application que vous souhaitez ajouter au contrôle des sources et sélectionnez Equipe de développement - Définir un contrôle de source pour cette application. Cette opération crée un nouveau projet sur disque et tout le contenu du projet NSF ouvert y est exporté par défaut.

Pour obtenir des informations supplémentaires sur la façon d'utiliser la fonction d'activation du contrôle des sources avec les tâches de contrôle des sources courantes, consultez la rubrique Exécution des tâches de contrôle des sources courantes avec la fonction d'activation du contrôle des sources.

Définition des préférences de la fonction d'activation du contrôle des sources

Cette rubrique décrit les préférences que vous pouvez définir pour personnaliser la façon dont la fonction d'activation du contrôle des sources opère.

Pour personnaliser les opérations de la fonction d'activation du contrôle des sources, vous pouvez définir des préférences en cliquant sur Fichier-Préférences-Designer-Contrôle de source. Ces préférences seront appliquées à cette fonction lorsque vous l'utiliserez. Elles incluent les préférences suivantes :

  • Utiliser le DXL binaire pour les opérations de contrôle de source -- Il existe différentes façons de représenter les éléments de conception sur disque selon le type de l'élément de conception est représentée-reportez-vous au "Sélection de la façon de représenter les éléments de conception sur disque" de la section pour plus de détails.
  • Activer l'exportation automatique des éléments de conception (du projet NSF au projet sur disque) lors de la modification - cette préférence est fournie pour activer l'exportation implicite des éléments de conception une fois qu'ils sont modifiés dans une application NSF par l'utilisateur. Si cette préférence est sélectionnée, toutes les modifications apportées au projet NSF (comme la création, la mise à jour ou la suppression d'un masque ou d'une page XPage, etc) sont reflétées implicitement sur le projet sur disque et vous pouvez ensuite les stocker dans le référentiel de contrôle des sources.
  • Activer l'importation automatique des éléments de conception (du disque à NSF) - cette préférence est fournie pour permettre l'importation explicite des fichiers de conception entre le disque et l'application NSF quand ils sont modifiés dans le projet sur disque. L'option Générer automatiquement doit aussi être cochée. Après définition de cette préférence, si l'utilisateur met à jour le projet sur disque avec le contenu du référentiel, les changements seront importés automatiquement dans l'application NSF.
  • Afficher le panneau d'aide dans l'assistant de configuration - cette préférence affiche un panneau auxiliaire décrivant la fonction d'activation du contrôle des sources quand le panneau est invoqué via Equipe de développement-Définir un contrôle de source pour cette application.

Sélectionnez une préférence (en la cochant) pour l'activer ou désélectionnez-la pour la désactiver.

Remarque : Les préférences de synchronisation automatique sont activées par défaut.

Sélection de la façon de représenter les éléments de conception sur disque

Cette rubrique décrit les méthodes de représentation des éléments de conception sur disque.

Il existe deux façons de représenter les éléments de conception sur disque, qui sont fonction du type de l'élément représenté.

  • Comme un ensemble de deux fichiers (contenu et métadonnées) sur disque - les éléments XPages, Contrôles personnalisés, Feuilles de style, Fichiers, Thèmes, Applications composites, Propriétés des connexions et Bibliothèques de scripts JS/SSJS/LS sont représentés sous la forme d'un ensemble de deux fichiers sur disque, le fichier de contenu et le fichier de métadonnées. Le fichier de contenu renferme le contenu effectif du fichier tel qu'il apparaît dans l'éditeur et le fichier de métadonnées comporte les données DXL moins le contenu servant à représenter le reste des attributs de l'élément de conception.
  • Comme un fichier contenant les données DXL de l'élément de structure - le reste des éléments de conception (Masques, Vues, Pages, Bibliothèques de scripts Java, Agents, Actions partages, etc.) sont représentés dans un fichier contenant les données DXL de l'élément de conception. Une préférence est fournie pour utiliser le format "binaire" pour DXL pour le contenu exporté. Consultez la rubrique Définition des préférences de la fonction d'activation du contrôle des sources pour plus d'informations.

Exécution des tâches de contrôle des sources courantes avec la fonction d'activation du contrôle des sources

Les étapes de base du processus général sont fournies pour vous donner une idée du fonctionnement des systèmes quand le contrôle des sources de Domino Designer est activé.

Puisqu'il n'entre pas dans le cadre de cette documentation d'expliquer en détail les opérations de contrôle des sources pour les différents systèmes disponibles, les étapes décrites ci-après vous permettront de comprendre les principes généraux de la fonction d'activation du contrôle des sources de Domino Designer.

Le processus général se décompose ainsi :

  • Installation des plug-ins de contrôle des sources approprié dans Designer.
  • Ouverture d'une base de documents dans Designer.
  • Association de la base de données (NSF) avec un projet sur disque (ODP) et exportation de NSF à ODP
  • Stockage - envoi de l'ODP Designer vers le référentiel de contrôle des sources.
  • Réservation - à partir d'une autre machine, extraction de l'ODP depuis le référentiel de contrôle des sources.
  • Association d'une base de documents (NSF) à l'ODP et importation d'ODP à .NSF.
  • Modification de la base .NSF et/ou de l'ODP et synchronisation des deux (implicitement ou explicitement).
  • Stockage des changements dans le référentiel de contrôle des sources.
  • Mise à jour pour extraire les changements du référentiel de contrôle des sources vers l'ODP.
  • Synchronisation de l'ODP mis à jour avec le fichier .NSF

De façon plus spécifique, un outil commun utilise la procédure de base suivante :

  • Partage du projet pour l'ajouter au contrôle des sources.
  • Réservation pour créer un projet local sur disque à partir du contrôle des sources
  • Validation pour envoyer les changements locaux vers le contrôle des sources
  • Mise à jour pour recevoir les changements provenant de la source.
Remarque : Remarque : reportez-vous à la documentation du logiciel de contrôle des sources pour plus de détails sur la façon dont votre système gère les opérations de base.

Les rubriques suivantes fournissent des exemples plus détaillés de l'utilisation de la fonction d'activation du contrôle des sources de Domino Designer pour exécuter certaines des tâches de contrôle des sources courantes mentionnées plus haut.

Ajout d'une application Domino Designer existante dans le contrôle des sources

Cette rubrique décrit comment ajouter une application Domino Designer existante dans le contrôle des sources

Pourquoi et quand exécuter cette tâche

Supposez que vous avez démarré une nouvelle application et que vous avez commencé à l'utiliser localement sur votre machine. Vous vous rendez compte ensuite que vous avez besoin de déléguer certaines parties de l'application à un collègue. Vous décidez de procéder à cette opération en cochant l'application existante dans votre système de contrôle des sources.

Cette tâche est effectuée par l'activation du contrôle des sources Domino Designer en associant l'application NSF existante à un nouveau projet sur disque. Pour plus de détails sur la façon de procéder, consultez la rubrique Association de l'application NSF à un nouveau projet sur disque.

Introduction d'une application à partir d'un contrôle source

Cette rubrique décrit comment introduire une application à partir du contrôle source.

Pourquoi et quand exécuter cette tâche

Supposez que vous avez besoin d'aider un collègue à générer une nouvelle application. L'application a déjà été enregistrée dans le contrôle des sources par le développeur d'origine mais vous devez maintenant l'introduire pour pouvoir commencer à l'utiliser.

Pour ce faire, suivez les étapes générales présentées ci-dessous :
  • Dans une vue du navigateur Eclipse, utilisez les commandes du système de contrôle des sources pour copier l'application sur votre machine locale.
  • Associez le projet sur disque à une nouvelle application NSF

    OU

  • Associez le projet sur disque à une application NSF existante

Consultez les rubriques supplémentaires de cette section pour plus d'informations sur l'exécution de ces tâches.

Association d'un projet sur disque à une nouvelle application NSF

Cette rubrique explique comment associer un projet sur disque à une nouvelle application NSF

Pourquoi et quand exécuter cette tâche

Supposez que vous avez besoin d'aider un collègue à générer une nouvelle application. L'application a déjà été enregistrée dans le contrôle des sources par le développeur d'origine mais vous devez maintenant l'extraire pour pouvoir commencer à l'utiliser.

L'une des façons d'agir est d'associer le projet sur disque à un nouveau fichier NSF. Pour ce faire, procédez comme suit :

Procédure
  1. Pour associer le projet sur disque à une nouvelle application NSF, cliquez avec le bouton droit de la souris sur le nouveau projet sur disque puis sélectionnez Equipe de développement - Associer au nouveau projet NSF.... Dans la boîte de dialogue Associer au nouveau projet NSF... qui s'affiche, vous êtes invité à spécifier le nom de l'application et l'emplacement dans lequel vous voulez qu'il soit crée.
  2. Si l'emplacement correspond à un serveur local, utilisez le bouton Parcourir pour ouvrir les répertoires de système de fichiers local.
  3. Si l'emplacement se rapporte à un serveur distant, le bouton Parcourir s'affiche avec une boîte de dialogue répertoriant les dossiers pouvant être sélectionnés.
  4. Par défaut, une synchronisation automatique de l'application NSF et du projet sur disque est effectuée.
Résultats

Association d'un projet sur disque à une application NSF existante

Cette rubrique explique comment associer un projet sur disque à une application NSF existante.

Pourquoi et quand exécuter cette tâche

Supposez que vous avez besoin d'aider un collègue à générer une nouvelle application. L'application a déjà été enregistrée dans le contrôle des sources par le développeur d'origine mais vous devez maintenant l'extraire pour pouvoir commencer à l'utiliser.

L'une des façons d'agir est d'associer le projet sur disque à un fichier NSF existant. Pour ce faire, procédez comme suit :

Procédure
  1. Pour associer le projet sur disque à une application NSF existante, cliquez avec le bouton droit de la souris sur le nouveau projet sur disque puis sélectionnez Equipe de développement - Associer au projet NSF existant.... La boîte de dialogue Associer au projet NSF existant... s'affiche.
  2. Sélectionnez le fichier NSF existant que vous voulez associer à votre projet sur disque ainsi que le sens de l'opération de synchronisation initiale.
Résultats

Exemple d'association d'une application NSF existante à un projet sur disque

Cette rubrique fournit un exemple d'association d'un fichier NSF existant à un projet sur disque

Supposez que vous recherchez la version précédente d'une application qu'un collège vous avez envoyée par courrier électronique. Cette application a ensuite été postée dans le contrôle des sources et il vous a été demandé d'y intervenir. Vous devez donc obtenir la version "réelle" pour remplacer celle qui vous a été envoyée par courrier.

Cette procédure est la même que celle décrite dans Association d'un projet sur disque à une application NSF existante sauf que l'action existante est entreprise depuis l'application NSF et que les choix sont les projets sur disque. Le projet sur disque que vous associez à l'application NSF sera celui utilisé pour les opérations de contrôle des sources. Pour plus de détails sur la façon de procéder, consultez la rubrique Association de l'application NSF à un projet existant sur disque.

Gestion d'un conflit de synchronisation de fichiers

Cette rubrique décrit comment gérer un conflit de synchronisation de fichiers avec la fonction de contrôle des sources.

Pourquoi et quand exécuter cette tâche

Quand vous utilisez des fichiers dans le contrôle des sources, il se peut que vous receviez des erreurs de conflit de synchronisation de fichiers. Si c'est le cas, un message de boîte de dialogue Conflit de synchronisation s'affiche avec une zone de liste contenant les fichiers en conflit. Vous pouvez sélectionner un ou plusieurs fichiers et choisir de comparer les différentes versions du fichier. Après avoir identifié laquelle est correcte, vous pouvez sélectionner celle qui convient.

La boîte de dialogue Conflit de synchronisation contient une vue comportant 3 colonnes : nom du fichier, date de dernière modification (NSF) et date de dernière modification (sur disque). Un bouton Comparer permet d'afficher une boîte de dialogue qui présente les versions DXL des versions NSF et Sur disque d'un élément. Les versions sont affichées côte à côte et les différences sont mises en évidence.

Les étapes suivantes sont utilisées dans un exemple dans lequel deux fichiers sont en conflit. Dans ce cas, un conflit de synchronisation s'est produit entre le projet NSF et le projet sur disque et les deux fichiers sont répertoriés sur le panneau des conflits de synchronisation.

Procédure
  1. Si nécessaire, sélectionnez un fichier et cliquez sur le bouton Comparer. Cette action appelle la boîte de dialogue de comparaison qui affiche le contenu de chaque fichier et met en évidence les différences.
  2. Choisissez la version du fichier à utiliser et cliquez sur le bouton Use NSF version ou Use On-Disk Project Version. L'option Use NSF version permet d'écraser la version sur disque et l'option Use On-Disk Project Version d'écraser la version NSF. Vous pouvez exécuter l'une ou l'autre de ces opérations indépendamment.
  3. Si vous cliquez sur le bouton Fermer sans spécifier de fichier, les fichiers apparaîtront à nouveau dans la liste lors du déclenchement du conflit de synchronisation suivant.
Résultats

Synchronisation manuelle de l'application NSF et d'un projet de contrôle des sources local

Cette rubrique décrit comment synchroniser manuellement l'application NSF et un projet de contrôle des sources local.

Pourquoi et quand exécuter cette tâche

Il peut arriver que vous ayez besoin de synchroniser manuellement une application NSF et un projet sur disque de contrôle des sources local, s'il existe un problème ou quand vous avez désactivé la synchronisation automatique dans le panneau Préférences.

Effectuez cette opération en sélectionnant Equipe de développement-Synchroniser avec le projet sur disque dans le menu contextuel ou dans le menu principal.

Suppression d'associations dans le contrôle des sources

Cette rubrique décrit comment supprimer les associations NSF/projet dans le contrôle des sources.

Pourquoi et quand exécuter cette tâche

Il peut arriver que vous ayez besoin de supprimer l'association que vous avez créée entre une application NSF et un projet sur disque de contrôle des sources local.

Effectuez cette opération en sélectionnant Equipe de développement-Supprimer l'association au contrôle de source dans le menu contextuel ou dans le menu principal.

Conception des applications XPages

IBM Domino Designer fournit les moyens d'intégrer des contrôles et autres artefacts dans une page XPage et d'associer une page XPage à des magasins de données.

Pour des conseils généraux sur la navigation (création et l'ouverture de pages XPages, par exemple), consultez Navigation dans Domino Designer.

Designer fournit les options ci-après à appliquer sur des pages XPages :

  • Cliquez sur l'onglet Conception pour travailler en mode visuel.
  • Cliquez sur l'onglet Source pour éditer directement le code XML.

Cette documentation fait référence aux produits suivants : IBM Domino, IBM Domino Designer, IBM Notes, IBM iNotes et IBM Notes Traveler.

Prévisualisation et exécution de XPages

XPages s'exécute dans les environnements serveur Domino et client Notes. Depuis Domino Designer, vous pouvez prévisualiser XPages dans les deux environnements.

Une page XPage qui existe dans une application sur un serveur Domino peut être accédée de la façon suivante :
  • A partir d'un navigateur via une URL de type http://server/application.nsf/xpage.xsp.
  • Depuis un client Notes par le biais d'une URL de forme notes://server/application.nsf/xpage.xsp.

Une page XPage qui existe dans une application sur un client Notes peut être accédée depuis le client via une URL de type notes:///application.nsf/xpage.xsp?OpenXPage.

De plus, vous pouvez configurer l'application pour qu'elle ouvre une page XPage au moment de son lancement.

Prévisualisation d'une page XPage

Vous pouvez prévisualiser une page XPage sur un serveur Domino ou dans un environnement de client Notes.

Avant de commencer

Pour une prévisualisation Web, vous devez d'abord modifier la liste de contrôle d'accès (LCA) de l'application. Cliquez avec le bouton droit de la souris sur l'application dans le navigateur et sélectionnez Application > Contrôle d'accès. Ajoutez une entrée pour Anonymous et définissez le niveau d'accès approprié (Auteur, au minimum, avec la possibilité de Créer des documents).
Remarque : Vérifiez également que la tâche HTTP s'exécute sur le serveur Domino de façon à pouvoir effectuer une prévisualisation Web.

Procédure

  1. Cliquez avec le bouton droit de la souris sur une page XPage et sélectionnez Prévisualiser dans Notes ou Prévisualiser dans navigateur Web. Vous pouvez aussi, avec une page XPage mise en évidence, sélectionner dans le menu principal Concevoir > Prévisualiser dans Notes ou Concevoir > Prévisualiser dans navigateur Web.

    Une dernière possibilité est de mettre en évidence la page XPage concernée et de cliquer sur les icônes Prévisualisation dans Notes ou Prévisualiser dans le navigateur Web de la barre d'outils.

  2. Pour Prévisualiser dans navigateur Web, sélectionnez le type de navigateur.

Résultats

La prévisualisation Notes démarre le client Notes si nécessaire puis ouvre la page XPage dans ce client. Ce dernier traite alors les requêtes provenant de la page XPage.

La prévisualisation Web démarre un serveur de prévisualisation locale Domino puis ouvre la page XPage dans un navigateur. Le serveur traite alors les requêtes provenant de la page XPage.

La prévisualisation d'une page XPage sur le Web peut donner un résultat différent de celui obtenu en exécutant la page XPage dans le contexte de l'application complète. Les résultats peuvent aussi dépendre du fait que l'application que vous prévisualisez est locale ou distante. La prévisualisation d'une application locale utilise toujours Anonymous pour le contrôle d'accès et le serveur de prévisualisation locale ne dispose pas de toutes les fonctions avancées d'un serveur de production. Toutefois, les scripts sont exécutés et les documents créés, signés avec Anonymous pour les prévisualisations locales et avec l'ID actuel pour les prévisualisations sur un serveur, ce qui vous donne une image réaliste de l'application.

Ouverture d'une page XPage au lancement de l'application

Vous pouvez ouvrir une page XPage lors du lancement de l'application.

Procédure

  1. Cliquez deux fois ou bien ouvrez Propriétés d'application depuis le navigateur Applications. La page des propriétés de l'application s'ouvre.
  2. Cliquez sur l'onglet Lancer.
  3. Pour le client Notes, sélectionnez Ouvrir XPage désignée (client standard) et choisissez une page XPage.
  4. Pour le navigateur Web, sélectionnez Ouvrir XPage désignée et choisissez une page XPage. Sinon, si vous voulez ouvrir la même page XPage que pour Notes, sélectionnez Utilisez l'option de lancement Notes.
  5. Enregistrez les propriétés de l'application.

Résultats

Quand l'utilisateur lance l'application, la page XPage est immédiatement ouverte.

Un utilisateur de navigateur Web peut lancer une page XPage en appliquant son URL, http://server/application.nsf/xpage.xsp, par exemple.

Ouverture d'une autre page XPage

Depuis une page XPage, les utilisateurs peuvent ouvrir d'autres pages XPages via des règles de navigation, une action simple, des méthodes XSPContext ou l'ouverture d'une URL.

Règles de navigation

Chaque page XPage est dotée d'une propriété navigationRules qui possède un ensemble d'éléments navigationRule. Une règle de navigation indique au serveur la page qu'il doit retourner au client après traitement d'une page soumise via un bouton de type Soumettre ou Annuler. Voir button - Bouton. Chaque règle de navigation possède les attributs suivants :
attribut valeur
outcome xsp-success si la mise à jour est normale
  xsp-failure si la mise à jour échoue
redirect true indique de restaurer le dernier état de la page
  false (défaut) demande l'ouverture d'une page propre
viewId <no rule> signifie l'ouverture de la même page
  $$PreviousPage indique d'ouvrir la page qui a été ouverte en dernier avant la page soumise
  $$HomePage demande l'ouverture de la page de lancement
  page.xsp signifie l'ouverture de la page spécifiée
Un exemple est présenté ci-dessous :
<xp:this.navigationRules>
	<xp:navigationRule
		outcome="xsp-success" viewId="$$PreviousPage">
	</xp:navigationRule>
	<xp:navigationRule
		outcome="xsp-failure" viewId="/errpage.xsp">
	</xp:navigationRule>
</xp:this.navigationRules>

En mode Conception, cliquez en dehors de tous les contrôles, cliquez sur l'onglet XPage et cherchez les options Page suivante.

Action simple openPage

L'action simple Ouvrir page (voir les références XPages IBM Domino Designer) ouvre une page immédiatement à l'activation. Un exemple est présenté ci-dessous :
<xp:button value="Open page 2" id="button4">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
		<xp:this.action>
			<xp:openPage name="/xpage2.xsp"></xp:openPage>
		</xp:this.action>
	</xp:eventHandler>
</xp:button>

Méthodes XSPContext pour la redirection

Les méthodes redirectToPage (voir les références XPages IBM Domino Designer), redirectToPrevious (voir les références XPages IBM Domino Designer), et redirectToHome (voir les références XPages IBM Domino Designer) ouvre une page immédiatement à l'activation. Un exemple est présenté ci-dessous :
<xp:button value="Open page 2" id="button4">
	<xp:eventHandler event="onclick" submit="true"
		refreshMode="complete">
		<xp:this.action>
			<![CDATA[#{javascript:context.redirectToPage("xpage2.xsp")}]]>
		</xp:this.action>
	</xp:eventHandler>
</xp:button>

Ouverture de l'URL

Vous pouvez ouvrir une page en envoyant son URL vers le serveur. Vous spécifiez, par exemple, l'URL ci-dessous dans la zone d'adresse d'un navigateur :
http://myserver/foo.nsf/xpage1.xsp

Depuis un élément de conception non XPage, vous avez la possibilité de vous servir de @URLOpen dans une formule. La formule ci-après, qui est une action de masque, ouvre une page XPage dans le client Notes :

@URLOpen("notes:///foo.nsf/xpage1.xsp?OpenXpage")

Ouverture d'une page XPage au lieu d'une vue

Pour l'accès Web uniquement, vous pouvez ouvrir une page XPage au lieu d'une vue.

Procédure

  1. Cliquez deux fois ou bien ouvrez une vue depuis le navigateur Applications.
  2. Ouvrez les propriétés de la vue et cliquez sur l'onglet Avancé.
  3. Pour Accès Web > Afficher XPage de remplacement, sélectionnez une page XPage.
  4. Enregistrez la vue.

Résultats

Quand l'utilisateur sélectionne la vue, la page XPage s'ouvre.

Signature de XPages

Les XPages sont signées avec l'ID de l'utilisateur Domino Designer en cours lors de la sauvegarde de l'élément de conception XPage et/ou la génération de son ou ses fichiers d'implémentation (classe).

Pourquoi et quand exécuter cette tâche

La signature d'une XPage détermine si elle sera chargée lors de l'exécution, et si ensuite, elle peut être exécutée avec ou sans restrictions sur ses méthodes et ses opérations. L'exécution avec restrictions exclut certaines fonctions telles que l'E-S de fichier ou de réseau, qui est l'approche la plus courante. L'exécution sans restrictions permet d'utiliser toutes les fonctions prises en charge des langages d'implémentation de la XPage (voir la rubrique "Restricted LotusScript and Java agent operations" dans le document Domino Designer Basic User Guide and Reference > Application Design > Adding automation to applications).

Comme les droits d'accès au serveur, les droits permettant d'exécuter les méthodes restrictives/non restrictives sont attribués à des signataires ou des groupes spécifiques dans la section Restrictions de programmabilité de l'onglet Sécurité du document serveur (voir la rubrique "Contrôle des agents et des XPages exécutés sur un serveur" dans Domino Administrator, section Aide > Sécurité > Accès au serveur pour les utilisateurs Notes, les utilisateurs Internet et les serveurs Domino > Personnalisation de l'accès à un serveur Domino).

Lorsqu'une XPage est invoquée (de la même manière que les agents), Domino vérifie aussi les droits de sécurité du serveur du signataire de la XPage au niveau du document Serveur, en plus des droits d'accès de l'utilisateur Web authentifié. Pour les composants de la XPage (par exemple, les contrôles personnalisés, les extensions JSF, les bibliothèques JavaScript de serveur ou les XPages incluses), Domino vérifie les droits d'accès au serveur de chaque signataire de composant, et si cela est indiqué, déclasse la session XPage pour procéder à une exécution uniquement avec restrictions (si cela est défini pour Domino, la variable notes.ini NoExternalApps a le même effet). Lors de l'exécution, les signatures des utilisateurs DDE non titulaires de droits d'accès permettant de signer des XPages vont générer des erreurs de type HTTP 403 au niveau du navigateur.

Utilisation de XPages dans le client Notes

Vous pouvez exécuter des applications de XPages dans le client enrichi IBM Notes.

Le principal avantage de la prise en charge des XPages dans le client Notes est que vous pouvez répliquer en local une application développée pour le Web et l'exécuter hors ligne dans le client Notes, sans avoir à la re-développer pour le client. Tous les avantages du modèle de développement d'application de XPages peuvent ensuite être étendus au client Notes. Ces applications s'affichent dans le navigateur intégré et, en général, ressemblent à des applications Web et se comportent comme celles-ci, mais leur comportement est différent à certains égards dans le client Notes.

  • Il est possible de créer une logique spécifique au client Notes qui a un impact sur la façon dont l'application s'affiche dans Notes. Par exemple, dans l'application Discussion, le rendu Web inclut un message "Welcome user name" suivi d'un lien "My Profile" situé dans le coin de la page. Le message de bienvenue n'apparaît pas dans le client Notes ; il est supprimé par la logique de l'application Discussion. Vous pouvez également modifier les propriétés de XPages d'une application pour indiquer différents thèmes à utiliser lorsque l'application s'exécute dans le client Notes ou dans un navigateur.
  • Les utilisateurs d'applications s'exécutant dans le client Notes peuvent se servir de Fichier > Sauvegarder pour conserver les modifications dans les pages XPages. La propriété enableModifiedFlag vous permet d'activer cette option de menu et d'inviter l'utilisateur d'enregistrer les modifications lorsqu'une XPage a été modifiée.
  • Lorsqu'un utilisateur est authentifié dans le client Notes, les mêmes données d'identification sont utilisées pour l'accès à un composant ou une application de XPages. Par conséquent, l'utilisateur n'est pas invité à compléter une boîte de dialogue de connexion Web comme dans le cas d'une application Web classique exécutée dans le navigateur intégré.
  • Pour empêcher le code des éléments de conception de XPages (contenu actif) d'exécuter des opérations protégées, telles que la lecture et l'écriture des fichiers de poste de travail ou la lecture et l'écriture de propriétés système, les XPages utilisent la liste de contrôle d'exécution pour gérer l'accès et les fonctions que l'utilisateur a octroyés au signataire du code qui tente d'effectuer l'opération protégée.
  • Les pages peuvent être associées à des signets dans le client Notes.

Outre la génération de XPages en tant qu'applications autonomes, vous pouvez générer dans Domino Designer des composants de XPage pouvant s'exécuter à l'intérieur des applications composites et prenant en charge le modèle d'événement de réception/publication ainsi que des paramètres de composant. Vos composants de XPages peuvent ensuite interagir avec d'autres composants du client, tels que le composant PIM.

Il est également à noter que les applications de XPages peuvent résider sur un serveur Domino. Si vous paramétrez l'option de lancement "a l'ouverture du client Notes" sur "Ouvrir XPage désignée (client standard)," la XPage correspondante s'affiche sur le client, que l'application soit située dans le serveur Domino ou localement sur le client Notes. Le comportement de la XPage dans le client sera exactement le même.

Utilisation de la barre d'outils des XPages

Les applications XPages dans le client Notes possèdent leur propre barre d'outils, qui est visible chaque fois qu'une XPage est mise en évidence dans le navigateur intégré.

Pourquoi et quand exécuter cette tâche
La barre d'outils inclut différents groupes de boutons.
  • Les boutons de navigation vous permettent de vous déplacer d'une page à l'autre, d'arrêter l'action en cours, de régénérer la page en cours et de revenir dans la page d'origine. Le bouton d'actualisation fournit également l'option Effacer les données privées. L'exécution de cette action efface la mémoire cache du navigateur intégré.
  • Le bouton Imprimer vous permet de configurer des XPages à des fins d'impression et de les imprimer.
  • Si Domino Designer est installé, vous pouvez cliquer sur le bouton Afficher la source de la page pour voir la source HTML ou sur le bouton Afficher la configuration du navigateur pour voir les paramètres du navigateur intégré.

Sécurité des XPages

Une sécurité est fournie pour les applications de XPages.

Une application de XPages exécutée dans le client IBM Notes peut inclure un certain nombre d'éléments de conception contenant du code (généralement désigné par "contenu actif") qui peut être exécuté sur le poste de travail de l'utilisateur, par exemple, l'accès à une base de documents ou à JavaScript à l'aide du code Java intégré. Pour empêcher le contenu actif d'exécuter des opérations protégées, telles que la lecture et l'écriture des fichiers de poste de travail, la lecture et l'écriture de propriétés système, et les opérations de réseau, les XPages utilisent la liste de contrôle d'exécution pour gérer l'accès et les fonctions que l'utilisateur a octroyés au signataire du code qui tente d'effectuer l'opération protégée.

La liste de contrôle d'exécution détermine si le signataire du code est autorisé à exécuter le code sur un poste de travail donné et définit l'accès du code aux diverses fonctions de poste de travail, par exemple, l'accès à la base de documents en cours ou à d'autres bases de documents. Les exemples de contenu actif dans une application de XPages sont le code Java intégré dans JavaScript (côté serveur), les bibliothèques de scripts côté serveur et les classes Java et les fichiers JAR importés dans la base de documents.

Tous les éléments de conception dans une application de XPages comportent la signature de leur créateur. S'il existe plusieurs signataires d'une application de XPages, tous les signataires doivent être accrédités par l'utilisateur avant que l'opération protégée s'exécute.

Les options d'accès de sécurité de liste de contrôle d'exécution pour les applications XPages sont définies dans l'onglet Utilisation du poste de travail sous Activité des autres de la boîte de dialogue Sécurité utilisateur (Fichier > Sécurité > Sécurité utilisateur).

Sécurité avec filtrage du contenu actif

La fonction de sécurité avec filtrage de contenu actif empêche également d'entrer un code malveillant dans un contrôle d'entrée de XPage pendant l'exécution.

Le filtrage de contenu actif sert à supprimer le contenu actif éventuellement malveillant (scripts, balises) d'un contrôle de texte d'entrée/sortie. Un moteur de filtrage de contenu actif fait office de bibliothèque pour la réalisation du filtrage pendant l'exécution. Si vous mettez en évidence certains contrôles XPage (Zone d'édition, Zone d'édition multiligne, Texte enrichi, Entrée masquée), vous voyez deux propriétés, htmlFilter et htmlFilterIn, sur l'onglet Toutes les propriétés sous fondamentaux.

La propriété htmlFilter définit le moteur de filtrage de contenu actif à utiliser lorsque le contrôle envoie des données au client, et la propriété htmlFilterIn définit le moteur à utiliser lorsque le contrôle reçoit du texte du client. Vous pouvez modifier ces deux propriétés pour activer ou désactiver le filtrage de contenu actif pour une zone de texte.

Les quatre moteurs de filtrage de contenu actif suivants sont disponibles pour les XPages :
  • acf
  • striptags
  • identity
  • empty

Le moteur “acf” analyse le texte HTML et filtre les constructions non sécurisées, sur la base d'un fichier de configuration (acf-config.xml). Le moteur “striptags” supprime toutes les balises à l'aide d'une expression régulière 'replaceAll("\\<.*?>","")'. Le filtre "identity" renvoie la chaîne d'origine. Le moteur “empty” supprime tout et renvoie une chaîne vide.

Le moteur “acf” peut être configuré via un fichier de configuration. Pour le côté client, le fichier est classiquement situé dans C:\Program Files\IBM\Lotus\Notes\Data\properties. Un exemple, acf-config.xml.sample, se trouve dans ce dossier.

Avant de configurer le filtrage de contenu actif, localisez le fichier xsp.properties dans le même dossier, puis ajoutez la ligne suivante : xsp.htmlfilter.acf.config=acf-config.xml. Cela indique que le fichier acf-config.xml va être utilisé pour configurer le moteur “acf” (sinon, les règles par défaut sont utilisées). Voici un exemple de contenu de fichier acf-config.xml :
<?xml version="1.0"?>
<config>
       <filter-chain>
          <filter name='base' class='com.ibm.trl.acf.impl.html.basefilter.BaseFilter'
                  verbose-output='false' use-annotation='false' />
       </filter-chain>

			<filter-rule id='base'>
           <target scope=''>
             <!-- C14N rules -->
             <rule c14n='true' all='true' />

              <!-- Base rules -->
             <rule attribute='on' attribute-criterion='starts-with'
                 action='remove-attribute-value' />
             <rule attribute='${' attribute-criterion='starts-with'
                 action='remove-attribute-value' />
             <rule attribute='href' value='javascript:' value-criterion='contains'
                  action='remove-attribute-value' />
             <rule attribute='style' action='remove-attribute-value' />

              <rule tag='script' action='remove-tag' />
              <rule tag='style' action='remove-tag' />
              <rule tag='link' attribute='rel' value='stylesheet'
                   value-criterion='contains' action='remove-tag' />
            </target>
        </filter-rule>
</config>
Dans l'exemple précédent :
  • <rule attribute='on' attribute-criterion='starts-with' action='remove-attribute-value' /> supprime les attributs qui commencent par "on."
  • <rule attribute='href' value='javascript:' value-criterion='contains' action='remove-attribute-value' /> supprime tous les attributs 'href' dont la valeur contient un mot clé 'javascript:'.
  • <rule tag='style' action='remove-tag' /> supprime toutes les balises "script".
  • <rule tag='link' attribute='rel' value='stylesheet' value-criterion='contains' action='remove-tag' /> supprime les balises "link" dont la valeur d'attribut "rel" correspond à "stylesheet".

Pour plus d'informations sur la liste de contrôle d'exécution, voir l'aide de Domino Administrator.

Message invitant les utilisateurs à enregistrer les modifications apportées aux XPages

Vous pouvez contrôler la façon dont une application de XPage affiche une invite de confirmation lorsque l'utilisateur demande une action qui ferme une page dont les zones sont modifiées.

Pourquoi et quand exécuter cette tâche
Quand une page XPage ou un contrôle personnalisé comporte des contrôles modifiables, vous pouvez définir deux propriétés pour spécifier comment l'application envoie un message à l'utilisateur au sujet des contrôles modifiés. Ces propriétés existent à deux niveaux : page XPage ou contrôles personnalisés, et contrôles principaux
  • Niveau 1 : page XPage ou contrôles personnalisés
    • enableModifiedFlag (booléen - la valeur implicite par défaut est false) – Spécifie s'il faut inviter l'utilisateur à enregistrer les changements dans les contrôles principaux de la page XPage ou dans le contrôle personnalisé, et activer l'option de client Notes Fichier > Sauvegarder quand la page XPage ou le contrôle a été modifié dans le client Notes. Les applications qui s'exécutent dans un navigateur externe ne peuvent utiliser le mécanisme Notes Fichier > Sauvegarder, seul le message d'invite s'affiche pour l'utilisateur.
    • modifiedMessage (chaîne) – Message personnalisé à afficher dans la boîte de dialogue d'invite
  • Niveau 2 : contrôles principaux
    • cdisableModifiedFlag (propriété booléenne - valeur implicite par défaut : true) – Indique si l'utilisateur doit ou non être invité à enregistrer les modifications apportées aux contrôles principaux.
La propriété enableModifiedFlag a la priorité absolue lors de l'activation ou la désactivation des notifications de modification pour une page XPage ou un contrôle personnalisé donné. Si vous affectez à cette propriété la valeur true, l'utilisateur sera informé des modifications apportées à toutes les contrôles principaux pris en charge dans la page XPage ou le contrôle personnalisé, sauf si vous affectez explicitement la valeur true à la propriété disableModifiedFlag du contrôle de base. Si vous ne définissez pas enableModifiedFlag pour une page XPage ou un contrôle personnalisé, ou si vous paramétrez explicitement la valeur à false tout en définissant à false une ou plusieurs valeurs de propriétés disableModifiedFlag de contrôle principal, l'utilisateur ne sera prévenu des modifications, car la propriété enableModifiedFlag est prioritaire.
Cette fonction est prise en charge par les contrôles principaux suivants :
  • Zone d'édition
  • Zone d'édition multiligne
  • Zone de liste
  • Zone de liste déroulante
  • Case à cocher
  • Bouton d'option
  • Chargement de fichier
  • Sélecteur de date et d'heure
  • Texte enrichi

Si l'utilisateur choisit de ne pas enregistrer les modifications apportées à la page actuelle, l'action demandée (telle que la fermeture de la page ou la navigation hors de la page dans un navigateur) peut s'exécuter. Si l'utilisateur choisit d'enregistrer les modifications, les zones associées sont validées avant que la page soit enregistrée. La validation a lieu en premier sur le client, puis sur le serveur. Uniquement lorsque la validation côté client des zones de la page actuel aboutit, la validation côté serveur peut avoir lieu. Si la validation côté serveur échoue, l'utilisateur voit s'afficher la page actuelle contenant les zones erronées et a la possibilité de corriger le contenu des zones. Une fois que la validation côté serveur aboutit, l'action demandée peut s'exécuter.

Exécution de XPages dans Notes sur un serveur Domino HTTP

Afin d'optimiser les performances, au lieu d'exécuter les applications XPages de type serveur dans le client Notes, vous pouvez les exécuter sur le serveur Domino HTTP.

Par défaut, les applications XPages de type serveur qui s'exécutent dans le client Notes sont exécutées via une série de transferts de données entre le serveur et le client à l'aide de protocoles Notes. Vous pouvez changer cela et indiquer que ces applications doivent s'exécuter sur le serveur Domino à l'aide de protocoles HTTP.

Les fonctions Notes fonctionnent de la même façon qu'en mode XPages natif. Par exemple, les menus contextuels (tels que Fichier > Sauvegarder, Fichier > Réplication, Fichier > Ouvrir), les sauvegardes de document modifiés, le code JavaScript côté client, se comportent de la même manière. Il existe toutefois une exception qui concerne l'incapacité pour les applications composites d'utiliser la fonctionnalité de courtier de propriétés client lorsqu'elles sont exécutées sur le serveur.

Exigences relatives à Designer
Sur l'onglet Launch pour Application Properties, où Open designated XPage (Standard client) est actif, cochez la case Run server-based XPages applications directly on Domino server et enregistrez l'application. Cette propriété peut également être appliquée dans Notes via la boîte de dialogue des propriétés pour une application.
Sinon, vous pouvez activer l'exécution du serveur pour toutes les applications en insérant la ligne suivante dans le fichier Notes notes.ini et en redémarrant Notes :
XPagesRunRemoteAppsOnServer=1
Exigences relatives à l'exécution de Notes
Le client Notes doit contenir un compte HTTP pour le serveur sur lequel réside l'application XPages. Pour créer ou visualiser des comptes Notes, cliquez sur File > Preferences > Accounts. Pour plus d'informations, voir la rubrique "Creating and editing accounts from the Notes preference" dans l'aide Notes.

Les comptes peuvent être configurés sur un serveur Domino et mis à la disposition des clients Notes.

Lorsqu'une application XPages de type serveur est lancée dans le client Notes, le processeur XPages recherche un compte HTTP pour le serveur contenant l'application et lance cette dernière.

Le cadre des comptes Notes et le navigateur XULRunner sous-jacent transmettent automatiquement les données d'identification de l'utilisateur au serveur Web pour authentification. Si l'utilisateur est invité à entrer un nom et un mot de passe, cela signifie que la configuration Notes est incorrecte, par exemple, la connexion unique est incorrecte. Toutefois, vous pouvez vérifier cela indépendamment en saisissant une adresse URL pour l'application dans le widget d'adresse de navigateur Notes dans la barre d'outils Notes.

Si aucun compte HTTP correspondant n'existe, l'utilisateur doit entrer des données d'identification sauf si l'accès anonyme est autorisé. Toutefois, l'existence d'un compte HTTP peut être requise au moyen de la variable notes.ini suivante :
XPagesRunOnServerRequireAccount=1
Si un compte correspondant requis est introuvable, ou si les informations de compte ne sont pas valides, l'utilisateur est invité à fermer la fenêtre d'application ou à revenir à l'exécution de l'application à l'aide du conteneur Web Notes local.
La variable notes.ini suivante désactive l'exécution de XPages dans Notes sur un serveur :
XPagesRunOnServerDisable=1
Performances
Les applications XPages qui s'exécutent dans le client Notes et résident sur des serveurs Domino distants sont confrontées à des problèmes de performance. Cela est principalement dû au fait qu'un grand nombre de transactions réseau doivent être réalisées lors de l'exécution de l'application XPages dans le client Notes. Il est important de comprendre que les applications Notes XPages s'exécutent dans le conteneur Web XPD Notes local et que, par conséquent, toutes les classes Java XPages (XPages et contrôles personnalisés) doivent être copiées sur le réseau à partir du serveur distant vers le client Notes pour être exécutées. De la même façon, toutes les ressources de page (CSS, JavaScript, GIF, etc.) doivent être extraites du serveur distant, ainsi que les données réelles. En outre, si votre application XPages optimise d'autres artefacts de conception Notes (par exemple, à l'aide de la fonction computeWithForm), les éléments de conception arbitrairement volumineux, tels que les formulaires, les sous-formulaires et les zones partagées, doivent également être extraits à distance. Sur les réseaux présentant un temps d'attente élevé, cela peut avoir des incidences significative sur les performances, en particulier si votre application a été conçue principalement pour le Web et qu'elle n'a pas été optimisée pour le client Notes.

Traduction d'une application de XPages

Lors de la traduction de pages XPages et de contrôles personnalisés, ne faites pas de nouvelles copies pour chaque langue, dans la mesure où le mécanisme de traduction de XPage est différent du mécanisme destiné aux éléments de conception IBM Notes.

Pourquoi et quand exécuter cette tâche
Dans le mécanisme de traduction de XPage, le texte traduisible est extrait de la XPage dans un fichier distinct à l'aide d'un processus automatique. Vous traduisez ensuite ce fichier dans d'autres langues. La XPage détermine le fichier traduit à utiliser, en fonction de la langue du navigateur Web ou du client Notes.

Pour obtenir des instructions sur la traduction de XPages, consultez la page "XPages: How to use the localization options" dans le wiki Domino Designer.

Conception de pages XPages en copie unique

Vous pouvez stocker les éléments de conception XPage dans une base de documents et y rediriger les autres bases de documents lors de l'exécution.

Pourquoi et quand exécuter cette tâche

Les pages XPages en copie unique génèrent un gain de performance en se servant d'un même emplacement pour le stockage des objets et l'accès au navigateur. Les éléments de conception concernés sont les pages XPages, les contrôles personnalisés, les bibliothèques JavaScript, les feuilles de style et les thèmes. Pour diriger une base de documents afin qu'elle utilise un référentiel pour ses éléments XPage lors de l'exécution, procédez comme suit :

Procédure

  1. Dans le panneau de gauche, sélectionnez Propriétés d'application.
  2. Dans le panneau supérieur, au niveau de la barre d'onglets située au centre de l'écran, sélectionnez l'onglet XPages.
  3. Descendez jusqu'à Performance.
  4. Cochez la case Conception XPage en copie simple.
  5. Spécifiez le nom du fichier NSF contenant les éléments de conception XPages. Le nom est relatif au répertoire data de Notes.

Résultats

L'application comportant les éléments de conception doit être un fichier NSF.

Tous les éléments de conception XPages doivent se trouver ensemble dans le référentiel (ou ne pas y être). Vous ne pouvez pas remplacer ou sélectionner individuellement des éléments de conception.

Il est impossible de changer dynamiquement le paramètre de copie unique.

Les éléments partagés sont limités aux éléments XPages énumérés ci-dessus. Les vues et les masques, par exemple, ne sont pas partagés.

Création d'applications accessibles avec XPages - présentation

Pour les développeurs Domino créant des applications Web, XPages est la solution accessible recommandée.

La conception et la création d'applications logicielles qui peuvent être utilisées par toute personne, quelles que soient ses potentialités ou ses déficiences, est une exigence majeure dans le monde de l'entreprise. Les développeurs Domino qui créent des applications Web trouvent dans XPages la solution d'accessibilité qui convient. La création d'une application accessible via XPages requiert la prise en compte d'un grand nombre d'utilisateurs différents, dont certains souffrent d'handicaps divers et d'autres de problèmes liés à l'âge.

Ce type de personnes risque de rencontrer des obstacles lors de l'utilisation d'une application qui peuvent être éliminés ou réduits par le développeur d'application, s'il a au préalable une connaissance précise des domaine pouvant poser problème de façon à proposer ensuite des solutions adaptées en personnalisant son développement en conséquence.

Les déficiences à prendre en compte lors de la conception d'applications accessibles concernent les quatre grands domaines suivants :

  • la vue
  • l'audition
  • la mobilité
  • l'intellect

Les sections suivantes vous proposent des réflexions générales dont le but est de vous aider à définir ce que vous devez faire pour rendre accessibles les applications XPages que vous concevez, en fonction du handicap concerné.

Pour les utilisateurs souffrant de déficiences visuelles

Tenez compte des points suivants quand vous concevez votre application pour ce type d'utilisateur :

  • Concentrez-vous sur la navigabilité de l'interface utilisateur que vous concevez. Les déficients visuels n'utilisent pas la souris, car elle exige une coordination entre la main et les yeux. Ils se déplacent dans l'application en se servant du clavier. Ainsi, la touche Tabulation déplace la mise en évidence sur un élément et un lecteur d'écran annonce le nom de l'élément de façon à indiquer sa mise en évidence à l'utilisateur. Ce dernier appuie ensuite sur la touche Entrée. En gardant ceci à l'esprit, assurez-vous que les libellés ou les autre textes de votre application fournissent un texte de remplacement pour tout contenu autre que du texte afin qu'il puisse être transformé ensuite de différentes façons : gros caractères, Braille, parole, symboles ou langage plus simple, par exemple.
  • Faites en sorte que tous les contenus qui ne sont pas du texte, comme les graphiques ou les diagrammes, soient proposés avec un texte de remplacement qui poursuit le même objectif. Les technologies de lecture d'écran sont en mesure d'obtenir des informations textuelles à partir d'images
  • Fournissez un texte de remplacement avec des images cliquables côté client. Des liens de texte équivalents doivent être disponibles si des images cliquables côté serveur sont utilisées.
  • Assurez-vous que les couleurs que vous utilisez dans l'interface utilisateur ainsi que la taille des polices que vous choisissez puissent être vues sans problèmes par des personnes qui ont une vision déficiente. Les utilisateurs dont la vue est basse ont besoin de se faire aider d'un système matériel ou logiciel permettant d'agrandir le texte au-delà de ce que proposent les polices les plus grandes. Les utilisateurs souffrant de daltonisme total ou partiel ou d'une mauvaise vue tirent profit des couleurs hautement contrastées.

    Quand une information n'est véhiculée que par la couleur, les personnes daltoniennes ne sont pas en mesure de la capter. De même, un utilisateur dont la vision est réduite risque de ne pas détecter une information si elle est présentée uniquement via un attribut qui se suffit à lui-même(contraste, profondeur, taille, emplacement, police, etc.). Utilisez plusieurs méthodes différentes pour faire passer les informations dans votre application. Ainsi, si les différentes barres d'un graphique sont mises en valeur par une couleur et un motif de remplissage spécifiques à chacune d'entre elles, assurez-vous qu'elles puissent être affichées aussi bien en couleur qu'en noir et blanc.

Pour les utilisateurs souffrant de déficiences auditives

Tenez compte des points suivants quand vous concevez votre application pour ce type d'utilisateur :

  • Assurez-vous que les informations audio en sortie sont fournies également dans un format visuel équivalent. Proposez une prise en charge supplémentaire en associant aussi à ce format visuel les options textuelles correspondantes.
  • Fournissez des libellés descriptifs pour les supports basés sur le temps, incluant les contenus en temps réel audio ou vidéo. Tout contenu autre que du texte qui est utilisé pour confirmer que l'accès est effectué par une personne plutôt que par un ordinateur doit être disponible sous diverses formes pour prendre en compte différents types d'handicap
  • Proposez des légendes si nécessaire (dans les vidéos, par exemple)

Pour les utilisateurs souffrant d'un handicap moteur

Tenez compte des points suivants quand vous concevez votre application pour ce type d'utilisateur :

  • Les individus dont la mobilité est réduite d'une façon ou d'une autre rencontrent des difficultés quand ils travaillent sur ordinateurs, et plus particulièrement quand ils se servent de périphériques d'entrée ou de supports de stockage de données. Assurez-vous de proposer des actions et solutions logicielles et matérielles qui peuvent être gérées sans souris ou sans clavier.

Pour les utilisateurs souffrant de troubles cognitifs

Tenez compte des points suivants quand vous concevez votre application pour ce type d'utilisateur :

  • Utilisez une interface cohérente et un langage simplifié. Les personnes souffrant d'une déficience cognitive (dyslexie ou dysfonctionnement de la mémoire à court terme, par exemple) doivent pouvoir disposer de solutions très générales, trop de détails pouvant les dérouter. Ainsi, en vous servant d'un modèle, vous pouvez réutiliser une disposition et une structure identiques pour chaque page, afin que les utilisateurs souffrant de ce type de problème puissent naviguer plus facilement dans un site Web.
  • Les personnes souffrant de troubles cognitifs ou de troubles d'apprentissage peuvent tirer profit d'entrées redondantes, si vous leur fournissez par exemple un fichier audio accompagné de sa retranscription vidéo.

    En visualisant un texte qui est en même temps lu à haute voix, l'utilisateur mobilise deux types de compétences (auditives et visuelles) qui lui permet de mieux comprendre le matériau concerné. Les utilisateurs peu familiarisés avec les interfaces de présentations peuvent également bénéficier des solutions destinées aux personnes souffrant de troubles cognitifs. En effet, la simplification de l'interface utilisateur et de la terminologie ainsi que les exemples fournis sont aussi adaptés aux utilisateurs souffrant de retards culturels ou éducationnels, ce qui est le cas par exemple de personnes qui n'ont pas l'habitude de se servir d'ordinateurs.

Informations supplémentaires relatives à la création d'applications accessibles

Les sources répertoriées ci-après fournissent des informations supplémentaires sur la création de logiciels et d'applications Web accessibles :

Instructions d'accessibilité spécifiques à XPages

Vérifiez qu'une application XPages et ses contrôles sont accessibles.

La conception et la création d'applications logicielles qui peuvent être utilisées par toute personne, quelles que soient ses potentialités ou ses déficiences, est une exigence majeure dans le monde de l'entreprise. Les développeurs Domino qui créent des applications Web trouvent dans XPages la solution d'accessibilité qui convient. La création d'une application accessible via XPages requiert la prise en compte d'un grand nombre d'utilisateurs différents, dont certains souffrent d'handicaps divers et d'autres de problèmes liés à l'âge.

Quand vous utilisez XPages pour créer votre application Web, certaines instructions spécifiques supplémentaires, présentées dans les sections suivantes, vous permettent de contrôler l'accessibilité de l'application.

Instructions d'accessibilité XPages

Quand vous vous servez de l'élément de conception XPages pour créer votre application Web, assurez-vous de l'accessibilité de cette dernière en suivant les instructions ci-après.

  • Utilisation d'ARIA, si nécessaire - les informations relatives à ARIA (Accessible Rich Internet Applications) vous aident à accroître l'accessibilité des pages Web, et s'avèrent en particulier utiles pour le contenu dynamique et les composants d'interface utilisateur développés avec Ajax, HTML, JavaScript et les technologies apparentées.

    ARIA sert à renforcer les fonctions apportées par HTML. Si l'utilisation d'HTML suffit pour rendre une page accessible, ARIA n'a pas besoin d'être configuré. Quand HTML comporte certaines lacunes, ARIA peut être utilisé pour fournir les informations d'accessibilité manquantes à un utilisateur JAWS. Toutefois, HTML reste toujours prioritaire sur ARIA.

    De ce fait, quand vous utilisez JAWS, même si certains attributs ARIA ont pu être définis et sont rendus en HTML, JAWS détermine s'ils sont utilisés et lus à un utilisateur, selon ce principe. A titre d'exemple, vous n'avez pas besoin par exemple à la fois d'un attribut aria-label et d'un attribut "for". HTML est toujours prioritaire sur ARIA et l'attribut aria-label est ignoré.

  • Utilisation de JAWS et de la fonction Mise à jour partielle et Mise à jour complète dans votre application - soyez prudent quand vous vous servez de la fonction Mise à jour partielle. Assurez-vous que la zone/le contrôle ciblé qui est mis à jour se trouve bien dans l'ordre de lecture (qu'il n'a donc pas encore été atteint par navigation) afin qu'il apparaisse dans le chemin de navigation JAWS.
  • Utilisation d'événements dans votre application - d'une façon générale, utilisez les gestionnaires de fonctions redondantes pour les événements onmouse afin de prendre en charge la navigation au clavier des utilisateurs handicapés
  • Utilisation des touches d'accès - les touches d'accès ne prennent pas en charge les liaisons d'exécution. Il est préférable de les définir au moment de la conception. Essayez de rendre les liaisons uniques et intuitives.
  • Utilisation des contrôles accessibles - servez-vous en dès que possible. Des modifications ont été apportées facilitant la création par les développeurs d'applications XPages via les contrôles accessibles. L'objectif est de rendre l'expérience d'exécution XPages plus compatible avec les exigences d'accessibilité. De nouvelles propriétés d'accessibilité ont été ajoutées à certains contrôles pour les rendre accessibles. Une documentation et des instructions supplémentaires ont aussi été ajoutées aux sections d'aide de ce produit référençant les contrôles afin de vous faciliter la création d'applications accessibles.
  • Utilisation des propriétés d'accessibilité - servez-vous des propriétés d'accessibilité spécifiques au contrôle que vous utilisez. Consultez les sections d'aide Références des contrôles et Références des contrôles (bibliothèque d'extension) pour des informations plus spécifiques sur les propriétés d'accessibilité disponibles pour un contrôle particulier.

Utilisation du thème accessible XPages

Avec la version 9.0.1, XPages prend désormais en charge un thème conforme aux instructions et exigences d'accessibilité. Ce thème s'intitule oneuiv2.1_blue.

Instructions d'accessibilité pour l'utilisation de contrôles avec XPages

Des informations complémentaires ont été ajoutées aux sections Références des contrôles de ce guide utilisateur pour vous aider à choisir les contrôles à utiliser pour rendre votre application accessible. Ces informations visant à faciliter le respect des exigences d'accessibilité incluent

  • une introduction aux propriétés spécifiques à l'accessibilité
  • des instructions d'utilisation des contrôles pour permettre à votre application de se conformer aux niveaux d'accessibilité requis
  • des informations relatives aux solutions de contournement et des recommandations de remplacement

Consultez les sections d'aide Références des contrôles et Références des contrôles (bibliothèque d'extension) pour des informations plus spécifiques sur les propriétés d'accessibilité disponibles pour un contrôle particulier.

Affichage de pages d'erreur personnalisées pour répondre aux exigences d'accessibilité

En vous faisant aider par votre administrateur système, vous pouvez fournir des pages d'erreur personnalisées pour vous conformer aux niveaux d'accessibilité requis.

Si les erreurs 401, 403, 404 ou 500 proviennent du moteur Web Domino, vous pouvez remplacer les pages d'erreur correspondantes par vos propres pages personnalisées. Pour plus de détails, consultez la rubrique Messages de serveur Web personnalisés dans l'aide de Domino Administrator.

Si l'erreur 404 (Fichier non trouvé) provient de la tâche HTTP Domino, vous disposez d'un paramètre du fichier NOTES.INI qui vous permet de personnaliser cette page d'erreur. Consultez l'aide de Domino Administrator et cette note technique pour plus d'informations.

Conseils généraux relatifs à l'accessibilité des applications

Pour les développeurs Domino créant des applications Web, XPages est la solution accessible recommandée. Parmi les autres possibilités dont vous disposez pour vous assurer de l'accessibilité de votre application, vous pouvez :

  • activer SSO sur le serveur Domino pour une authentification accessible de l'utilisateur.

Ajout de contrôles

Les contrôles sont des éléments visuels (zones d'édition, boutons, images et texte) qui permettent aux utilisateurs de manipuler des données sur une page XPage.

Les contrôles peuvent avoir l'un des types suivants : contrôles principaux, contrôles conteneurs et autres.

Un nom de balise identifie chaque contrôle dans le XML. Un nom courant apparaît dans l'interface utilisateur. Ainsi, le nom de balise pour une zone d'édition est inputText alors que le nom ordinaire est Zone d'édition. Les rubriques de référence ci-après identifient les contrôles par nom de balise et nom courant.

La palette Contrôles et le menu Créer répertorient la plupart des contrôles principaux et conteneurs par défaut. Sélectionnez Autres pour accéder à tous les contrôles. Vous pouvez modifier l'affichage des contrôles en sélectionnant Fichier > Préférences > Domino Designer > Palette.

Manipulation des contrôles et du texte

Vous pouvez ajouter des contrôles et du texte à une page XPage en vous servant de l'éditeur Conception ou Source. La palette Contrôles fournit la source des contrôles.

La palette Contrôle apparaît dans une fenêtre située à droite de l'éditeur. Si elle ne s'affiche pas, cliquez sur Fenêtre > Afficher les vues Eclipse > Contrôles.

Il est possible de faire glisser un contrôle, depuis la palette jusque dans l'éditeur (Conception et Source). Vous pouvez aussi positionner le curseur dans l'éditeur puis cliquer deux fois sur le contrôle voulu dans la palette. Vous avez également la possibilité de sélectionner Créer > Contrôles principaux ou Créer > Contrôles conteneurs dans le menu.

Vous pouvez déplacer, redimensionner, couper, copier, coller et supprimer des contrôles de la manière habituelle.

Il est possible d'ajouter du texte et des retours à la ligne dans une page XPage.

Le positionnement du curseur sur un contrôle, dans l'éditeur Conception, rend ses propriétés disponibles. Pour afficher les propriétés XPages, placez le curseur en dehors des contrôles.

Certaines manipulations XPage peuvent également être effectuées depuis la vue Plan.

Définition des propriétés

Les propriétés définissent des pages XPages et des contrôles.

Elles apparaissent dans une fenêtre sous l'éditeur et correspondent au contrôle mis en évidence dans l'éditeur ou à la page XPage, si aucun contrôle n'est mis en évidence.

Sélectionnez Toutes les propriétés sous l'onglet Propriétés pour accéder à une liste catégorisée de toutes les propriétés d'un contrôle ou d'une page XPage. Les propriétés y sont identifiées par leurs noms de balise canoniques. Effectuez d'autres sélections dans les onglets Propriétés et Evénements pour accéder à des sous-ensembles de propriétés proposant une interface utilisateur conçue, dans laquelle vous accédez aux propriétés via leurs noms descriptifs.

L'affectation de valeurs aux propriétés s'effectuent de la façon suivante :
  • Les sélections des valeurs statiques s'effectuent à partir d'une liste ou sont tapées.
  • Les valeurs dynamiques sont spécifiées avec des scripts retournant une valeur. Un losange à côté d'une propriété permet d'ouvrir l'éditeur de script.
  • Les événements sont spécifiés avec des scripts côté serveur et côté client et des actions simples. La meilleure façon de procéder est d'utiliser l'onglet Evénements.
Dans la source XML, les propriétés apparaissent sous forme d'attributs et de contenu pour l'élément de contrôle. L'exemple ci-dessous présente un contrôle inputText (Zone d'édition), avec les propriétés id et value définies comme attributs :
<xp:inputText id="inputText1" value="#{document1.subject}"></xp:inputText>
La propriété value ci-dessous est définie comme contenu pour la définition de contrôle :
<xp:inputText id="inputText1">
	<xp:this.value>
		<![CDATA[#{javascript:return document1.getItemValueString("subject")}]]>
	</xp:this.value>
</xp:inputText>
Les propriétés dynamiques sont calculées de la façon suivante. Utilisez les boutons d'option de la fenêtre d'édition et effectuez votre sélection.
  • Calcul dynamique recalcule la formule chaque fois que la page XPage est actualisée. Ces formules apparaissent dans la source, précédées par le signe dièse, par exemple #{javascript:var dc = database.getAllDocuments(); "Nombre = " + dc.getDocumentCount();}.
  • Calcul lors du chargement de la page calcule la formule quand la page est chargée pour la première fois. Ces formules apparaissent dans la source, précédées par le signe dollar, par exemple ${javascript:var dc = database.getAllDocuments(); "Nombre = " + dc.getDocumentCount();}.

Présentation des événements

Les événements sont des actions qu'un utilisateur peut exécuter, comme le fait de cliquer sur un bouton ou de supprimer la mise en évidence d'une zone d'édition. Les gestionnaires d'événements sont des actions que vous, le concepteur, exécutez en réponse à ces événements.

Un gestionnaire d'événements fait partie d'un contrôle ou d'une XPage.

Un gestionnaire d'événements peut être un script, une action simple ou un groupe d'actions simples. Pour un événement, il peut être demandé aux gestionnaires de s'exécuter sur le client, sur le serveur ou sur les deux. Un gestionnaire client peut arrêter l'exécution d'un autre gestionnaire client et annuler l'exécution d'un gestionnaire serveur en retournant false.

Si vous travaillez en mode Conception, mettez en évidence la page ou le contrôle voulu, cliquez sur l'onglet Evénements et sélectionnez l'événement souhaité. Vous pouvez alors spécifier le gestionnaire d'événements.

Les événements sont traités comme des propriétés et apparaissent sur l'onglet Toutes les propriétés sous Propriétés. Il n'est toutefois pas recommandé de créer ou de modifier un événement à partir de Toutes les propriétés. Utilisez l'onglet Evénements ou l'XML source.

Gestionnaires d'événements serveur

Le format général d'un gestionnaire d'événements serveur en mode Source est présenté ci-dessous. Si vous travaillez en mode Conception, sélectionnez l'onglet Evénements puis l'onglet Serveur.
<xp:eventHandler event="name" submit="true|false"
	refreshMode="complete|partial|norefresh" refreshId="id"
	immediate="true|false"	execMode="partial|full">
	<xp:this.action>
		<![CDATA[#{javascript:textOfScript}]]> <!-- script -->
		<xp:actionName arguments</xp:actionName> <!-- or simple action -->
		<xp:actionGroup condition="#{javascript:textOfScript}"> <!-- or simple action group -->
			actions and embedded groups
		</xp:actionGroup>
	</xp:this.action>
	<xp:this.parameters>
		<xp:this.parameter name="name" value"value"</xp:this.parameter> ...
	</xp:this.parameters>
</xp:eventHandler>
Où :
  • event spécifie le nom de l'événement, onblur ou onclick, par exemple. Si vous travaillez sur l'onglet Evénements, sélectionnez l'événement approprié
  • submit="true" provoque l'envoi d'une requête au serveur quand l'utilisateur active l'événement. Toute autre valeur attribuée à submit désactive l'événement. Si vous travaillez sur l'onglet Evénements, cliquez sur Sans soumission pour supprimer l'événement.
  • refreshMode prend l'une des valeurs suivantes :
    • complete recharge toute la page sur le client une fois que le serveur a traité la requête. Si vous travaillez sur l'onglet Evénements, cliquez sur Mise à jour complète.
    • partial recharge une partie sélectionnée de la page en utilisant la technologie AJAX (Asynchronous JavaScript and XML). Si vous travaillez sur l'onglet Evénements, cliquez sur Mise à jour partielle.
    • norefresh ne recharge pas la page. Si vous travaillez sur l'onglet Evénements, cliquez sur Aucune mise à jour.
  • refreshId, qui ne s'applique qu'à refreshMode="partial", spécifie le contrôle à mettre à jour. Si vous travaillez sur l'onglet Evénements, cliquez sur Sélectionner élément.
  • immediate="true" supprime la validation de données sur le serveur. Pour le traitement des données, omettez cet attribut ou spécifiez autre chose que true. Si vous travaillez sur l'onglet Evénements, cliquez sur Ne pas valider ou mettre à jour les données.
  • execMode="partial" spécifie une actualisation partielle quand un fragment de code est exécuté. Pour une actualisation totale, omettez cet attribut ou spécifiez autre chose que partial. Si vous travaillez sur l'onglet Evénements, cliquez sur Définir le mode d'exécution partielle.
  • action spécifie soit :
    • le script où textOfScript est votre code. Si vous travaillez sur l'onglet Evénements, cliquez sur Editeur de script. Entrez le script dans la fenêtre de script ou ouvrez la boîte de dialogue de script.
    • le nom de l'action simple et ses arguments. Si vous travaillez sur l'onglet Evénements, cliquez sur Actions simples. Utilisez les différents boutons et listes pour créer et éditer des actions simples.
    • actionGroup qui peut contenir des actions simples ou d'autres groupes d'action. La condition est facultative. Vous pouvez spécifier plusieurs groupes.
  • parameters spécifie le nom et les valeurs des éventuels paramètres d'événement. Si vous travaillez sur l'onglet Evénements, cliquez sur Editer paramètres d'événement.

Gestionnaires d'événements

Le format général d'un gestionnaire d'événements qui est un script client est présenté ci-dessous. Si vous travaillez en mode Conception, sélectionnez l'onglet Evénements puis l'onglet Client.
<xp:eventHandler event="name" submit="false"
	<xp:this.script>
		<![CDATA[[textOfScript]]> <!-- script -->
		<xp:actionName arguments</xp:actionName> <!-- or simple action -->
		<xp:scriptGroup conditionScript="textOfScript"> <!-- or simple action group -->
			actions and embedded groups
		</xp:scriptGroup>
	</xp:this.script>
</xp:eventHandler>
Où :
  • event spécifie le nom de l'événement, onblur ou onclick, par exemple. Si vous travaillez sur l'onglet Evénements, sélectionnez l'événement approprié.
  • submit="false" signifie qu'aucune requête n'est envoyée au serveur quand l'utilisateur active l'événement. Requis pour un script client.
  • script spécifie soit :
    • le script où textOfScript est votre code. Si vous travaillez sur l'onglet Evénements, cliquez sur Editeur de script. Entrez le script dans la fenêtre de script ou ouvrez la boîte de dialogue de script.
    • le nom de l'action simple et ses arguments. Si vous travaillez sur l'onglet Evénements, cliquez sur Actions simples. Utilisez les différents boutons et listes pour créer et éditer des actions simples.
    • scriptGroup qui peut contenir des actions simples ou d'autres groupes d'action. La condition est facultative. Vous pouvez spécifier plusieurs groupes.

Gestionnaire d'événements Soumettre et Annuler

Un bouton de type Soumettre génère un gestionnaire d'événements de la forme ci-après :
<xp:eventHandler event="onclick" submit="true"
	refreshMode="complete" immediate="false" save="true">
</xp:eventHandler>
Un bouton de type Annuler génère un gestionnaire d'événements de la forme ci-après :
<xp:eventHandler event="onclick" submit="true"
	refreshMode="complete" immediate="true" save="false">
</xp:eventHandler>
Remarquez que save="true" pour les boutons de type Soumettre et save="false" pour les boutons de type Annuler.

Combinaison des gestionnaires d'événements côté client et serveur

Le code JavaScript côté client peut déclencher un gestionnaire d'événements côté serveur. Le premier paramètre doit être un chemin d'accès complet au gestionnaire d'événements plutôt que simplement l'ID du gestionnaire d'événements côté serveur, ce qui vous permet d'appeler également les gestionnaires d'événements qui sont intégrés dans des contrôles personnalisés. Vous pouvez obtenir l'ID du côté serveur et le passer via le script client comme vous le feriez pour tout autre contrôle (en utilisant par exemple # {id:eventhanderId} ou la fonction SSJS getClientId()).

Le gestionnaire d'événements est exécuté au sein du contexte que vous spécifiez. Ainsi, la spécification d'un gestionnaire d'événements avec un ID de view:_id1:repeatCtrl:0:_id33:eventhandler1 exécuterait le premier élément de xp:repeat avec un ID de repeatCtrl, tandis que view:_id1:repeatCtrl:1:_id33:eventhandler1 procéderait à cette opération en fonction du second élément.

La gestion d'événements côté client, qui est déclenchée avec un bouton ou un autre élément d'interface utilisateur, passe les informations au serveur pour qu'elles soient traitées par la gestion d'événements côté serveur. Si vous travaillez en mode Conception, sélectionnez l'onglet Evénements puis l'onglet Client.
<button dojoType="dijit.form.Button" type="button"
	onClick="XSP.executeOnServer('# {id:eventhandler1a}', '# {id:panel1}')">
	Click To Trigger Server Event Handler
</button>

<xp:eventHandler event="name" id="eventhandler1a">
	<xp:this.action>
		<xp:saveDocument />
	</xp:this.action>
</xp:eventHandler>
Si vous travaillez en mode Conception, sélectionnez l'onglet Evénements puis l'onglet Serveur.
XSP.executeOnServer = function () {
	// the event handler id to be executed is the first argument, and is required
	if (!arguments[0])
		return false;
	var functionName = arguments[0];

	// OPTIONAL - The Client Side ID that is partially refreshed after executing the event handler
	var refreshId = (arguments[1]) ? arguments[1] : "@none";
	var form = (arguments[1]) ? this.findForm(arguments[1]) : dojo.query('form')[0];
       
	// catch all in case dojo element has moved object outside of form...
	if (!form)
		form = dojo.query('form')[0];

	// OPTIONAL - Options object containing onStart, onComplete and onError functions for the call to the
	// handler and subsequent partial refresh
	var options = (arguments[2]) ? arguments[2] : {};

	// OPTIONAL - Value to submit in $$xspsubmitvalue. can be retrieved using context.getSubmittedValue()
	var submitValue = (arguments[3]) ? arguments[3] : '';

	// Set the ID in $$xspsubmitid of the event handler to execute
	dojo.query('[name="$$xspsubmitid"]')[0].value = functionName;
	dojo.query('[name="$$xspsubmitvalue"]')[0].value = submitValue;
	this._partialRefresh("post", form, refreshId, options);
}	

Présentation des facettes

Une facette définit une région d'un contrôle où sont placés d'autres contrôles.

Un contrôle peut rendre ou non une facette, ceci dépendant du type du contrôle et du contenu de la facette.

Une utilisation spéciale des facettes consiste à placer des pagers dans les vues. L'utilisation générale des facettes est le placement de panneaux dans d'autres contrôles. Vous trouverez ci-dessous un code source exemple pour une vue. Remarquez que la région facets, qui apparaît comme un attribut du contrôle parent, comporte l'autre contrôle.
<xp:viewPanel rows="30" id="viewPanel1">
	<xp:this.facets>
		<xp:pager partialRefresh="true" layout="Previous Group Next"
			xp:key="headerPager" id="pager1">
		</xp:pager>
	</xp:this.facets>
	<xp:this.data>
		<xp:dominoView var="view2" viewName="main"></xp:dominoView>
	</xp:this.data>
	<xp:viewColumn columnName="subject" id="viewColumn1">
		<xp:viewColumnHeader value="subject" id="viewColumnHeader1"></xp:viewColumnHeader>
	</xp:viewColumn>
	<xp:viewColumn columnName="fruit" id="viewColumn2">
		<xp:viewColumnHeader value="fruit" id="viewColumnHeader2"></xp:viewColumnHeader>
	</xp:viewColumn>
</xp:viewPanel>

La spécification xp:key est un artefact de facettes et non pas une propriété de l'autre contrôle. La valeur montrée convient pour le pager d'une vue. Pour un panneau, utilisez l'une des valeurs suivantes pour spécifier l'emplacement de l'autre contrôle dans le parent : east, west, south, north, southwest, southeast, northwest et northeast.

Le code exemple suivant contient un panneau qui affiche deux liens (Inbox et Outbox) et une image. Le premier lien fournit un événement onclick.
<xp:viewPanel>
	<xp:this.facets>
		<xp:panel xp:key="west">
			<xp:link text="InboxBox >
				<xp:eventHandler event="onclick" submit="true">
					<xp:this.action>
					</xp:this.action>
				</xp:eventHandler>
			</xp:link>
			<xp:br/>
			<xp:link  text="Outbox" />
			<xp:br/>
			<xp:image id="viewPickerImage"
				value="/images/sampleViewPicker.gif" />
		</xp:panel>
	</xp:this.facets>
<xp:viewPanel>

Les facettes ne sont pas visibles en mode Conception. Vous devez vous servir du mode Source pour créer et modifier directement des facettes.

Présentation des widgets Dojo

Les widgets Dojo sont formés de déclarations CSS, de code HTML et de code JavaScript prêts à l'emploi, qui agissent sur l'apparence et l'utilisation des contrôles affichés aussi bien dans un navigateur que dans le client Notes.

Les widgets Dojo peuvent être utilisés dans les contrôles suivants : Boîte d'édition, Texte enrichi, Boîte d'édition multiligne, Bouton, Case à cocher, Bouton d'option, Sélecteur de date et d'heure, Etendre le contenu, Panneau, Table, Div.

Dans Domino 8.5.3, les fichiers Dojo se trouvent sous domino\js\dojo-1.5.0\dijit dans le répertoire data Notes. Dans Domino 8.5.2, ils figurent dans domino\js\dojo-1.4.1\dijit.

Les applications doivent se référer aux fichiers Dojo via /.ibmxspres/dojoroot/ qui correspondent à la version prise en charge.

Pour plus d'informations sur Dojo, consultez http://api.dojotoolkit.org.

Disponibilité des ressources Dojo sur une page XPage

Il est nécessaire de rendre les ressources Dojo disponibles avant de les appliquer aux contrôles.

Pourquoi et quand exécuter cette tâche
Pour rendre les ressources Dojo disponibles sur une page XPage :
Procédure
  1. Placez la mise en évidence sur la page XPage elle-même.
  2. Sélectionnez Dojo sur l'onglet Propriétés.
  3. Définissez dojoTheme à true.
  4. Sélectionnez Resources sur l'onglet Propriétés.
  5. Pour chaque widget que vous voulez rendre disponible :
    1. Cliquez sur Ajouter et sélectionnez Module Dojo.
    2. Spécifiez le nom du module Dojo, dijit.form.NumberSpinner, par exemple.
    3. (Facultatif) Spécifiez une condition (script qui évalue à true ou false).
    4. Cliquez sur OK.

Application d'un widget Dojo à un contrôle

Une fois que des ressources Dojo sont disponibles sur une page XPage, vous pouvez les appliquer aux contrôles.

Pourquoi et quand exécuter cette tâche
Pour appliquer un widget Dojo à un contrôle comme une zone d'édition :
Procédure
  1. Placez la mise en évidence sur le contrôle.
  2. Sélectionnez Dojo sur l'onglet Propriétés.
  3. Définissez Type Dojo en lui attribuant le nom d'une ressource de module Dojo, dijit.form.NumberSpinner, par exemple. Sous Toutes les propriétés, il s'agit de dojoType.
  4. Pour définir une valeur d'attribut :
    1. Cliquez sur l'icône Ajouter.
    2. Spécifiez le nom de l'attribut, value ou smallDelta pour dijit.form.NumberSpinner, par exemple.
    3. Spécifiez la valeur de l'attribut, 100 pour value, par exemple, ou 5 pour smallDelta dans dijit.form.NumberSpinner.
    Sous Toutes les propriétés, il s'agit de dojoAttributes.
Résultats
Si vous enregistrez et prévisualisez le widget dijit.form.NumberSpinner appliqué à un contrôle Zone d'édition, vous verrez s'afficher, sur le côté du contrôle, un bouton fléché présentant deux flèches, l'une pointant vers le haut et l'autre, vers le bas. La valeur initiale de la zone d'édition est l'attribut value. Quand vous cliquez sur les flèches vers le haut et le bas, la valeur augmente ou diminue de l'intervalle spécifié dans l'attribut smallDelta.

Références des contrôles

Les contrôles XPages sont répertoriés et décrits ci-dessous.

br - Retour à la ligne

Insère un retour à la ligne dans un texte.

Catégorie
Contrôles principaux
Syntaxe
<xp:br attributes>content</xp:br>
Tableau 1. Toutes les propriétés
Catégorie Propriétés
accessibilité title
fondamentaux attrs, binding, id, loaded, rendered, rendererType
dojo dojoAttributes, dojoType
définition de style disableTheme, style, styleClass, themeId
Utilisation

A l'exécution, un retour à la ligne apparaît sur la page.

Généralement, ce contrôle n'utilise pas de propriétés

Exemple
Ici, un retour à la ligne est inséré entre deux boutons :
<xp:button value="Submit" id="button2">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete"
	immediate="false" save="true"></xp:eventHandler>
</xp:button>
<xp:br></xp:br>
<xp:button value="Cancel" id="button3">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete"
	immediate="true" save="false"></xp:eventHandler>
</xp:button>

button - Bouton

Affiche un bouton sur lequel l'utilisateur peut cliquer pour exécuter une action.

Catégorie
Contrôles principaux
Syntaxe
<xp:button attributes>content</xp:button>
Tableau 2. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs button1, button2, etc.
value Spécifie le libellé pour le bouton.
eventHandler Spécifie l'action exécutée quand le bouton est activé. Reportez-vous à la section Utilisation.
Utilisation
A l'exécution, un bouton apparaît sur la page, sur lequel l'utilisateur peut cliquer.
Les boutons sont de trois types :
  • Bouton (défaut) répond aux gestionnaires d'événements que vous créez, pour onclick, par exemple. Pour une compatibilité d'accessibilité, la propriété value doit décrire l'action en cours d'exécution.
  • Soumettre enregistre les données et ferme la page. Pour une compatibilité d'accessibilité, la propriété value doit être Soumettre.
  • Annuler ferme la page. Pour une compatibilité d'accessibilité, la propriété value doit être Annuler.
Quand une page est fermée, la page suivante chargée est déterminée par la propriété navigationRules pour la page qui est signalée comme Page suivante (si la mise à jour aboutit) dans l'interface utilisateur.
Pour définir ce type de bouton dans l'interface utilisateur, cliquez sur Bouton sous Propriétés et cherchez Type de bouton. La propriété eventHandler générée a les attributs ci-après. Suivez ces règles si vous construisez manuellement la propriété eventHandler.
Bouton Soumettre Annuler
event=tous event="onclick" event="onclick"
submit=tous submit="true" submit="true"
refreshMode=tous refreshMode="complete" refreshMode="complete"
immediate=tous immediate="false" immediate="true"
save=any save="true" save="false"
action=action simple ou gestionnaire d'événements action=aucune action=aucune
Exemples
Ce contrôle Bouton est de type Soumettre.
<xp:button id="button1" value="Submit">
	<xp:eventHandler event="onclick"
		submit="true" refreshMode="complete" immediate="false" save="true">
	</xp:eventHandler>
</xp:button>
Ce contrôle Bouton est de type Annuler.
<xp:button id="button2" value="Cancel">
	<xp:eventHandler event="onclick"
		submit="true" refreshMode="complete" immediate="true" save="false">
	</xp:eventHandler>
</xp:button>
Ce contrôle Bouton, de type Bouton, exécute l'action simple d'enregistrement de données quand elle est actionnée.
<xp:button id="button1" value="Save and Exit">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
		<xp:this.action>
			<xp:save name="/xpage2.xsp"></xp:save>
		</xp:this.action>
	</xp:eventHandler>
</xp:button>

callback - zone modifiable

Fournit un contrôle personnalisé avec une zone qui peut être modifiée quand elle est intégrée dans une page XPage.

Catégorie
Contrôle principaux
Syntaxe
<xp:callback attributes>content</xp:callback>
Tableau 4. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs callback1, callback2, etc.
facetName Identifie la région de valeur
Tableau 5. Toutes les propriétés
Catégorie Propriétés
fondamentaux attrs, binding, facetName, id, loaded, rendered, rendererType
définition de style disableTheme, themeId
Utilisation
Ce contrôle ne s'applique qu'à un contrôle personnalisé.

Pour plus d'informations, consultez les rubriques Définition de zones modifiables dans des contrôles personnalisés et Définition de propriétés pour les zones modifiables dans des contrôles personnalisés.

checkBox - Case à cocher

Affiche une case qui peut être cochée ou désélectionnée.

Catégorie
Contrôles principaux
Syntaxe
<xp:checkBox attributes>content</xp:checkBox>
Tableau 6. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs checkBox1, checkBox2, etc.
text Fournit un libellé.
value Lie le contrôle à un élément de données ou à une autre valeur.
checkedValue Spécifie la valeur de données quand la case est cochée. Prend par défaut la chaîne true.
uncheckedValue Spécifie la valeur de données quand la case est désélectionnée. Prend par défaut la chaîne false.
defaultChecked Spécifiez true pour cocher la case par défaut.
Utilisation
A l'exécution, une case à cocher apparaît sur la page que l'utilisateur peut sélectionner ou décocher. Une coche s'affiche dans la case quand elle sélectionnée.

Pour une compatibilité d'accessibilité, un libellé doit suivre la case à cocher. Pour ce faire, vous pouvez spécifier la propriété text ou placer un contrôle Libellé après la case à cocher. Le libellé ne doit pas précéder la case à cocher.

Exemples
Ce contrôle Case à cocher affecte une valeur de données selon que la case est cochée (défaut) ou désélectionnée.
<xp:checkBox id="checkBox2" text="Use user name instead of Anonymous"
	defaultChecked="true" value="#{document1.loginname}" uncheckedValue="Anonymous"
	checkedValue="#{javascript:session.getUserName()}">
</xp:checkBox>
Ce contrôle Case à cocher est lié à une variable de requête intitulée phonesame. Un script s'exécute si l'état de la case change. Il donne à la valeur du contrôle phonenight (zone d'édition) la même valeur que le contrôle phoneday si la case à cocher est sélectionnée.
<xp:checkBox text="Night phone same as day" id="checkBox1"
	value="#{requestScope.phonesame}">
	<xp:eventHandler event="onchange" submit="true" 	refreshMode="complete">
		<xp:this.action><![CDATA[#{javascript:
			if(requestScope.phonesame == "true") {
				getComponent("phonenight").setValue(
					getComponent("phoneday").getValue());
			}
		}]]></xp:this.action>
	</xp:eventHandler>
</xp:checkBox>

checkBoxGroup - Groupe de cases à cocher

Affiche plusieurs cases qui peuvent être cochées ou désélectionnées.

Catégorie
Contrôles principaux
Syntaxe
<xp:checkBoxGroup attributes>content</xp:checkBoxGroup>
Tableau 8. Contrôles imbriqués
Commande Description
selectItem Fournit un élément pour une sélection utilisateur.
selectItems Fournit un ou plusieurs éléments pour une sélection utilisateur.
Tableau 9. Propriétés essentielles
Catégorie Propriétés
id Prend par défaut les valeurs checkBoxGroup1, checkBoxGroup2, etc.
value Lie le contrôle à un élément de données ou à une autre valeur.
legend Fournit une description de groupe lisible à l'écran.
Utilisation
A l'exécution, une ou plusieurs cases à cocher apparaissent sur la page que l'utilisateur peut sélectionner ou décocher. Une coche s'affiche dans une case quand elle sélectionnée.

L'élément de données lié à la case à cocher doit autoriser les valeurs multiples.

Pour une compatibilité d'accessibilité, vous devez spécifier la propriété legend.

Exemples
Ce contrôle Groupe de cases à cocher présente deux éléments pour sélection.
<xp:checkBoxGroup id="checkBoxGroup1" legend="Select fruit" value="#{document1.fruit}">
		<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
		<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
	</xp:checkBoxGroup>
Ce contrôle Groupe de cases à cocher présente deux éléments pour sélection en utilisant une formule.
<xp:checkBoxGroup id="checkBoxGroup1" legend="Select fruit" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>
Ce groupe de case à cocher obtient ses sélections d'éléments à partir des valeurs d'une colonne de vue.
<xp:checkBoxGroup id="checkBoxGroup1" legend="Select fruit" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>

comboBox - Zone de liste déroulante

Affiche une liste d'éléments dont un seul peut être sélectionné à la fois.

Catégorie
Contrôles principaux
Syntaxe
<xp:comboBox attributes>content</xp:comboBox>
Tableau 11. Contrôles imbriqués
Commande Description
selectItem Fournit un élément pour une sélection utilisateur.
selectItems Fournit un ou plusieurs éléments pour une sélection utilisateur.
Tableau 12. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs comboBox1, comboBox2, etc.
text Fournit un libellé.
value Lie le contrôle à un élément de données ou à une autre valeur.
Utilisation
A l'exécution, une liste déroulante apparaît sur la page dans laquelle l'utilisateur peut sélectionner un élément.
Exemples
Ce contrôle Zone de liste déroulante présente deux éléments pour sélection.
<xp:comboBox id="comboBox1" value="#{document1.fruit}">
	<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
	<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
</xp:comboBox>
Ce contrôle Zone de liste déroulante présente deux éléments pour sélection en utilisant une formule.
<xp:comboBox id="comboBox1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:comboBox>
Cette zone de liste déroulante obtient ses sélections d'éléments à partir des valeurs d'une colonne de vue.
<xp:comboBox id="comboBox1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:comboBox>

dataTable - Table de données

Contient des cellules disposées en lignes et en colonnes et associées à une source de données. Chaque cellule peut comporter d'autres contrôles (dont des tableaux) et du texte.

Catégorie
Contrôles conteneurs
Syntaxe
<xp:dataTable attributes>
	<xp:column attributes>content	</xp:column>
	...
</xp:dataTable>
Tableau 14. Propriétés essentielles
Propriété Description
id (dataTable) Prend par défaut les valeurs dataTable1, dataTable2, etc.

(column) Prend par défaut les valeurs column1, column2, etc.

value (dataTable) Généralement, la liaison de données s'effectue vers une collection d'éléments, un objet NotesDocumentCollection, par exemple.
var (dataTable) Généralement, cette variable se réfère à un membre de la collection de données liée, un objet NotesDocument, par exemple, si la liaison s'effectue vers un objet NotesDocumentCollection.
Tableau 15. Toutes les propriétés (dataTable)
Catégorie Propriétés
accessibilité caption, role, summary, title
Remarque : La propriété role est obsolète depuis la version 9.0.1. Par défaut, la valeur compatible appropriée est générée. Pour une conformité aux normes d'accessibilité, ne spécifiez pas de valeur pour cette propriété.
basics attrs, binding, dir, disabled, id, lang, loaded, partialExecute, partialRefresh, refreshId, rendered, rendererType, rules
données data, first, indexVar, rows, value, var
événements onclick, ondblclick, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
format bgcolor, border, cellpadding, cellspacing, frame, showUnreadMarks, width
définition de style captionStyleClass, columnClasses, disableTheme, footerClass, headerClass, readMarksClass, rowClasses, style, styleClass, themeId, unreadMarksClass
Tableau 16. Toutes les propriétés (column)
Catégorie Propriétés
accessibilité role
basics binding, id, loaded, rendered, rendererType
définition de style disableTheme, style, styleClass, themeId
Pagers
Une région de facette, qui contient un ou plusieurs contrôles Pager, est également proposée dans la table, selon les spécifications de conception. Utilisez le mode Source pour travailler dans la facette.

Vous trouverez ci-dessous une facette exemple pour les contrôles Pager :

<xp:this.facets>
	<xp:pager partialRefresh="true" layout="Previous Group Next"
		xp:key="header" id="pager1">
	</xp:pager>
</xp:this.facets>
Les cases à cocher suivantes, qui apparaissent lorsque vous sélectionnez l'onglet Affichage sous Propriétés, affectent le contenu de facette de la façon suivante :
  • La case Afficher le pager dans l'en-tête (désélectionnée par défaut) génère un contrôle pager de clé header. Aucune région de facette n'est générée si cette case est décochée.
  • La case Afficher le pager dans le pied de page (désélectionnée par défaut) génère un contrôle pager de clé footer.
Utilisation
A l'exécution, la table de données apparaît sur la page à laquelle l'utilisateur peut accéder, cellule par cellule.

Une fois qu'une table de données est créée, vous pouvez ajouter et supprimer des lignes et des colonnes.

Le contenu de chaque colonne se compose d'une, de deux ou de trois valeurs représentant les lignes d'en-tête, de milieu et de pied de page de la table. La ligne du milieu est rendue comme un nombre variable de lignes dépendant du nombre d'éléments dans la source de données.

Pour les fonctionnalités d'affichage Domino comme les catégories, les documents de réponse et le tri, préférez un contrôle Vue control. Ce type de contrôle incorpore les fonctionnalités de sa vue Domino source.

Adoptez le contrôle dataTable - Table de données quand vous avez besoin de fonctionnalités qui vont au-delà de celles proposées par un contrôle Vue. Ce contrôle permet à l'utilisateur de procéder à des modifications dans les colonnes alors qu'un contrôle Vue n'autorise pas cette opération. Avec ce contrôle, vous pouvez incorporer et lier d'autres contrôles (images, par exemple) de votre choix tandis qu'un contrôle Vue est limité par la structure de la vue Domino source.

Pour une compatibilité d'accessibilité, n'utilisez pas ce contrôle pour une présentation visuelle et n'attribuez pas la propriété role à presentation. Pour ce type de présentation, servez-vous du contrôle Tableau.

Exemple
La table de données affiche les éléments subject et fruit pour tous les documents de la base de documents actuelle.
<xp:dataTable id="dataTable1" rows="30"
	value="#{javascript:return database.getAllDocuments()}" var="rowdoc">
	<xp:column id="column1">
		<xp:this.facets>
			<xp:label value="subject" id="label1" xp:key="header" style="font-weight:bold"></xp:label>
		</xp:this.facets>
		<xp:text escape="true" id="computedField1"><xp:this.value>
			<![CDATA[#{javascript:return rowdoc.getItemValueString("subject")}]]>
		</xp:this.value>	</xp:text>
	</xp:column>
	<xp:column id="column2">
		<xp:this.facets>
			<xp:label value="fruit" id="label2" xp:key="header" style="font-weight:bold"></xp:label>
		</xp:this.facets>
		<xp:text escape="true" id="computedField2"><xp:this.value>
			<![CDATA[#{javascript:return rowdoc.getItemValueString("fruit")}]]>
		</xp:this.value></xp:text>
	</xp:column>
</xp:dataTable>

dateTimeHelper - Sélecteur de date et d'heure

Affiche un sélecteur permettant de choisir des valeurs de date et d'heure dans une zone d'édition.

Catégorie
Contrôles principaux
Syntaxe
<xp:dateTimeHelper attributes>content</xp:dateTimeHelper>
Tableau 17. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs dateTimeHelper1, dateTimeHelper2, etc.
Tableau 18. Toutes les propriétés
Catégorie Propriétés
fondamentaux binding, id, loaded, rendered, rendererType
dojo dojoAttributes, dojoType
format timeClickableIncrement, timeVisibleIncrement, timeVisibleRange
définition de style disableTheme, themeId
Utilisation
En mode Conception, la création d'un contrôle Sélecteur de date et d'heure l'intègre automatiquement dans un contrôle Zone d'édition avec un type d'affichage Date/Heure. Pour accéder aux propriétés du contrôle Sélecteur de date et d'heure, sélectionnez le mode source et mettez en évidence l'élément dateTimeHelper.

Lors de l'exécution, l'utilisateur peut cliquer sur le sélecteur puis choisir une date et une heure pour insertion dans la zone d'édition.

Pour une compatibilité d'accessibilité, ne spécifiez pas les deux pour la propriété type. Envisagez d'utiliser deux éléments, un élément type=date et un élément type=time.

Exemple
Deux zones d'édition contiennent des sélecteurs pour la sélection des valeurs de date et d'heure.
<xp:inputText id="inputText1">
	<xp:dateTimeHelper id="dateTimeHelper1"></xp:dateTimeHelper>
	<xp:this.converter>
		<xp:convertDateTime type="date"></xp:convertDateTime>
	</xp:this.converter>
</xp:inputText>
<xp:inputText id="inputText2">
	<xp:dateTimeHelper id="dateTimeHelper2"></xp:dateTimeHelper>
	<xp:this.converter>
		<xp:convertDateTime type="time"></xp:convertDateTime>
	</xp:this.converter>
</xp:inputText>

div - Div

Agit comme une division ou un bloc de contenu en HTML. Contient d'autres contrôles et du texte.

Catégorie
Contrôles conteneurs
Syntaxe
<xp:div attributes>content</xp:div>
Tableau 19. Toutes les propriétés
Catégorie Propriétés
accessibilité role, title
fondamentaux attrs, binding, dir, id, lang, loaded, rendered, rendererType
dojo dojoAttributes, dojoType
événements onclick, ondblclick, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
définition de style disableTheme, style, styleClass, themeId
Utilisation

A l'exécution, le contenu de la division apparaît sur la page avec les propriétés éventuellement affectées.

Exemple
Ces contrôles Div comportent du texte et des zones d'édition avec différentes définitions de style.
<xp:div style="font-weight:bold;padding-bottom:20.0px">
	Day phone =>
	<xp:inputText id="inputText2" value="#{document1.phoneday}"></xp:inputText>
</xp:div>
<xp:div style="font-weight:bold">
	Night phone => 
	<xp:inputText id="inputText3" value="#{document1.phonenight}"></xp:inputText>
</xp:div>

eventHandler - Gestionnaire d'événements (contrôle)

Répond à des actions utilisateur comme le fait de cliquer sur un contrôle.

Catégorie
Autres contrôles
Syntaxe
<xp:eventHandler attributes>content</xp:eventHandler>
Tableau 20. Propriétés essentielles
Propriété Description
save Enregistre les données associées à un masque. Cette propriété doit être à false pour les boutons de type Annuler.
submit true permet d'envoyer une requête et d'obtenir une réponse du serveur. Un gestionnaire client peut annuler l'envoi d'une requête en retournant false.
refreshMode Spécifie si la régénération de page est complète, partielle ou non exécutée.
immediate Cette propriété doit être à true pour les boutons de type Annuler.
Tableau 21. Toutes les propriétés
Catégorie Propriétés
fondamentaux binding, disableValidators, event, execId, execMode, handlers, id, loaded, navigate, refreshId, refreshMode, rendered, rendererType, save, submit, value
données parameters
événements action, actionListener, actionListeners, immediate, onComplete, onError, onStart, script
définition de style disableTheme, themeId
Exemple
L'exemple ci-dessous concerne un contrôle Bouton de type Soumettre.
<xp:button value="submit" id="button1">
	<xp:eventHandler event="onclick" submit="true"
		refreshMode="complete" immediate="false" save="true">
	</xp:eventHandler>
</xp:button>
L'exemple ci-dessous concerne un contrôle Bouton de type Annuler.
<xp:button value="cancel" id="button2">
	<xp:eventHandler event="onclick" submit="true"
		refreshMode="complete" immediate="true" save="false">
	</xp:eventHandler>
</xp:button>
L'exemple ci-dessous concerne un contrôle Bouton avec un événement onclick codé par l'utilisateur.
<xp:button value="set username" id="button3">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
		<xp:this.action>
			<![CDATA[#{javascript:getComponent("inputText2").setValue(session.getCommonUserName())}]]>
		</xp:this.action>
	</xp:eventHandler>
</xp:button>

fileDownload - Téléchargement de fichier

Télécharge un fichier sur le système de fichiers local

Catégorie
Contrôles principaux
Syntaxe
<xp:fileDownload attributes>content</xp:fileDownload>
Tableau 22. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs fileDownload1, fileDownload2, etc.
value Lie le contrôle de fichier à un élément de données ou à une autre valeur de type texte enrichi.
mimetype Force le type MIME du téléchargement plutôt que de le laisser être déterminé par le type de fichier.
useUploadName Par défaut, le nom de fichier d'origine est utilisé.
filename Spécifie le nom de la pièce jointe si vous n'utilisez pas le nom de fichier d'origine.
Tableau 23. Toutes les propriétés
Catégorie Propriétés
accessibilité accesskey, role, tabindex, title
Remarque : La propriété role est obsolète depuis la version 9.0.1. Par défaut, la valeur compatible appropriée est générée. Pour une conformité aux normes d'accessibilité, ne spécifiez pas de valeur pour cette propriété.
basics attrs, allowDelete, binding, createdTitle, createdValue, deleteImageTitle, deleteMessage, dir, disabled, displayCreated, displayLastModified, displaySize, displayType, fileNameHrefValue, fileNameTitle, fileNameValue, hideWhen, id, lang, lastModifiedTitle, lastModifiedValue, loaded, rendered, rendererType, rowAttrs, rules, sizeTitle, sizeValue, typeTitle, typeValue
données data, first, indexVar, rows, value, var
événements onclick, ondblclick, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
format bgcolor, border, cellpadding, cellspacing, frame, width
définition de style captionStyleClass, columnClasses, createdStyleClass, deleteStyleClass, disableTheme, footerClass, headerClass, modifiedStyleClass, nameStyleClass, rowClasses, sizeStyleClass, style, styleClass, themeId, typeStyleClass
Utilisation
A l'exécution, les informations relatives aux fichiers joints apparaissent sur la page. Elles peuvent inclure le type de fichier, sa taille, son nom, ses dates de modification et de création et l'autorisation éventuelle pour l'utilisateur de supprimer le fichier joint. L'utilisateur peut cliquer sur le nom pour accéder à un afficheur de fichiers qui lui permet de télécharger le fichier joint.
Exemple
Le contrôle Téléchargement de fichier ci-dessous autorise l'utilisateur à télécharger un fichier depuis l'élément Body d'un document.
<xp:fileDownload rows="30" id="fileDownload1"
	displayLastModified="false" value="#{document2.body}">
</xp:fileDownload>

fileUpload - Chargement de fichier

Télécharge un fichier depuis le système de fichiers local

Catégorie
Contrôles principaux
Syntaxe
<xp:fileUpload attributes>content</xp:fileUpload>
Tableau 24. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs fileUpload1, fileUpload2, etc.
value Lie le contrôle de fichier à un élément de données ou à une autre valeur de type texte enrichi.
mimetype Force le type MIME du téléchargement plutôt que de le laisser être déterminé par le type de fichier.
useUploadName Par défaut, le nom de fichier d'origine est utilisé.
filename Spécifie le nom de la pièce jointe si vous n'utilisez pas le nom de fichier d'origine.
Utilisation
A l'exécution, un afficheur de fichiers apparaît sur la page à partir duquel l'utilisateur peut spécifier ou sélectionner un fichier depuis le système de fichiers local.

Le fichier est joint à l'élément lié dans le magasin de données quand la page est enregistrée. Le type de cet élément doit autoriser les fichiers joints (texte enrichi, par exemple).

Exemple
Ce contrôle Chargement de fichier télécharge un fichier dans l'élément Body d'un document.
<xp:fileUpload id="fileUpload1" value="#{document1.body}"></xp:fileUpload>

image - Image

Affiche une image.

Catégorie
Contrôle principaux
Syntaxe
<xp:image attributes>content</xp:image>
Tableau 26. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs image1, image2, etc.
for Identifie le contrôle cible.
Tableau 27. Toutes les propriétés
Catégorie Propriétés
accessibilité alt, role, title
fondamentaux attrs, binding, dir, id, ismap, lang, loaded, longdesc, rendered, rendererType, url, usemap, value
événements onblur, onclick, ondblclick, onfocus, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
format height, width
définition de style disableTheme, style, styleClass, themeId
Utilisation
A l'exécution, l'image apparaît sur la page.
Exemple
Dans cet exemple, une image est placée sur la page.
<xp:image url="/sound.gif" id="image1" alt="Sound image"></xp:image>

include - Inclusion de page

Insère une référence à une autre page XPage.

Catégorie
Contrôle conteneur
Syntaxe
<xp:include attributes>content</xp:include>
Tableau 28. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs include1, include2, etc.
pageName Il s'agit de la page à inclure.
Tableau 29. Toutes les propriétés
Catégorie Propriétés
accessibilité role, title
fondamentaux attrs, binding, componentId, dir, id, loaded, pageName, rendered, rendererType
données acl, data, dataContexts, readonly
dojo dojoAttributes, dojoType
événements onClientLoad
définition de style disableTheme, outerStyleClass, style, styleClass, themeId
Utilisation
A l'exécution, la page XPage incluse apparaît.

En mode Conception, vous pouvez voir la page incluse mais vous n'avez pas la possibilité de la modifier.

Exemple
Un contrôle Inclusion de page est présenté dans l'exemple ci-dessus.
<xp:include pageName="/main.xsp" id="include1"></xp:include>

inputHidden - Entrée masquée

Masque les données aux yeux de l'utilisateur.

Catégorie
Contrôles principaux
Syntaxe
<xp:inputHidden attributes>content</xp:inputHidden>
Tableau 30. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs inputHidden1, inputHidden2, etc.
value Lie le contrôle à un élément de données ou à une autre valeur.
Utilisation
A l'exécution, rien n'apparaît sur la page. Le contrôle peut être manipulé par programme.

Pour accéder au contrôle, ouvrez Autres dans la palette Contrôle (ou cliquez sur Créer > Autres).

Exemples
Le contrôle Entrée masquée est lié à un champ d'un masque Domino.
<xp:inputHidden id="inputHidden1" value="#{document1.description}"></xp:inputHidden>

inputRichText - Texte enrichi

Affiche une zone de saisie pour entrer les données formatées comme texte enrichi.

Catégorie
Contrôles principaux
Syntaxe
<xp:inputRichText attributes>content</xp:inputRichText>
Tableau 32. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs inputRichText1, inputRichText2, etc.
value Lie le contrôle à un élément de données ou à une autre valeur.
Utilisation
A l'exécution, une zone d'édition avec une barre d'outils apparaît sur la page. L'utilisateur peut entrer du texte avec des attributs comme le gras ou l'italique et insérer des tableaux, des pièces jointes, des objets incorporés et d'autres artefacts.

CKEditor (http://ckeditor.com) est l'éditeur par défaut de texte enrichi pour XPages. Il permet l'incorporation d'images, de tableaux, de liens et d'émoticônes. Il comprend un vérificateur orthographique.

Vous pouvez ajuster la barre d'outils qui est rendue. Avec le contrôle Texte enrichi mis en évidence, cliquez sur l'onglet Dojo et ajoutez un attribut (propriété dojoAttributes) intitulé toolbarType avec une valeur de lite, medium ou full.

Vous pouvez revenir à l'éditeur de texte enrichi Dojo. Avec le contrôle Texte enrichi mis en évidence, cliquez sur l'onglet Dojo et spécifiez le type Dojo (propriété dojoType) comme ibm.xsp.widget.layout.RichText.

Exemples
Le contrôle Texte enrichi suivant est lié à un champ d'un masque Domino.
<xp:inputRichText id="inputRichText1" value="#{document1.body}"></xp:inputRichText>
Le contrôle Texte enrichi ci-après se sert de l'éditeur Dojo.
<xp:inputRichText id="inputRichText1"
	value="#{document1.body}" dojoType="ibm.xsp.widget.layout.RichText">
</xp:inputRichText>
Le contrôle Texte enrichi ci-dessous rend une barre d'outils complète.
<xp:inputRichText id="inputRichText1" value="#{document1.body}">
	<xp:this.dojoAttributes>
		<xp:dojoAttribute name="toolbarType" value="full"></xp:dojoAttribute>
	</xp:this.dojoAttributes>
</xp:inputRichText>

inputText - Zone d'édition

Affiche une zone de saisie permettant d'entrer une ligne de données.

Catégorie
Contrôles principaux
Syntaxe
<xp:inputText attributes>content</xp:inputText>
Tableau 34. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs inputText1, inputText2, etc.
value Lie la zone d'édition à un élément de données ou à une autre valeur.
Utilisation
A l'exécution, une zone d'édition apparaît sur la page dans laquelle l'utilisateur peut entrer une ligne de texte.
Exemples
Le contrôle Zone d'édition est liée à un champ d'un masque Domino.
<xp:inputText id="inputText1" value="#{document1.subject}"></xp:inputText>
Ce contrôle Zone d'édition est lié à une variable de portée.
<xp:inputText id="inputText2" value="#{requestScope.subject}"></xp:inputText>

inputTextarea - Zone d'édition multiligne

Affiche une zone de saisie permettant d'entrer des lignes de données multiples.

Catégorie
Contrôles principaux
Syntaxe
<xp:inputTextarea attributes>content</xp:inputTextarea>
Tableau 36. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs inputTextarea1, inputTextarea2, etc.
value Lie le contrôle à un élément de données ou à une autre valeur.
cols Spécifie le nombre de colonnes si l'attribut width de style ne vient pas remplacer cette valeur.
rows Spécifie le nombre de lignes si l'attribut height de style ne vient pas remplacer cette valeur.
Utilisation
A l'exécution, une zone d'édition apparaît sur la page dans laquelle l'utilisateur peut entrer plusieurs lignes de texte. Si l'utilisateur dépasse la taille de la boîte, des dispositifs de défilement sont proposés.
Exemple
Le contrôle Zone d'édition multiligne est liée à un champ d'un masque Domino form.
<xp:inputTextarea id="inputTextarea1" value="#{document1.description}"
	cols="64" rows="8">
</xp:inputTextarea>

label - Libellé (contrôle)

Affiche un texte.

Catégorie
Contrôles principaux
Syntaxe
<xp:label attributes>content</xp:label>
Tableau 38. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs label1, label2, etc.
value Spécifie la valeur du libellé.
for Spécifie le contrôle qui est mis en évidence quand l'utilisateur clique ou sinon, met en évidence ce contrôle.
Tableau 39. Toutes les propriétés
Catégorie Propriétés
accessibilité accesskey, role, readonly, title
fondamentaux attrs, binding, dir, for, htmlFilter, id, lang, loaded, rendered, rendererType
données converter, value
événements onblur, onclick, ondblclick, onfocus, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
définition de style disableTheme, style, styleClass, themeId
Utilisation
A l'exécution, la valeur du libellé apparaît sur la page et la mise en évidence est redirigée comme spécifiée.

Un contrôle Libellé est en lecture seule si l'élément XPage ou Panneau qui le contient est en lecture seule ou si la propriété readonly du contrôle Libellé est à true.

Exemple
Ce contrôle Libellé affiche le nom d'utilisateur commun en bleu :
<xp:label
	value="#{javascript:session.getCommonUserName()}"
	id="label1" style="color:rgb(0,0,255)" for="inputText1">
</xp:label>
Compatibilité d'accessibilité
Pour appliquer des libellés conformes aux normes d'accessibilité, utilisez le contrôle Libellé avec la propriété for, comme montré ci-dessous :
<xp:label value="foo" for="inputText1" />
&#160;
<xp:inputText id="inputText1" defaultValue="foo" />
Vous pouvez aussi choisir d'appliquer l'attribut aria-labelledby, comme dans l'exemple ci-après. Toutefois, cet attribut n'est pas pris en charge par les navigateurs qui n'accepte pas WAI-ARIA.
<xp:label value="foo" id="label1">
	&#160;
	<xp:inputText id="inputText1" defaultValue="foo" >
		<xp:this.attrs>
				<xp:attr name="aria-labelledby" value="#{id:label1}"></xp:attr>
		</xp:this.attrs>
	</xp:inputText>
</xp:label>
Il est également possible d'appliquer l'attribut aria-label comme montré ci-dessous. Sachez toutefois que cet attribut génère un libellé masqué.
<xp:label value="foo" id="label1">
	&#160;
	<xp:inputText id="inputText1" defaultValue="foo" >
		<xp:this.attrs>
				<xp:attr name="aria-label" value="bar"></xp:attr>
		</xp:this.attrs>
	</xp:inputText>
</xp:label>

Dans les deux dernières solutions, utilisez l'identificateur ôté client complet pour la valeur d'attribut, comme illustré.

listBox - Zone de liste

Affiche une liste d'éléments, dont un élément ou plusieurs peuvent être sélectionnés.

Catégorie
Contrôle principaux
Syntaxe
<xp:listBox attributes>content</xp:listBox>
Tableau 42. Contrôles imbriqués
Commande Description
selectItem Fournit un élément pour une sélection utilisateur.
selectItems Fournit un ou plusieurs éléments pour une sélection utilisateur.
Tableau 43. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs listBox1, listBox2, etc.
value Lie le contrôle à un élément de données ou à une autre valeur.
Utilisation
A l'exécution, une zone avec une liste d'éléments apparaît sur la page dans laquelle l'utilisateur peut sélectionner un ou plusieurs éléments. Pour plusieurs éléments, multiple doit être à true et

il est nécessaire que l'élément de données lié à la zone de liste autorise les valeurs multiples.

Exemples
Ce contrôle Zone de liste présente deux éléments pour sélection.
<xp:listBox id="listBox1" value="#{document1.fruit}" multiple="true">
	<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
	<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
</xp:listBox>
Ce contrôle Zone de liste présente deux éléments pour sélection en utilisant une formule.
<xp:listBox id="listBox1" value="#{document1.fruit}"
	multiple="true">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:listBox>
Cette zone de liste obtient ses sélections d'éléments à partir des valeurs d'une colonne de vue.
<xp:listBox id="listBox1" value="#{document1.fruit}"
	multiple="true">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:listBox>

message - Afficher erreur

Affiche des messages d'erreur pour un contrôle.

Catégorie
Contrôles principaux
Syntaxe
<xp:message attributes>content</xp:message>
Tableau 45. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs message1, message2, etc.
for Identifie le contrôle cible.
Tableau 46. Toutes les propriétés
Catégorie Propriétés
accessibilité role, title
fondamentaux attrs, binding, dir, for, id, lang, loaded, rendered, rendererType
format showDetail, showSummary, tooltip
définition de style disableTheme, errorClass, errorStyle, fatalClass, fatalStyle, infoClass, infoStyle, style, styleClass, themeId, warnClass, warnStyle
Toutes les propriétés
Utilisation
Par défaut, la plupart des contrôles de validation s'effectuent sur le client avant d'envoyer une requête au serveur. Si la validation échoue, le client affiche un message d'erreur dans une boîte de dialogue et annule la requête serveur.

Si vous voulez que les contrôles de validation se produisent sur le serveur et que le message d'erreur s'affiche dans ce contrôle, vous devez définir disableClientSideValidation à true pour le contrôle cible.

Pour respecter les exigences d'accessibilité quand vous utilisez ce contrôle, il est conseillé, pour un contrôle d'entrée donné, d'associer l'élément xp:message control respectif en vous servant de l'attribut aria-describedby comme illustré dans l'exemple. Cette façon de procéder permet la prise en charge des technologies d'assistance en fournissant une description aux utilisateurs quand le contrôle d'entrée reçoit la mise en évidence décrivant le message d'erreur de validation associé.

<xp:label id="xpLabel1" value="Enter any value" for="xpInputText1" />
<xp:inputText id="xpInputText1" value="#{sessionScope.foo}" required="true"
        disableClientSideValidation="true">

	<xp:this.attrs>
		<xp:attr attr name="aria-describedby" value="#{id:msgPanel}" />
	<xp:this.attrs>

</xp:inputText>

<xp:panel id="msgPanel">
	<xp:message id="message1" for="xpInputText1"/>
</xp:panel>
Remarque : Il est possible d'associer plusieurs descriptions à un contrôle d'entrée en spécifiant une liste séparée par des espaces des ID client de libellés dans l'attribut aria-describedby.
Exemple
L'exemple ci-dessous présente une zone d'entrée liée à des données numériques, qui ne valide pas côté client. S'affiche ensuite un message d'erreur pour la zone d'entrée.
<xp:inputText id="inputText3" value="#{document1.number}"
	disableClientSideValidation="true">
	<xp:this.converter>
		<xp:convertNumber type="number"></xp:convertNumber>
	</xp:this.converter>
</xp:inputText>
<xp:message id="message1" for="inputText3"></xp:message>
Si l'utilisateur entre une valeur non numérique dans la zone d'entrée, le message suivant apparaît dans la zone réservée à l'affichage de l'erreur :
Le contenu de cette zone n'est pas un nombre valide

messages - Erreurs d'affichage

Affiche des messages d'erreur pour tous les contrôles d'une page.

Catégorie
Contrôles principaux
Syntaxe
<xp:messages attributes>content</xp:messages>
Tableau 47. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs messages1, messages2, etc.
layout La présentation peut être une liste (par défaut) ou un tableau.
Tableau 48. Toutes les propriétés
Catégorie Propriétés
accessibilité role, title
fondamentaux attrs, binding, dir, globalOnly, id, lang, loaded, rendered, rendererType
format layout, showDetail, showSummary, tooltip
définition de style disableTheme, errorClass, errorStyle, fatalClass, fatalStyle, infoClass, infoStyle, style, styleClass, themeId, warnClass, warnStyle
Utilisation
Par défaut, la plupart des contrôles de validation s'effectuent sur le client avant d'envoyer une requête au serveur. Si la validation échoue, le client affiche un message d'erreur dans une boîte de dialogue et annule la requête serveur.

Si vous voulez que les contrôles de validation se produisent sur le serveur et que le message d'erreur s'affiche dans ce contrôle, vous devez définir disableClientSideValidation à true pour le contrôle cible.

Exemple
L'exemple ci-dessous présente une zone d'entrée liée à des données numériques, qui ne valide pas côté client. S'affiche ensuite un message d'erreur pour la zone d'entrée.
<xp:inputText id="inputText3" value="#{document1.number}"
	disableClientSideValidation="true">
	<xp:this.converter>
		<xp:convertNumber type="number"></xp:convertNumber>
	</xp:this.converter>
</xp:inputText>
<xp:message id="message1" for="inputText3"></xp:message>
Si l'utilisateur entre une valeur non numérique dans la zone d'entrée, le message suivant apparaît dans la zone réservée à l'affichage de l'erreur :
Le contenu de cette zone n'est pas un nombre valide

pager - Pager

Pagine des données pour un contrôle conteneur dont les données ne peuvent s'afficher dans une fenêtre.

Catégorie
Contrôles principaux
Syntaxe
<xp:pager attributes>
	<xp:pagerControl attributes></xp:pagerControl> <!--if custom for page style-->
content</xp:pager>
Tableau 49. Propriétés essentielles
Propriété Description
id (pager) Prend par défaut les valeurs pager1, pager2, etc.

(pagerControl) Prend par défaut les valeurs pagerControl1, pagerControl2, etc.

layout (pager) Pour présenter les contrôles, utilisez cette propriété ou les contrôles intégrés pagerControl.
for (pager) A utiliser uniquement quand le pager n'est pas à l'intérieur du contrôle cible.
type (pagerControl) Le type est généré quand vous utilisez Personnalisé comme Style de pager dans le pager.
Tableau 50. Toutes les propriétés (pager)
Catégorie Propriétés
accessibilité ariaLabel, role, title
Remarque : La propriété role est obsolète depuis la version 9.0.1. Par défaut, la valeur compatible appropriée est générée. Pour une conformité aux normes d'accessibilité, ne spécifiez pas de valeur pour cette propriété.
fondammentaux attrs, alwaysCalculateLast, binding, dir, for, id, lang, loaded, pageCount, partialExecute, partialRefresh, rendered, rendererType
format layout, panelPosition
définition de style disableTheme, outerStyleClass, style, styleClass, themeId
Tableau 51. Toutes les propriétés (pagerControl)
Catégorie Propriétés
accessibilité accesskey, alt, role, tabindex, title
Remarque : La propriété role est obsolète depuis la version 9.0.1. Par défaut, la valeur compatible appropriée est générée. Pour une conformité aux normes d'accessibilité, ne spécifiez pas de valeur pour cette propriété.
basics binding, dir, id, lang, loaded, rendered, rendererType, type, value
événements action, actionListener, actionListeners, immediate, onblur, onclick, ondblclick, onfocus, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
format image
définition de style currentStyleClass, disableTheme, firstStyleClass, lastStyleClass, style, styleClass, themeId
Utilisation
Lors de l'exécution, l'utilisateur peut cliquer sur le pager pour effectuer une itération sur les données d'un contrôle autorisant l'itération de données, comme un panneau de vue.

Il est possible de placer un pager dans une région de facette à l'intérieur du contrôle avec les données, ou d'associer le pager au contrôle de données via la propriété for.

Les contrôles Pager sont générés de deux façons :
  • En spécifiant la propriété de présentation. En mode Conception, cliquez sur l'onglet supérieur sous Propriétés et sélectionnez l'une des options Exemple pour Style de pager.
  • En incorporant des contrôles pagerControl. En mode Conception, cliquez sur l'onglet supérieur sous Propriétés et sélectionnez Personnalisé pour Style de pager.
Exemple
Ce contrôle Vue contient un contrôle Pager :
<xp:viewPanel rows="30" id="viewPanel1">
	<xp:this.facets>
		<xp:pager partialRefresh="true"
			layout="Previous Separator Group Separator Next"
			xp:key="headerPager" id="pager1">
		</xp:pager>
	</xp:this.facets>
	<xp:this.data>
		<xp:dominoView var="view2" viewName="main"></xp:dominoView>
	</xp:this.data>
	<xp:viewColumn columnName="subject" id="viewColumn1">
		<xp:viewColumnHeader value="subject"
			id="viewColumnHeader1">
		</xp:viewColumnHeader>
	</xp:viewColumn>
	<xp:viewColumn columnName="fruit" id="viewColumn2">
		<xp:viewColumnHeader value="fruit" id="viewColumnHeader2"></xp:viewColumnHeader>
	</xp:viewColumn>
</xp:viewPanel>

pagerControl - Contrôle enfant du pager

Spécifie un contrôle Pager dans le pager courant.

Catégorie
Contrôles conteneurs
Utilisation
Consultez pager.

panel - Panneau

Sert de conteneur pour les autres contrôles et texte avec des propriétés et des sources de données communes.

Catégorie
Contrôles conteneurs
Syntaxe
<xp:panel attributes>content</xp:panel>
Tableau 52. Toutes les propriétés
Catégorie Propriétés
accessibilité role, title
fondamentaux attrs, binding, dir, id, loaded, rendered, rendererType, tagName
données acl, data, dataContexts, readonly
dojo dojoAttributes, dojoType
événements onClientLoad
définition de style disableTheme, outerStyleClass, style, styleClass, themeId
Utilisation
A l'exécution, le contenu du panneau apparaît sur la page avec toutes les propriétés et sources de données affectées.
Exemple
Le contrôle Panneau de l'exemple ci-dessous définit une source de données et contient du texte et des zones d'édition.
<xp:panel style="height:60.0px;width:408.0px">
	<xp:this.data>
		<xp:dominoDocument var="document2" formName="form1"></xp:dominoDocument>
	</xp:this.data>
	<xp:inputText id="inputText2" value="#{document2.phoneday}"></xp:inputText>
	day phone	<xp:br></xp:br>
	<xp:inputText id="inputText3" value="#{document2.phonenight}"></xp:inputText>
	night phone
</xp:panel>

paragraph - Paragraphe

Combine du texte au format paragraphe.

Catégorie
Autres contrôles
Syntaxe
<xp:paragraph attributes>content</xp:paragraph>
Tableau 53. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs paragraph1, paragraph2, etc.
Tableau 54. Toutes les propriétés
Catégorie Propriétés
accessibilité role, title
fondamentaux attrs, binding, dir, id, lang, loaded, rendered, rendererType
dojo dojoAttributes, dojoType
événements onclick, ondblclick, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
définition de style disableTheme, style, styleClass, themeId
Utilisation

A l'exécution, le contenu du paragraphe apparaît sur la page avec toutes les propriétés affectées.

Exemple
Le contrôle Paragraphe de l'exemple ci-dessous crée un paragraphe de texte en gras.
<xp:paragraph id="paragraph1" style="font-weight:bold>Now is the time.</xp:paragraph>

platformEvent - Contrôle d'événement de plateforme

Gère un événement de plateforme.

Catégorie
Autres contrôles
Syntaxe
<xp:platformEvent attributes>content</xp:platformEvent>
Tableau 55. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs platformEvent1, platformEvent2, etc.
Tableau 56. Toutes les propriétés
Catégorie Propriétés
fondamentaux binding, eventName, id, lang, loaded, rendered, rendererType
  onevent
définition de style disableTheme, themeId
Utilisation

Les événements de plateforme servent à publier des événements d'application composite dans le client Notes.

radio - Bouton d'option

Affiche un bouton qui peut être sélectionné ou désélectionné. En cas de groupement, seul un bouton du groupe peut être sélectionné à la fois.

Catégorie
Contrôles principaux
Syntaxe
<xp:radio attributes>content</xp:radio>
Tableau 57. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs radio1, radio2, etc.
text Fournit un libellé.
value Lie le contrôle à un élément de données ou à une autre valeur.
selectedValue Spécifie la valeur de données quand le bouton est sélectionné.
defaultSelected Spécifiez true pour sélectionner le bouton par défaut.
groupName Affecte le bouton d'option à un groupe.
skipContainers Affecte dans le même groupe les boutons d'option de différents conteneurs (colonnes d'une table de données, par exemple).
Utilisation
A l'exécution, un bouton apparaît sur la page que l'utilisateur peut sélectionner ou désélectionner. Le bouton présente une face pleine quand il est sélectionné.

Quand un bouton est sélectionné, tous les autres boutons affectés au même groupe sont désélectionnés.

L'affectation de boutons à un groupe équivaut à créer un contrôle Groupe de boutons d'option. L'utilisation de boutons individuels affectés en groupe permet une plus grande souplesse au niveau de leur positionnement.

Pour une compatibilité d'accessibilité, n'utilisez pas ce contrôle pour un groupe, uniquement pour un bouton unique. Utilisez le contrôle Groupe de boutons d'option pour un groupe.

Exemple
Les contrôles Bouton d'option de l'exemple ci-dessous affectent les valeurs apples ou oranges à document1.fruit selon le bouton sélectionné. Les boutons agissent ensemble. Si Apples est sélectionné, oranges est désélectionné. Remarquez que cet exemple ne respecte pas la compatibilité d'accessibilité.
<xp:radio text="Apples" id="radio1" value="#{document1.fruit}"
	groupName="fruit" selectedValue="apples">
</xp:radio>
<xp:radio text="Oranges" id="radio2" value="#{document1.fruit}"
	groupName="fruit" selectedValue="oranges">
</xp:radio>

radioGroup - Groupe de boutons d'option

Affiche plusieurs boutons qui peuvent être sélectionnés ou désélectionnés. Seul un bouton du groupe peut être sélectionné à la fois.

Catégorie
Contrôles principaux
Syntaxe
<xp:radioGroup attributes>content</xp:radioGroup>
Tableau 59. Contrôles imbriqués
Commande Description
selectItem Fournit un élément pour une sélection utilisateur.
selectItems Fournit un ou plusieurs éléments pour une sélection utilisateur.
Tableau 60. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs radioGroup1, radioGroup2, etc.
text Fournit un libellé.
value Lie le contrôle à un élément de données ou à une autre valeur.
legend Fournit une description de groupe lisible à l'écran.
Utilisation
A l'exécution, un ou plusieurs boutons d'option apparaissent sur la page que l'utilisateur peut sélectionner individuellement. Quand un bouton est sélectionné, tout autre bouton sélectionné est désélectionné.

Pour une compatibilité d'accessibilité, vous devez spécifier la propriété legend.

Exemples
Ce contrôle Groupe de boutons d'option présente deux éléments pour sélection.
<xp:radioGroup id="radioGroup1" legend="Select fruit" value="#{document1.fruit}" layout="pageDirection">
	<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
	<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
</xp:radioGroup>
Ce contrôle Groupe de boutons d'option présente deux éléments pour sélection en utilisant une formule.
<xp:radioGroup id="radioGroup1" legend="Select fruit" value="#{document1.fruit}"
	layout="pageDirection">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:radioGroup>
Ce groupe de boutons d'option obtient ses sélections d'éléments à partir des valeurs d'une colonne de vue.
<xp:radioGroup id="radioGroup1" legend="Select fruit" value="#{document1.fruit}"
	layout="pageDirection">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:radioGroup>

repeat - Répéter

Répète les contrôles intégrés en procédant à une itération à travers une source de données.

Catégorie
Contrôles conteneurs
Syntaxe
<xp:repeat attributes>
	control ...
</xp:repeat>
Tableau 62. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs repeat1, repeat2, etc.
value Généralement, la liaison de données s'effectue vers une collection d'éléments, un objet NotesDocumentCollection, par exemple.
var Généralement, cette variable se réfère à un membre de la collection de données liée, un objet NotesDocument, par exemple, si la liaison s'effectue vers un objet NotesDocumentCollection.
Tableau 63. Toutes les propriétés
Catégorie Propriétés
accessibilité role
fondamentaux attrs, binding, dir, id, lang, loaded, removeRepeat, rendered, rendererType, repeatControls, rowAttrs
données first, indexVar, rows, value, var
définition de style disableTheme, style, styleClass, themeId
Utilisation
A l'exécution, le contenu du contrôle Répéter apparaît sur la page. Utilisez var dans le contenu du contrôle Répéter pour chaque membre de la source de données.
Exemple
Ce contrôle Répéter affiche les éléments subject pour tous les documents de la base de documents actuelle.
<xp:repeat id="repeat1" rows="30"
	value="#{javascript:return database.getAllDocuments()}" var="rowdoc"
	repeatControls="true">
	<xp:text escape="true" id="computedField1">
		<xp:this.value>
			<![CDATA[#{javascript:return rowdoc.getItemValueString("subject") + " "}]]>
		</xp:this.value>
	</xp:text>
</xp:repeat>

scriptBlock - Script en sortie

Génère un script client.

Catégorie
Contrôle principaux
Syntaxe
<xp:scriptBlock attributes>content</xp:scriptBlock>
Tableau 64. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs scriptBlock1, scriptBlock2, etc.
value Spécifie le script client
Tableau 65. Toutes les propriétés
Catégorie Propriétés
fondamentaux attrs, binding, charset, defer, id, loaded, rendered, rendererType, src, type
données converter, value
dojo dojoArgs, dojoEvent
définition de style disableTheme, themeId
Utilisation
Ce contrôle ne s'applique qu'à un contrôle personnalisé.

A l'exécution, le script s'exécute lorsque la page XPage contenant le contrôle personnalisé est chargé dans le client.

Exemples
Ce script en sortie se trouve dans un contrôle personnalisé. Il affiche une alerte quand il est intégré à une page XPage et que cette dernière est ouverte.
<xp:scriptBlock id="scriptBlock2" type="text/javascript">
	<xp:this.value><![CDATA[alert("hello custom")]]></xp:this.value>
</xp:scriptBlock>

section - Section

Sert de conteneur condensable pour les autres contrôles et texte

Catégorie
Contrôles conteneurs
Syntaxe
<xp:section attributes>content</xp:section>
Tableau 66. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs section1, section2, etc.
header L'en-tête apparaît en haut de la section et est visible quand la section est condensée.
type Les types de formatage disponibles sont :
  • default : pas de bordure
  • wide: barre grise dans la partie inférieure
  • box: barres grises des quatre côtés
  • tab: arrière-plan gris pour la flèche et le contenu de section sous la flèche
initClosed Par défaut, la section est initialement ouverte.
Tableau 67. Toutes les propriétés
Catégorie Propriétés
accessibilité accesskey, role, tabindex, title
fondamentaux attrs, binding, collapsedImage, dir, disabled, expandedImage, header, id, initClosed, lang, loaded, rendered, rendererType
événements onblur, onclick, ondblclick, onfocus, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
format type
définition de style disableTheme, headerStyle, style, styleClass, themeId
Utilisation
A l'exécution, la section apparaît sur la page :
  • Une section fermée ne montre que son en-tête.
  • Une section ouverte affiche l'en-tête et le contenu.
L'utilisateur peut ouvrir et fermer la section.
Exemple
Cette section contient deux zones d'édition.
<xp:section id="section1" header="Phone numbers" type="tab"
	initClosed="true">
	<xp:inputText id="inputText2" value="#{document1.phoneday}"></xp:inputText>day
	<xp:br></xp:br>
	<xp:inputText id="inputText3" value="#{document1.phonenight}"></xp:inputText>night
</xp:section>

selectItem - Elément de sélection

Fournit un élément pour une sélection utilisateur, dans une case à cocher, par exemple.

Catégorie
Aucune
Syntaxe
<xp:selectItem attributes>content</xp:selectItem>
Tableau 68. Propriétés essentielles
Propriété Description
itemLabel Fournit un texte à afficher pour l'utilisateur. Requis.
itemValue Fournit une valeur pour le contrôle parent si l'utilisateur sélectionne cet élément. Requis.
Tableau 69. Toutes les propriétés
Catégorie Propriétés
fondamentaux attrs, binding, id, itemDescription, itemDisabled, itemLabel, rendered, rendererType
données itemValue, value
format disableTheme, themeId
Utilisation
Intégrez ce contrôle dans un autre contrôle pour fournir une sélection d'élément pour le contrôle parent.

En mode Conception, placez la mise en évidence sur le contrôle qui est destiné à contenir la sélection d'élément et cliquez sur l'onglet Valeurs sous Propriétés. Utilisez Ajouter un élément et Importer une liste pour créer les contrôles selectItem.

Pour voir les propriétés de sélection d'élément sous Toutes les propriétés, vous devez passer en mode Source et placer la mise en évidence sur le contrôle selectItem intégré (par opposition au contrôle parent).

Exemple
Ce contrôle Groupe de cases à cocher contient deux éléments pour sélection.
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
	<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
</xp:checkBoxGroup>

selectItems - Eléments de sélection

Fournit un ou plusieurs éléments pour une sélection utilisateur, dans une case à cocher, par exemple.

Catégorie
Aucune
Syntaxe
<xp:selectItems attributes>content</xp:selectItems>
Tableau 70. Propriétés essentielles
Propriété Description
value Fournit des libellés, des valeurs, des descriptions et désactive les indicateurs pour un ou plusieurs éléments de description. Une valeur ici est différente d'une liaison de données,
Tableau 71. Toutes les propriétés
Catégorie Propriétés
fondamentaux attrs, binding, id, loaded, rendered, rendererType
données value
format disableTheme, themeId
Utilisation
Intégrez ce contrôle dans un autre contrôle pour fournir des sélections d'éléments pour le contrôle parent.

En mode Conception, placez la mise en évidence sur le contrôle qui est destiné à contenir la sélection d'élément et cliquez sur l'onglet Valeurs sous Propriétés. Utilisez Ajouter un élément de formule pour créer un contrôle selectItems.

Pour voir les propriétés de sélection d'élément sous Toutes les propriétés, vous devez passer en mode Source et placer la mise en évidence sur le contrôle selectItems intégré (par opposition au contrôle parent).

La formule de valeur doit retourner une matrice. Chaque élément de cette matrice doit définir un élément de sélection formaté de la façon suivante :
label|value|description|disabled
où seul label est requis. Les barres verticales font partie de la syntaxe.

Si l'élément value n'est pas spécifié, l'élément label est utilisé par défaut. Spécifiez disabled à true pour désactiver (mettre en grisé) l'élément de sélection.

Pour la valeur renvoyée, vous pouvez exploser (@Explode) le résultat de @DbColumn ou @DbLookup.

Exemples
Ce contrôle Groupe de cases à cocher contient deux éléments pour sélection.
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples", "Oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>
Ce contrôle Groupe de cases à cocher utilise des noms différents pour les libellés et les valeurs.
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>
Ce contrôle Groupe de cases à cocher désactive la première sélection.
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples||true", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>
Ce groupe de boutons d'option obtient ses sélections d'éléments à partir des valeurs d'une colonne de vue.
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>

span - Etendre le contenu

Combine du texte, généralement pour l'application des propriétés.

Catégorie
Contrôles principaux
Syntaxe
<xp:span attributes>content</xp:span>
Tableau 72. Toutes les propriétés
Catégorie Propriétés
accessibilité role, title
fondamentaux attrs, binding, dir, id, lang, loaded, rendered, rendererType
dojo dojoAttributes, dojoType
événements onclick, ondblclick, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
définition de style disableTheme, style, styleClass, themeId
Utilisation

A l'exécution, le contenu du contrôle span apparaît sur la page avec les propriétés éventuellement affectées.

Généralement, vous n'appliquez pas ce contrôle directement. Si vous contrastez du texte sur une page et appliquez une propriété comme du gras, une balise est automatiquement créée.

Pour travailler directement avec un espace, le mode source est plus approprié.

Exemple
Dans l'exemple ci-dessous, un contrôle span est utilisé pour mettre le texte en gras :
<xp:span id="span1" style="font-weight:bold">
	Now is the time.
</xp:span>

tabbedPanel - Panneau à onglets

Sert de collection de conteneurs pour les autres contrôles et texte.

Catégorie
Contrôles conteneurs
Syntaxe
<xp:tabbedPanel attributes>
	<xp:tabPanel attributes>content</xp:tabPanel></xp:tabbedPanel>
	...
</xp:tabbedPanel>
Tableau 73. Propriétés essentielles
Propriété Description
id (tabbedPanel) Prend par défaut les valeurs tabbedPanel1, tabbedPanel2, etc.

(tabPanel) Prend par défaut les valeurs tabPanel1, tabPanel2, etc.

selectedTab (tabbedPanel) Ouvre initialement le panneau à onglets sur cet onglet.
text (tabPanel) Fournit un libellé pour l'onglet.
Tableau 74. Toutes les propriétés (tabbedPanel)
Catégorie Propriétés
accessibilité role, title
Remarque : La propriété role est obsolète depuis la version 9.0.1. Par défaut, la valeur compatible appropriée est générée. Pour une conformité aux normes d'accessibilité, ne spécifiez pas de valeur pour cette propriété.
basics attrs, binding, dir, id, lang, loaded, rendered, rendererType, selectedTab
définition de style containerStyleClass, disableTheme, outerStyleClass, style, styleClass, themeId
Tableau 75. Toutes les propriétés (tabPanel)
Catégorie Propriétés
accessibilité imageAlt, role, title
Remarque : La propriété role est obsolète depuis la version 9.0.1. Par défaut, la valeur compatible appropriée est générée. Pour une conformité aux normes d'accessibilité, ne spécifiez pas de valeur pour cette propriété.
basics binding, dir, href, id, image, label, lang, loaded, rendered, rendererType
événements onClick
définition de style contentStyleClass, disableTheme, endTabStyleClass, middleTabStyleClass, selectedTabStyleClass, startTabStyleClass, style, styleClass, themeId, unselectedTabStyleClass
Utilisation
A l'exécution, le contenu du panneau à onglets sélectionné apparaît sur la page. Les autres onglets sont visibles mais pas leur contenu. L'utilisateur change de panneau en sélectionnant les différents onglets.
En mode Conception, la mise en évidence d'un panneau à onglets sélectionne l'élément tabbedPanel. Pour travailler avec les éléments tabPanel, cliquez dessus avec le bouton droit de la souris ou servez-vous du menu en choisissant :
  • Sélectionner le contenu d'onglet actif pour placer la mise en évidence sur l'élément tabPanel de l'onglet actuellement sélectionné.
  • Supprimer l'onglet actif pour supprimer l'élément tabPanel pour l'onglet actuellement sélectionné.
  • Insérer un tableau pour insérer un nouvel élément d'onglet tabPanel.
  • Adjoindre un onglet pour ajouter un nouvel élément tabPanel.
Exemple
Ce contrôle Panneau à onglets se compose deux panneaux.
<xp:tabbedPanel id="tabbedPanel1" selectedTab="tabPanel1">
	<xp:tabPanel id="tabPanel1" label="Day">
		<xp:inputText id="inputText2"
			value="#{document1.phoneday}">
		</xp:inputText>
	</xp:tabPanel>
	<xp:tabPanel label="Night" id="tabPanel2">
		<xp:inputText id="inputText3"
			value="#{document1.phonenight}">
		</xp:inputText>
	</xp:tabPanel>
</xp:tabbedPanel>

table - Tableau

Contient des cellules disposées en lignes et en colonnes. Chaque cellule peut comporter d'autres contrôles (dont des tableaux) et du texte.

Catégorie
Contrôles conteneurs
Syntaxe
<xp:table attributes>
	<xp:tr attributes>
			<xp:td attributes>cell content</xp:td>
			...
	</xp:tr>
	...
</xp:table>
Tableau 76. Toutes les propriétés (table)
Catégorie Propriétés
accessibilité caption, role, summary, title
fondamentaux attrs, accesskey, binding, dir, id, lang, loaded, rendered, rendererType, tabindex
dojo dojoAttributes, dojoType
événements onblur, onclick, ondblclick, onfocus, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
format align, border, cellpadding, cellspacing, width
définition de style captionStyleClass, disableTheme, style, styleClass, themeId
Tableau 77. Toutes les propriétés (tr)
Catégorie Propriétés
accessibilité role, title
fondamentaux binding, dir, id, lang, loaded, rendered, rendererType
dojo dojoAttributes, dojoType
événements onclick, ondblclick, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
format align, valign
définition de style disableTheme, style, styleClass, themeId
Tableau 78. Toutes les propriétés (td)
Catégorie Propriétés
accessibilité role, title
fondamentaux binding, dir, id, lang, loaded, rendered, rendererType
dojo dojoAttributes, dojoType
événements onclick, ondblclick, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
format align, colspan, rowspan, valign
définition de style disableTheme, style, styleClass, themeId
Utilisation
A l'exécution, le tableau apparaît sur la page auquel l'utilisateur peut accéder, cellule par cellule.
Quand vous insérez un tableau sur une page XPage en mode Conception, une boîte de dialogue s'affiche dans laquelle vous devez indiquer le nombre de lignes et le nombre de colonnes voulues. Une fois le tableau créé, vous pouvez :
  • Ajouter et supprimer des lignes et des colonnes.
  • Lier des cellules.
  • Sélectionner une ou plusieurs cellules.
  • Ajouter et supprimer un contenu de cellule.

Utilisez ce contrôle pour présenter du texte et des images de façon attractive. Par défaut, la propriété role est presentation. Pour une compatibilité d'accessibilité, n'utilisez pas ce contrôle pour autre chose qu'une présentation visuelle et ne changez pas role en une autre valeur que presentation. Pour les données tabulaires, utilisez le contrôle Table de données.

Exemple
Le tableau ci-dessous se compose de 4 cellules disposées en 2 lignes et 2 colonnes.
<xp:table>
	<xp:tr>
		<xp:td>
			<xp:label id="label1" value="row 1, column 1"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 1, column 2" id="label3"></xp:label>
		</xp:td>
	</xp:tr>
	<xp:tr>
		<xp:td>
			<xp:label value="row 2, column 1" id="label2"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 2, column 2" id="label4"></xp:label>
		</xp:td>
	</xp:tr>
</xp:table>

text - Champ calculé

Affiche une valeur.

Catégorie
Contrôles principaux
Syntaxe
<xp:text attributes>content</xp:text>
Tableau 79. Propriétés essentielles
Propriété Description
id Prend par défaut les valeurs computedField1, computedField2, etc.
value Lie le champ calculé à un élément de données ou à une autre valeur.
Tableau 80. Toutes les propriétés
Catégorie Propriétés
accessibilité role, title
fondamentaux attrs, binding, dir, escape, for, htmlFilter, id, lang, loaded, rendered, rendererType, tagName
données converter, value
format contentType
définition de style disableTheme, outerStyleClass, style, styleClass, themeId
Utilisation

A l'exécution, la valeur du champ calculé apparaît sur la page.

Exemple
Le contrôle Champ calculé ci-dessous affiche la somme de deux variables de portée :
<xp:text escape="true" id="computedField1"
	value="#{javascript:return requestScope.number1 + requestScope.number2}">
	<xp:this.converter>
		<xp:convertNumber type="number"></xp:convertNumber>
	</xp:this.converter>
</xp:text>
Le contrôle Champ calculé ci-dessous affiche la valeur d'un élément de données lié à la page XPage actuelle.
<xp:text escape="true" id="computedField4" value="#{document1.subject}"></xp:text>

typeAhead - Frappe anticipée AJAX

Remplit automatiquement son contrôle parent au fur et à mesure que les utilisateurs tapent une suite de caractères correspondant à la suggestion spécifiée.

Catégorie
Autres contrôles
Syntaxe
<xp:typeAhead attributes>content</xp:typeAhead>
Tableau 81. Propriétés essentielles
Propriété Description
mode Mode de régénération.
minChars Nombre minimum de caractères pour déclencher la fonction de frappe anticipée.
valueList Suggestions retournées quand les caractères initiaux sont entrés.
valueListSeparator Séparateur de suggestions.
tokens Séparateurs de client au cas où la machine utilisateur spécifie des suggestions.
ignoreCase Indique si le contrôle est sensible ou non à la casse.
Tableau 82. Toutes les propriétés
Catégorie Propriétés
fondamentaux binding, dojoStoreType, frequency, htmlFilter, id, ignoreCase, loaded, maxValues, minChars, mode, preventFiltering, rendered, rendererType, tokens, url
données valueList, valueListSeparator, valueMarkup, var
dojo dojoAttributes, dojoType
événements onComplete, onError, onStart
définition de style disableTheme, themeId
Utilisation
Intégrez ce contrôle dans un autre contrôle pour agir sur l'entrée dans le contrôle parent.

En mode Conception, placez la mise en évidence sur le contrôle qui est destiné à recevoir la frappe anticipée et cliquez sur l'onglet Frappe anticipée sous Propriétés. En cochant Activer la frappe continue, vous intégrez un contrôle de frappe anticipée dans le contrôle actuel.

Pour voir les propriétés de frappe anticipée sous Toutes les propriétés, vous devez passer en mode Source et placer la mise en évidence sur le contrôle typeAhead intégré (par opposition au contrôle parent).

Exemple
Ce contrôle Zone d'édition fournit une frappe anticipée.
<xp:inputText id="inputText1" value="#{document1.subject}">
	<xp:typeAhead mode="full" minChars="1"
	valueList="alpha#beta#charlie#delta#echo#foxtrot"
	valueListSeparator="#" tokens=",/" ignoreCase="true">
</xp:typeAhead></xp:inputText>

view - XPage

Définit le contrôle conteneur de niveau supérieur, c'est à dire la page XPage elle-même.

Catégorie
Aucune
Syntaxe
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" attributes>content</xp:view>
Toutes les propriétés
Utilisation
A l'exécution, les propriétés de page sont appliquées quand la page est chargée.

En mode Conception, placez la mise en évidence en dehors des contrôles de la page pour voir les propriétés de page.

Exemple
Cette page XPage définit une source de données et contient une zone d'édition et un bouton.
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
	<xp:this.data>
		<xp:dominoDocument var="document1" formName="form1"></xp:dominoDocument>
	</xp:this.data>
	<xp:inputText id="inputText1"
		value="#{document1.subject}" style="font-weight:bold">
	</xp:inputText>
	<xp:button value="submit" id="button1" 	style="font-weight:bold">
		<xp:eventHandler event="onclick"
			submit="true" refreshMode="complete" immediate="false" save="true">
		</xp:eventHandler>
	</xp:button>
</xp:view>

viewPanel - Vue

Affiche en lignes et en colonnes des données extraites de documents.

Catégorie
Contrôles conteneurs
Syntaxe
<xp:viewPanel attributes>
	<xp:this.facets>
		<xp:pager attributes></xp:pager>
	</xp:this.facets>
	<xp:this.data>
		<xp:dominoView attributes></xp:dominoView>
	</xp:this.data>
	<xp:viewColumn attributes">
		<xp:viewColumnHeader attributes></xp:viewColumnHeader>
	</xp:viewColumn>
	...
</xp:viewPanel>
Tableau 84. Propriétés essentielles
Propriété Description
id (viewPanel) Prend par défaut les valeurs viewPanel1, viewPanel2, etc.

(viewColumn) Prend par défaut les valeurs viewColumn1, viewColumn2, etc.

(viewColumnHeader) Prend par défaut les valeurs viewColumnHeader1, viewColumnHeader2, etc.

rows (viewPanel) Nombre de lignes affichées en même temps (30, par défaut).
data (viewPanel) Lie une vue Domino au contrôle.
pageName (viewPanel) Par défaut, la page XPage associée au masque du document est utilisée pour ouvrir un document sélectionné quand un élément de colonne est un lien. Il est possible ici d'utiliser une page XPage spécifiée.
columnName (viewColumn) Les noms de colonne provenant de la source de données sont définis via la boîte de dialogue de création de vue et peuvent être changés ultérieurement.
displayAs, (viewColumn) Par défaut, les éléments s'affichent sous forme de texte. Spécifiez displayAs="link" pour changer ces éléments en liens vers les documents sous-jacents.
value (viewColumnHeader) Libellé pour l'en-tête de colonne.
Tableau 85. Toutes les propriétés (viewPanel)
Catégorie Propriétés
accessibilité caption, role, summary, title
Remarque : La propriété role est obsolète depuis la version 9.0.1. Par défaut, la valeur compatible appropriée est générée. Pour une conformité aux normes d'accessibilité, ne spécifiez pas de valeur pour cette propriété. Reportez-vous à la section Utilisation pour plus d'informations sur la compatibilité d'accessibilité.
basics attrs, binding, dir, id, lang, loaded, partialExecute, partialRefresh, refreshId, rendered, rendererType, rowAttrs, target
données data, first, indexVar, pageName, rows, value, var
format cellpadding, cellspacing, height, showColumnHeader, showUnreadMarks, width
définition de style captionStyleClass, columnClasses, dataTableStyle, dataTableStyleClass, disableTheme, readMarksClass, rowClasses, themeId, unreadMarksClass, viewStyle, viewStyleClass
Tableau 86. Toutes les propriétés (viewColumn)
Catégorie Propriétés
accessibilité role
basics attrs, binding, columnName, displayAs, htmlFilter, id, loaded, rendered, rendererType, width
données converter, openDocAsReadonly, pageUrl, value
événements onClick
format collapsedImage, contentType, expandedImage, iconAlt, iconSrc, indentResponses, showCheckbox
définition de style disableTheme, style, styleClass, themeId
Tableau 87. Toutes les propriétés (viewColumnHeader)
Catégorie Propriétés
accessibilité role
basics attrs, binding, htmlFilter, id, loaded, rendered, rendererType, sortable, value
format contentType, iconAlt, iconSrc, showCheckbox
définition de style disableTheme, style, styleClass, themeId
Pagers
Une région de facette, qui contient un ou plusieurs pagers, est également proposée dans la vue, selon les spécifications de conception. Vous pouvez y placer d'autres contrôles, comme des panneaux, par exemple. Utilisez le mode Source pour travailler dans la facette.

Vous trouverez ci-dessous une facette exemple pour les contrôles de pager :

<xp:this.facets>
	<xp:pager partialRefresh="true" layout="Previous Group Next"
		xp:key="headerPager" id="pager1">
	</xp:pager>
	<xp:viewTitle xp:key="viewTitle" id="viewTitle1" value="View Title"></xp:viewTitle>
	<xp:pager partialRefresh="true" layout="Previous Group Next"
		xp:key="footerPager" id="pager2">
	</xp:pager>
</xp:this.facets>
Les cases à cocher suivantes, qui apparaissent lorsque vous sélectionnez l'onglet Affichage sous Propriétés, affectent le contenu de facette de la façon suivante :
  • La case Afficher le pager dans l'en-tête (cochée par défaut) génère un contrôle pager de clé headerPager. Aucune région de facette n'est générée si cette case est décochée.
  • La case Afficher le pager dans le pied de page (désélectionnée par défaut) génère un contrôle pager de clé footerPager.
  • La case Afficher titre (désélectionnée par défaut) génère le contrôle viewTitle.
Utilisation
Un contrôle Vue a pour fonction principale d'afficher une vue Domino. En mode Conception, vous fournissez le nom de la vue Domino liée et d'autres informations, dans une boîte de dialogue qui s'affiche quand vous créez le contrôle viewPanel. Après la création, vous pouvez cliquer avec le bouton droit de la souris ou utiliser le menu pour insérer, adjoindre et supprimer des colonnes.

Lorsque vous configurez des vues pour afficher des catégories de données, les utilisateurs peuvent développer et réduire (par basculement) les catégories en phase d'exécution. Les catégories sont réduites par défaut. Quand les utilisateurs changent les catégories, la page XPage est rechargée de façon à ce que les données qui s'y trouvent restent synchronisées avec le serveur.

Pour la pagination, une catégorie réduite compte comme une ligne. Ainsi, si vous avez configuré un pager pour qu'il navigue de cinq lignes et que la vue comporte cinq lignes de données réduites, chaque fois qu'un utilisateur clique sur la bouton précédent ou suivant, le pager compte cinq catégories et non pas les lignes individuelles masquées. Par ailleurs, l'état de bascule des catégories est conservé quand les utilisateurs se déplacent vers l'arrière ou vers l'avant dans les pages de données.

Ces contrôles n'ont pas été testés par rapport aux dernières normes d'accessibilité. Le chemin accessible recommandé est le contrôle Vue de données.

Exemple
Ce contrôle Vue a deux colonnes.
<xp:viewPanel rows="30" id="viewPanel1">
	<xp:this.facets>
		<xp:pager partialRefresh="true" layout="Previous Group Next"
			xp:key="headerPager" id="pager1">
		</xp:pager>
	</xp:this.facets>
	<xp:this.data>
		<xp:dominoView var="view2" viewName="main"></xp:dominoView>
	</xp:this.data>
	<xp:viewColumn columnName="subject" id="viewColumn1">
		<xp:viewColumnHeader value="subject" id="viewColumnHeader1"></xp:viewColumnHeader>
	</xp:viewColumn>
	<xp:viewColumn columnName="fruit" id="viewColumn2">
		<xp:viewColumnHeader value="fruit" id="viewColumnHeader2"></xp:viewColumnHeader>
	</xp:viewColumn>
</xp:viewPanel>

Références des propriétés

Les propriétés XPages sont répertoriées et décrites ci-dessous.

accept - Accepter

Répertorie un type MIME acceptable pour le fichier téléchargé.

Catégorie
fondamentaux
Syntaxe
accept="text/html|image/png|image/gif|video/mpeg|text/css|audio/basic"
Utilisation
En mode Conception, cliquez sur Toutes les propriétés et cherchez accept sous fondamentaux.

Par défaut, tous les types MIME sont acceptables.

accesskey - Raccourci-clavier

Spécifie un caractère utilisé en même temps que la touche ALT afin de mettre en évidence un contrôle.

Catégorie
accessibilité
Syntaxe
accesskey="key"
Utilisation
En mode Conception, cliquez sur l'onglet supérieur sous Propriétés et cherchez Raccourci-clavier ou cliquez sur Toutes les propriétés et cherchez accesskey sous accessibilité.

Les combinaisons de touches sont utiles pour les personnes qui veulent se servir de leur clavier pour naviguer ou pour les utilisateurs qui souffrent de déficiences visuelles et dépendent donc des attributs HTML accesskey. Pour connaître les restrictions liées aux touches de raccourci, reportez-vous à la documentation du navigateur.

Exemple
Ce contrôle Zone d'édition est sélectionné quand l'utilisateur appuie sur ALT > b.
<xp:inputText id="inputText1" value="#{document1.subject}" accesskey="b"></xp:inputText>

acl - Liste de contrôle d'accès

Définit une liste de contrôle d'accès (LCA) pour une page ou un contrôle.

Catégorie
données
Syntaxe
<xp:this.acl>
	<xp:acl loaded="true|false">
		<xp:this.entries>
			<xp:aclEntry attributes fullName="name" name="name"
				right="NOACCESS|READER|EDITOR"
				type="USER|GROUP|ROLE|ORGUNIT|ORGROLE|DEFAULT|ANONYMOUS"
				loaded="true|false">
			</xp:aclEntry>
			...
		</xp:this.entries>
	</xp:acl>
</xp:this.acl>
Utilisation
En mode Conception, assurez-vous que la page ou qu'un contrôle conteneur est mis en évidence. Cliquez sur Toutes les propriétés et cherchez acl sous données.

Cette propriété s'applique aux pages et à certains contrôles conteneurs.

Propriétés contenues
loaded="true|false"
Crée ou ne crée pas l'instance de balise quand le contrôle est chargé.
fullName="name"
Spécifie le nom complet d'un utilisateur si name n'est pas le nom complet.
name="name"
Spécifie un nom pour l'entrée.
right="NOACCESS|READER|EDITOR"
Définit les droits d'accès pour l'entrée.
type="USER|GROUP|ROLE|ORGUNIT|ORGROLE|DEFAULT|ANONYMOUS"
Définit le type d'entrée.
loaded="true|false"
Crée ou ne crée pas l'instance de balise quand l'entrée est chargée.
Exemple
Ce panneau définit une LCA avec deux entrées.
<xp:panel style="height:60.0px;width:408.0px">
	<xp:this.data>
		<xp:dominoDocument var="document2" formName="form1"></xp:dominoDocument>
	</xp:this.data>
	<xp:this.acl>
		<xp:acl>
			<xp:this.entries>
				<xp:aclEntry name="CN=Mary Moffit/O=IBM"
					right="EDITOR" type="USER">
				</xp:aclEntry></xp:aclEntry>
				<xp:aclEntry name="John Jordon/O=IBM" right="READER"
					type="USER">
				</xp:aclEntry>
			</xp:this.entries>
		</xp:acl>
	</xp:this.acl>
	<xp:inputText id="inputText2" value="#{document2.phoneday}"></xp:inputText>
		day phone	<xp:br></xp:br>
	<xp:inputText id="inputText3" value="#{document2.phonenight}"></xp:inputText>
		night phone
</xp:panel>

action - Action d'application

Spécifie l'action d'application MethodBinding à invoquer quand l'utilisateur active le contrôle.

Catégorie
événements
Syntaxe
action="action"
Utilisation
La valeur d'action doit être une méthode publique qui ne prend pas de paramètre et retourne une chaîne, cette dernière étant passée au NavigationHandler de cette application.

actionListener - Programme d'écoute d'action

Spécifie le programme d'écoute d'action MethodBinding qui doit être notifié quand l'utilisateur active le contrôle.

Catégorie
événements
Syntaxe
actionListener="listener"
Utilisation
La valeur actionListener doit être une méthode publique qui prend un paramètre ActionEvent et renvoie void.

actionListeners - Liste de programmes d'écoute d'action

Spécifie une collection de programmes d'écoute d'action

Catégorie
événements
Syntaxe
<xp:this.actionListeners>
	<xp:actionListener type="javaclass"></xp:actionListener>
	...
</xp:this.actionListeners>

afterPageLoad - Liaison de méthode ultérieure au chargement de page

Active un gestionnaire d'événements après un chargement de page.

Catégorie
événements
Syntaxe
<xp:view><xp:this.afterPageLoad attributes>content</xp:afterPageLoad></xp:view>
Utilisation
Pour la syntaxe détaillée du gestionnaire d'événements, consultez eventHandler - Gestionnaire d'événements (propriété).

afterRenderResponse - Liaison de méthode ultérieure à la réponse de rendu

Active un gestionnaire d'événements après la phase de réponse de rendu du cycle JSF.

Catégorie
événements
Syntaxe
<xp:view><xp:this.afterRenderResponse attributes>content</xp:afterRenderResponse></xp:view>
Utilisation
Pour la syntaxe détaillée du gestionnaire d'événements, consultez eventHandler - Gestionnaire d'événements (propriété).

afterRestoreView - Liaison de méthode ultérieure à la restauration de la vue

Active un gestionnaire d'événements après la phase de restauration de vue du cycle de vie JSF.

Catégorie
événements
Syntaxe
<xp:view><xp:this.afterRestoreView attributes>content</xp:afterRestoreView></xp:view>
Utilisation
Pour la syntaxe détaillée du gestionnaire d'événements, consultez eventHandler - Gestionnaire d'événements (propriété).

align - Alignement

Aligne le contenu dans un conteneur.

Catégorie
format
Syntaxe
align="left|center|right"
Utilisation
En mode Conception, cliquez sur Toutes les propriétés et cherchez align sous format.

allowDelete - Autoriser la suppression de fichier

Autorise les utilisateurs à supprimer ou non les fichiers joints

Catégorie
fondamentaux
Syntaxe
allowDelete="true|false"
Utilisation
En mode Conception, cliquez sur Toutes les propriétés et cherchez allowDelete sous fondamentaux.

Par défaut, un contrôle est chargé.

alt - Texte de remplacement

Spécifie le texte à afficher quand une image ne peut être rendue.

Catégorie
accessibilité
Syntaxe
alt="text"
Utilisation
En mode Conception, cliquez sur l'onglet supérieur sous Propriétés et cherchez Texte de remplacement, ou cliquez sur Toutes les propriétés et cherchez alt sous accessibilité.

alwaysCalculateLast - Calculer toujours le dernier

Calcule toujours le dernier document dans un conteneur.

Catégorie
fondamentaux
Syntaxe
alwaysCalculateLast="true|false"
Utilisation
En mode Conception, cliquez sur Toutes les propriétés et cherchez alwaysCalculateLast sous fondamentaux.

La définition de cette propriété à true peut avoir un impact sur les performances.

ariaLabel - Libellé ARIA (propriété)

Spécifie un texte descriptif pour un libellé de technologies d'assistance pour un contrôle.

Remarque : Cette propriété est une nouveauté de la version 9.0.1.
Catégorie
accessibilité
Syntaxe
ariaLabel="text"
Utilisation
En mode conception, cliquez sur Toutes les propriétés et recherchez ariaLabel sous accessibilité.

attrs - Liste d'attributs

Ajoute des attributs à un contrôle. Utilisez cette propriété uniquement quand les attributs ne sont pas disponibles en tant que propriétés.

Catégorie
fondamentaux
Syntaxe
<xp:this.attrs>
	<xp:attr attributename="attributevalue" ...</xp:attr>
	...
</xp:this.attrs>
Utilisation
En mode Conception, cliquez sur Toutes les propriétés et cherchez attrs sous fondamentaux.
Attributs
Vous devez au moins définir name et value.
Tableau 88. Attributs
Attribut Description
loaded="true|false"
Crée l'attribut quand la page est chargée (par défaut) ou non.
minimized="true|false"
Réduit l'attribut du code HTML, en rendant uniquement le nom et non la valeur, ou non (par défaut).
name="name"
Nom d'un attribut HTML valide.
rendered="true|false"
Rend (par défaut) ou ne rend pas l'attribut.
uri="true|false"
Traite value comme un identificateur URI ou non (par défaut). Une valeur URI sans protocole (http://, par exemple) est relative à l'application actuelle. Le codage URL étant en vigueur, utilisez %20 pour un espace.
value="value"
Valeur de l'attribut. Non rendu si minimized est à true.
Utilisation
Cette propriété permet l'inclusion d'un attribut HTML pour lequel aucune propriété de contrôle n'existe. N'utilisez pas attrs pour les attributs pouvant être générés via la spécification des propriétés de contrôle.
Exemples
Cette boîte d'édition ajoute l'attribut autofocus sans procéder au rendu de sa valeur.
<xp:inputText id="inputText3">
	<xp:this.attrs>
		<xp:attr name="autofocus" value="autofocus" minimized="true"></xp:attr>
	</xp:this.attrs>
</xp:inputText>
Cette zone d'édition de type email ajoute l'attribut placeholder.
<xp:inputText id="inputText3" type="email">
	<xp:this.attrs>
		<xp:attr name="placeholder" value="a@b.com"></xp:attr>
	</xp:this.attrs>
</xp:inputText>

autocomplete - Auto-achèvement

Active ou désactive la fonction de navigateur qui se souvient et exécute automatiquement l'entrée utilisateur.

Catégorie
fondamentaux
Syntaxe
autocomplete="on|off"
Utilisation
En mode Conception, cliquez sur Toutes les propriétés et cherchez autocomplete sous fondamentaux.

Par défaut, l'auto-achèvement est activé.

Exemple
Ce contrôle Zone d'édition désactive automatiquement l'auto-achèvement.
<xp:inputText id="inputText1" value="#{document1.subject}"
	title="Subject edit box" autocomplete="off">
</xp:inputText>

beforePageLoad - Liaison de méthode antérieure au chargement de page

Active un gestionnaire d'événements avant un chargement de page.

Catégorie
événements
Syntaxe
<xp:view><xp:this.beforePageLoad attributes>content</xp:beforePageLoad></xp:view>
Utilisation
Pour la syntaxe détaillée du gestionnaire d'événements, consultez eventHandler - Gestionnaire d'événements (propriété).

beforeRenderResponse - Liaison de méthode antérieure à la réponse de rendu

Active un gestionnaire d'événements avant la phase de réponse de rendu du cycle JSF.

Catégorie
événements
Syntaxe
<xp:view><xp:this.beforeRenderResponse attributes>content</xp:beforeRenderResponse></xp:view>
Utilisation
Pour la syntaxe détaillée du gestionnaire d'événements, consultez eventHandler - Gestionnaire d'événements (propriété).

bgcolor - Couleur d'arrière-plan

Spécifie la couleur d'arrière-plan.

Catégorie
format
Syntaxe
bgcolor="color"
Utilisation
En mode Conception, cliquez sur Toutes les propriétés et cherchez bgcolor sous format.

binding - Liaison de contrôle

Spécifie une expression qui lie le contrôle à une propriété de contrôle donnée.

Catégorie
fondamentaux
Syntaxe
binding="expression"
Utilisation
En mode Conception, cliquez sur Toutes les propriétés et cherchez binding sous fondamentaux.
Exemples

border - Bordure du tableau

Spécifie la largeur en pixels de la bordure qui entoure un tableau ou un groupe de contrôles

Catégorie
format
Syntaxe
border="n"
Utilisation
En mode Conception, cliquez sur Toutes les propriétés et cherchez border sous format.

Par défaut, un groupe de contrôles n'a pas de bordure (border="0").

Exemple
Ce groupe de cases à cocher utilise une bordure de 16 pixels.
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}"
	border="16">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>

caption - Légende

Affiche une légende au-dessus d'un contrôle conteneur.

Catégorie
accessibilité
Syntaxe
caption="caption"
Utilisation
En mode Conception, cliquez sur Toutes les propriétés et cherchez caption sous accessibilité.

A l'exécution, le titre s'affiche dans un encadré quand l'utilisateur fait passer le pointeur de la souris sur le contrôle.

Exemple
Une légende est ajoutée à ce tableau.
<xp:table caption="Test caption">>
	<xp:tr>
		<xp:td>
			<xp:label id="label1" value="row 1, column 1"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 1, column 2" id="label3"></xp:label>
		</xp:td>
	</xp:tr>
	<xp:tr>
		<xp:td>
			<xp:label value="row 2, column 1" id="label2"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 2, column 2" id="label4"></xp:label>
		</xp:td>
	</xp:tr>
</xp:table>

captionStyleClass - Classes de style CSS de la légende

Spécifie une liste de classes CSS à appliquer à une légende de tableau.

Catégorie
définition de style
Syntaxe
captionStyleClass="name ..."
name identifie une classe. Les noms de classe sont séparés par des espaces.
Utilisation
En mode Conception, cliquez sur Toutes les propriétés et cherchez captionStyleClass sous définition de style.

cellpadding - Remplissage de cellule

Spécifie l'espace entre le bord des cellules d'un tableau et son contenu en pixels.

Catégorie
format
Syntaxe
cellpadding="n"
Utilisation
En mode Conception, cliquez sur Toutes les propriétés et cherchez cellpadding sous format.

Par défaut, un groupe de contrôles n'a pas de bordure (border="0").

Exemple
Ce contrôle Tableau spécifie le remplissage et l'espacement des cellules.
<xp:table cellspacing="16" cellpadding="16">
	<xp:tr>
		<xp:td>
			<xp:label id="label1" value="row 1, column 1"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 1, column 2" id="label3"></xp:label>
		</xp:td>
	</xp:tr>
	<xp:tr>
		<xp:td>
			<xp:label value="row 2, column 1" id="label2"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 2, column 2" id="label4"></xp:label>
		</xp:td>
	</xp:tr>
</xp:table>

cellspacing - Espacement des cellules

Spécifie l'espace entre le bord d'un tableau et les cellules qui le composent et entre les cellules elles-mêmes, en pixels.

Catégorie
format
Syntaxe
cellspacing="n"
Utilisation
En mode Conception, cliquez sur Toutes les propriétés et cherchez cellspacing sous format.

Par défaut, un groupe de contrôles n'a pas de bordure (border="0").

Exemple
Ce contrôle Tableau spécifie l'espacement des cellules.
<xp:table cellspacing="16">
	<xp:tr>
		<xp:td>
			<xp:label id="label1" value="row 1, column 1"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 1, column 2" id="label3"></xp:label>
		</xp:td>
	</xp:tr>
	<xp:tr>
		<xp:td>
			<xp:label value="row 2, column 1" id="label2"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 2, column 2" id="label4"></xp:label>
		</xp:td>
	</xp:tr>
</xp:table>

charset - Jeu de caractères

Spécifie le codage de caractères de la ressource extraite.

Catégorie
fondamentaux
Syntaxe
charset="encoding"
Utilisation
En mode Conception, cliquez sur Toutes les propriétés et cherchez charset sous fondamentaux.

checkedValue - Valeur cochée

Spécifie la valeur d'un élément de données lié à un contrôle coché (par opposition à son deuxième état possible, la désélection).

Catégorie
données
Syntaxe
checkedValue="value"
Utilisation
En mode Conception, cliquez sur Données sous Propriétés et cherchez Valeur cochée ou cliquez sur Toutes les propriétés et cherchez checkedValue sous données.

Cette propriété, qui s'applique à un contrôle qui peut être coché ou désélectionné comme une case à cocher, prend par défaut la chaîne true.

Exemple
Ce contrôle Case à cocher affecte une valeur de données selon que la case est cochée (défaut) ou désélectionnée.
<xp:checkBox id="checkBox2" text="Use user name instead of Anonymous"
	defaultChecked="true" value="#{document1.loginname}" uncheckedValue="Anonymous"
	checkedValue="#{javascript:session.getUserName()}">
</xp:checkBox>

collapsedImage - Image de section condensée

Spécifie une image pour une section condensée.

Catégorie
fondamentaux
Syntaxe
collapsedImage="pathname"
Utilisation
En mode Conception, cliquez sur Toutes les propriétés et cherchez collapsedImage sous fondamentaux.

Pour une ressource d'application, le chemin d'image est relatif à l'application, /abook.gif, par exemple.

cols - Colonnes

Spécifie le nombre de colonnes à afficher.

Catégorie
fondamentaux
Syntaxe
cols="n"
Utilisation
En mode Conception, cliquez sur l'onglet supérieur sous Propriétés et cherchez Colonnes, ou cliquez sur Toutes les propriétés et cherchez cols sous fondamentaux.

L'attribut width de la propriété style remplace cette valeur.

Exemple
Ce contrôle Zone d'édition multiligne spécifie le nombre de colonnes et de lignes.
<xp:inputTextarea id="inputTextarea1" value="#{document1.description}"
	cols="64" rows="8">
</xp:inputTextarea>

colspan - Etendue sur la colonne

Spécifie le nombre de colonnes couvertes par la cellule actuelle.

Catégorie
fondamentaux
Syntaxe
colspan="n"
n est le nombre de colonnes et 0 demande une étendue sur toutes les colonnes du groupe de colonnes.
Utilisation
En mode Conception, cliquez sur Toutes les propriétés et cherchez colspan sous format.

La valeur par défaut est 1.

columnClasses - Classes de CSS de colonne

Spécifie une liste des classes CSS à appliquer aux colonnes de table ou de vue.

Catégorie
définition de style
Syntaxe
columnClasses="name ..."
name identifie une classe. Les différents noms sont séparés par des espaces.
Utilisation
En mode Conception, cliquez sur Toutes les propriétés et cherchez columnClasses sous définition de style.

columnName - Nom de colonne

Spécifie le nom de la colonne de vue sous-jacente dans la source de données.

Catégorie
fondamentaux
Syntaxe
columnName="name"
name correspond à un nom de colonne dans la source de données.
Utilisation
En mode Conception, cliquez sur l'onglet Données sous Propriétés et cherchez Visualiser la colonne ou cliquez sur Toutes les propriétés et cherchez columnName sous fondamentaux.

A l'exécution, la colonne de vue parente présente les données provenant de la colonne sous-jacente de la source de donnée.

La spécification d'une valeur qui ne correspond pas au nom d'une colonne dans la source de données provoque une erreur à l'exécution.

Exemple
Ce contrôle Vue contient deux colonnes basées sur les colonnes subject et fruit de la source de données.
<xp:viewPanel rows="30" id="viewPanel1">
	<xp:this.facets>
		<xp:pager partialRefresh="true" layout="Previous Group Next"
			xp:key="headerPager" id="pager1">
		</xp:pager>
	</xp:this.facets>
	<xp:this.data>
		<xp:dominoView var="view2" viewName="main"></xp:dominoView>
	</xp:this.data>
	<xp:viewColumn columnName="subject" id="viewColumn1">
		<xp:viewColumnHeader value="subject" id="viewColumnHeader1"></xp:viewColumnHeader>
	</xp:viewColumn>
	<xp:viewColumn columnName="fruit" id="viewColumn2">
		<xp:viewColumnHeader value="fruit" id="viewColumnHeader2"></xp:viewColumnHeader>
	</xp:viewColumn>
</xp:viewPanel>

componentId - ID contrôle

Spécifie l'identificateur d'un contrôle sur une page incluse.

Catégorie
fondamentaux
Syntaxe
componentId="identifier"
Utilisation
En mode Conception, c