Je souhaite valider les dépendances de champs avec un autre champ lorsque le champ actuel a changé.Eclipse Scout Neon sur la boucle de détection de validation de jeu de valeurs
idée de base est que si j'ai champ A
et les champs B,C,D,E,...
et il y a un graphe de dépendances complexes sur ces domaines, je voudrais avoir à résoudre comme ceci:
- Quand je mis la valeur Un formulaire d'exportation données (état actuel de la forme) données de formulaire
- est envoyé en éclaireur serveur
- sur le graphique des dépendances de serveur scout est calculé et résolu (nous obtenons la liste dans l'ordre)
- appel
setters
des champs dans l ordre ist qui "fixe" les données de formulaire - Les données de formulaire d'importation à la fin.
Mon problème est que si je déclenche cet événement dans
@Override
protected void execChangedValue() {
// trigger export
// trigger server validation
// trigger import
}
Je reçois
2016-06-03 13:31:28,468 WARN scout-model-thread-22 o.e.s.rt.client.ui.form.fields.AbstractValueField - Loop detection in ...$FieldA with value 101191 [m4042 @ ]
java.lang.Exception: null
Comment résoudre ce problème?
J'ai même un problème si, en cas d'erreur, je veux abandonner l'importation et rétablir l'ancienne valeur.
@Override
protected void execChangedValue() {
// trigger export
// trigger server validation
if (error) {
setValueWithoutTrigger(oldValue)
} else {
// trigger import
}
}
Qu'est-ce que oldValue
peu importe, il pourrait être nulle. (donc réinitialiser la valeur en cas d'erreur). Méthode setValueWithoutTrigger
est le même que setValue()
mais avant valeur réglée, il a appelé this.setValueChangeTriggerEnabled(false);
Je sais que cela pourrait être fait en quelque sorte, parce que je voyais des fonctionnalités similaires dans le code BSI.
Je ne Je comprends. Autant que je comprends, vous voulez calculer les valeurs des champs B, C, D et E sur le serveur. Pourquoi auriez-vous besoin de définir des méthodes execChangedValue() sur le client? –
Je ne comprends pas votre commentaire. Qu'est-ce qui déclencherait alors la vérification côté serveur sinon execChangedValue()? Si je veux déclencher la validation sur le serveur lorsque l'utilisateur change certaines données dans le champ A, il doit être déclenché à partir du client, et execChangedValue me semble être un bon endroit. –
Vous avez raison. Maintenant, je comprends votre question. Je vous remercie. –