Bonnes Pratiques Webtop

De EjnTricks

Cet article donne un ensemble de bonnes pratiques pour les développements réalisés sous Webtop.

Hand-icon.png Votre avis

Current user rating: 11/100 (1 votes)

 You need to enable JavaScript to vote


Organisation des extensions

Un composant Webtop est défini par plusieurs fichiers:

  • Un fichier XML pour le décrire.
  • Une ou plusieurs pages JSP.
  • Un fichier dictionnaire contenant les messages.
  • Une classe d'instance.

Le composant de d'affichage d'une recherche, sur une installation 5.3, est pris pour exemple pour illustrer la mise en place de l'extension. Ce composant est intéressant, car la définition faite au niveau Webtop est déjà une extension de la définition dans la couche Webcomponent.

Définition standard

Pour cette version, le fichier XML se trouve à l'emplacment webtop/config/searchex_component.xml avec le contenu suivant:

Cette définition est donc une extension du composant défini à l'emplacement webcomponent/config/library/search/searchex/search_component.xml dont le contenu est:

Extension

XML format icon.png Extension XML

Afin d'identifier précisément les fichiers étendus, il est recommander de créer dans le répertoire custom/config trois sous répertoires:

  • wdk: Pour les définitions des composant étendant les définitions de la couche wdk.
  • webcomponent: Pour les définitions des composant étendant les définitions de la couche webcomponent.
  • webtop: Pour les définitions des composant étendant les définitions de la couche webtop.

Puis dans chacun des ces sous répertoire, il faut recréer l'arborescence de l'emplacement du composant étendu. Ainsi lors de la lecture des personnalisations, il est aisé de retrouver l'emplacement de la définition étendue.

Dans le cadre de cet exemple, seul le sous répertoire webtop est créé. Le fichier pour l'extension se trouve à l'emplacement custom/config/webtop/searchex_component.xml:

Dans cette définition les extensions concernent:

  • La page pour le mode classic, et hors intégration dans une application, originalement définie dans la couche webcomponent.
  • La classe d'instance originalement définie dans la couche webtop.
  • Le dictionnaire de message défini dans la couche webcomponent.

Extension des jsp

Afin d'identifier rapidement rapidement la page jsp étendue, seul les deux premiers niveau du répertoire est remplacé par l'identifiant de l'application. Dans le cadre de cet exemple, l'application est identifiée par fr.amexio, en remplacement de com.documentum. La page jsp étendue se trouve à l'emplacement webcomponent/library/searchresultslist/searchex/searchresults_list.jsp, l'extension est stockée à l'emplacement custom/webcomponent/library/searchresultslist/searchex/searchresults_list.jsp.

Il est également très important de conserver le formatage du fichier original, même si celui ci ne présente aucune indentation. Ainsi, il sera aisé de réaliser des comparaisons sur les pages originales et les extensions.

Extension dictionnaire

Afin d'identifier rapidement rapidement le dictionnaire étendu, seul les deux premiers niveau du répertoire est remplacé par l'identifiant de l'application. Dans le cadre de cet exemple, l'application est identifiée par fr.amexio, en remplacement de com.documentum. Le dictionnaire étendue étant com.documentum.webcomponent.library.search.SearchExNlsProp, l'extension est stockée à l'emplacement custom/strings/fr/amexio/webcomponent/library/search/SearchExNlsProp. Dans le cadre de cette extension, seul le titre est modifié. Tous les autres messages sont conservés à l'identique grâce à l'instruction NLS_INCLUDE référençant le fichier original.

Dans le cadre des dictionnaires, le fichier étendu est donc identifiable par l'emplacement et son contenu.

Java format icon.png Extension classe d'instance

Afin d'identifier rapidement rapidement la classe étendue, seul les deux premiers niveau du package est remplacé par l'identifiant de l'application. Dans le cadre de cet exemple, l'application est identifiée par fr.amexio, en remplacement de com.documentum. La classe étendue étant com.documentum.webtop.webcomponent.search.SearchEx, l'extension est créé sous la classe fr.amexio.webtop.webcomponent.search.SearchEx. A noter que cela ne respecte pas les bonnes pratique JAVA qui indique qu'il ne faut pas donner le même nom de classe pour l'extension que celle étendue. Mais dans le cadre de Webtop, cela est particulièrement pratique.

Dans le code présenté ci dessous, seule la méthode buildQueryFromKeywords(String keywords) est étendue:

Ici, nous n'expliquerons pas l'utilité de l'extension.