IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

W4 Express Java Discussion :

Recharger un écran apres l'exécution d'une processAction


Sujet :

W4 Express Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 93
    Points : 126
    Points
    126
    Par défaut Recharger un écran apres l'exécution d'une processAction
    Bonjour.

    J'ai fais une action spécifique, rattachée à une editTable, qui a pour but de vider le contenu d'un champ de toute ou partie des lignes selectionnées.

    Mon traitement fonctionne bien cependant mon souci est au niveau du raffraichissement de la table après l'execution de la processAction. Je suis obligé de changer d'écran puis de revenir pour que la table prenne en compte les modifications.

    Existe t-il un moyen pour signaler le besoin de raffraichissement directement dans la methode processAction ?

    Mon code (je suis en 8.2 build 134)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    	public LyController processAction(LySession session, LyController parent, LyAction action,
    		LyClassInfo classInfo, LyObjectList objects)
    	{
     
    		// Si nous n'avons pas d'objets selectionnés
    		if(objects == null || objects.getSize() <= 0){
    			LyClassWorkSpace ws = new LyClassWorkSpace(session, classInfo, true);
    			objects = new LySimpleObjectList(ws);
    		}
     
    		// Pour chaque objet, on fait une RAZ du champ commentaire et une réinitialisation du champ statut.
    		Iterator<LyObject> it = objects.iterator();
    		LyFieldInfo infoCommentaire = classInfo.getFieldInfo(PRJ_AGATE.FLD_COMMENTAIRE_CHAMP);
     
     
    		while (it.hasNext()) {
     
    			LyObject lyObject = (LyObject) it.next();
    			LyValue valueFieldCommentaire = lyObject.getFieldValue(infoCommentaire);
     
    			if(valueFieldCommentaire != null && valueFieldCommentaire.getValue() != null){
     
    				valueFieldCommentaire.setValue(null);
    				lyObject.setFieldValue(valueFieldCommentaire);
    			}
    		}
     
     
    		return null;
    	}
    En vous remerciant
    Pour une bonne résolution :
    - N'hésitez pas à donner le maximum d'informations sur vos problèmes, ca vous fera gagner du temps en évitant les aller-retours.
    - Si vous utilisez maven, pensez à rajouter votre pom !

    --> Le meilleur code est celui qui concrétise ce qui a été posé et analysé sur le papier

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 93
    Points : 126
    Points
    126
    Par défaut
    Bonjour.

    Petite relance car mon problème reste toujours d'actualité
    Pour une bonne résolution :
    - N'hésitez pas à donner le maximum d'informations sur vos problèmes, ca vous fera gagner du temps en évitant les aller-retours.
    - Si vous utilisez maven, pensez à rajouter votre pom !

    --> Le meilleur code est celui qui concrétise ce qui a été posé et analysé sur le papier

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 93
    Points : 126
    Points
    126
    Par défaut
    Après diverses recherches, j'en suis arrivé au contat que ceci n'est pas réalisable.

    Voici la solution de contournemant si certains sont intéressé :

    J'ai creer le behavior pour l'EditTable puis dans la méthode handleDemand je filtre pour être sur que c'est la bonne méthode qui appelle le traitement.

    Ensuite je reset les champs et j'utilise la méthode reload.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    	@Override
    	public boolean handleDemand(LyController controller, LyDemand demand) {
    		boolean res = super.handleDemand(controller, demand);
     
    		if(demand != null && 
    				demand instanceof LyActionDemand &&
    				demand.getSource().equalsIgnoreCase(PRJ_AGATE.ACT_ACT_RAZ_EDIT_VIEW_LIST_PRODUCTION)){
     
    			if(controller != null && 
    					controller instanceof LyEditTableController){
     
    				LyClassInfo classInfo =controller.getClassInfo(PRJ_AGATE.CLS_CHAMPS_LIVRAISON_PRODUCTION_CLS);
    				LySession session = controller.getSession();
    				LyFieldInfo infoCommentaire = classInfo.getFieldInfo(PRJ_AGATE.FLD_COMMENTAIRE_CHAMP);
    				LyFieldInfo infoStatut = classInfo.getFieldInfo(PRJ_AGATE.FLD_STATUT_CHAMP);
     
    				LyEditTableController editTableController = (LyEditTableController)controller;
    				LyObjectList objects = editTableController.getSelection();
     
    				if (objects == null || objects.getSize() <= 0){
    					objects = editTableController.getContent();
    				}
     
    				Iterator<LyObject> it = objects.iterator();
     
    				while (it.hasNext()) {
     
    					LyObject lyObject = (LyObject) it.next();
    					lyObject.setValue(infoCommentaire, null);
    					lyObject.setValue(infoStatut, (short) 0);
     
    				}
     
    				editTableController.reset();
     
    			}
    		}
    		return res;
    	}
    Pour une bonne résolution :
    - N'hésitez pas à donner le maximum d'informations sur vos problèmes, ca vous fera gagner du temps en évitant les aller-retours.
    - Si vous utilisez maven, pensez à rajouter votre pom !

    --> Le meilleur code est celui qui concrétise ce qui a été posé et analysé sur le papier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tomcat s'arrête après l'exécution d'une applet Java
    Par gebtun dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 06/06/2013, 09h55
  2. Verrouillage après exécution d'une requête
    Par jori dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/10/2007, 10h37
  3. [MySQL] Message après exécution d'une requête
    Par Alex70 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 20/09/2007, 14h41
  4. Revenir sur la cellule sélectionné après exécution d'une macro
    Par Daniel-Gérald dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/02/2007, 21h50
  5. Réponses: 9
    Dernier message: 18/10/2006, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo