Modifier dynamiquement une zone de texte

Bonjour,

J’ai une zone de texte comme ci-dessous :

J’aimerais pouvoir modifier ce texte dynamiquement depuis le code en Java.

J’ai pu voir sur le forum que c’était assez peu pratique : Cacher une zone de texte dans un hook - #5 by scampano
Cependant ce topic date d’il y a un an.

Voici donc mes questions :

  • Est-il possible de modifier la zone de texte depuis le code en Java assez facilement (aussi facile que modifier un champ par exemple) ?
  • Si ce n’est pas possible, serait-il possible d’avoir une documentation sur comment modifier dynamiquement le Template HTML via du JavaScript ?

Bonjour,

Il s’agit bien d’un texte statique ?

Compte tenu du type de message affiché, j’aurais plutôt tendance à utiliser les aides contextuelles des objets métiers qui peuvent être facilement manipulées en back avec les classes ObjectCtxHelp et la méthode setCtxHelps

Par exemple le bout de code ci-dessous appelé lors d’un initUpdate qui ajoute des aides selon certaines conditions.

//set context helps depending on state of order 
List<ObjectCtxHelp> ctxHelps = new ArrayList<>();
String[] ctx = { ObjectCtxHelp.CTXHELP_UPDATE };

if (Tool.isEmpty(getFieldValue("myField")) && "PEN".equals(getStatus())) {

    ObjectCtxHelp help = new ObjectCtxHelp("MainObject", ctx, A_MESSAGE);
    ctxHelps.add(help);
    setCtxHelps(ctxHelps);
    
} else if ("DEL".equals(getStatus())) {
	
    ObjectCtxHelp help = new ObjectCtxHelp("MainObject", ctx, ANOTHER_MESSAGE);
    ctxHelps.add(help);
    setCtxHelps(ctxHelps);
    
} else {
    setCtxHelps(null);
}
2 Likes

La capture d’écran que j’ai mis au-dessus concernant la zone de texte (statique) n’est pas celle que je veux utiliser. C’était juste un exemple pour que vous voyez de quoi je parle.

Le message que je veux écrire est le suivant quand je sauvegarde : "Les personnes suivantes n'ont pas encore validé : XXX, YYY, ZZZ". Ce nombre de personnes varie.

Du coup j’ai vraiment besoin de modifier le message.
Si les aides contextuelles sont celles qui s’affichent avec le petit point d’interrogation, ce n’est pas ce que je souhaite.
image

Je veux avoir une phrase que j’affiche où je veux dans le formulaire et dont je peux modifier le contenu à ma guise.

Est-ce possible ?

Visiblement, c’est pas le point d’interrogation.

Je vais tester votre solution Alistair et je vais voir si ça correspond à mes besoins.

Je vous invite à paramétrer quelques aides contextuelles manuellement avant de passer par une création/valorisation dynamique.

1 Like

Si jamais les aides contextuelles ne répondent pas à votre besoin, il reste toujours la possibilité de créer un attribut non persisté sur l’objet métier et de le valoriser dynamiquement.

Oui, si le champ est read-only et de type HTML vous pouvez l’alimenter au postSelect.

if (isMainInstance())
   selFieldValue("myTextField", "<p>contenu compliqué</p>");

Et on peut aussi n’afficher que la valeur (sans le label) dans le template editor.
data-display=“input”

image

1 Like

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.