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

JSF Java Discussion :

Action d'un backed bean après un DblClick - SelectManyListBox - JSF


Sujet :

JSF Java

  1. #1
    Membre régulier
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Par défaut Action d'un backed bean après un DblClick - SelectManyListBox - JSF
    Bonjour à tous,

    je recherche un moyen d'appeler une action d'un backed bean après un double click de l'utilisateur sur ma listbox (ice:selectManyListbox).

    j'utilise JSF avec ICEfaces.

    le principal problème est qu'un MouseEvent n'a pas pour classe mère ActionEvent. Et les ActionEvent sont les seuls paramètres possibles pour les actions des beans, dont on renseigne le champs dans les Actionlistener des jsp.

    j'ai aussi cherché du coté des propriétés ondblclickeffect et ondblclick, mais cela n'a rien donné

    Y'aurait-il un moyen détourné?


    ps = je souhaite faire ça, car je possède deux listes, la première affiche la liste des choix possible pour le user, et la seconde récupère la sélection effectuée par le user. Le passage de la première à la seconde s'effectue pour l'instant grâce à un bouton, je souhaiterai ajouter un appel à la même fonction grace à un double click (onDblClick = document.getElementById('id_bouton).click n'appelle pas la fonction du bean en question)


    merci d'avance

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Tu peux nous montrer ton code ?

    Sinon, tu veux forcément passer par une action Java ? Tu peux aussi te limiter à du JavaScript pour réaliser ceci...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Membre régulier
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Par défaut
    Merci pour ta réponse,

    Oui effectivement, je voulais passer par une action java, celle qui est déjà appeler lors d'un click sur un bouton, mais si il y a un moyen d'obtenir le même résultat en JS, je suis preneuse aussi.

    Concernant mon code, j'affiche dans la JSP, deux liste : les flux à choisir (listFluxRefs) et les flux Choisis (listFluxRefsChosen). Ce sont toutes deux des objets de mon bean Dashboard. Une troisième liste permet la récupération des items choisi dans l'une des deux listes, c'est listFluxRefsChosenTmp.

    Voici le code de la JSP :

    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
    <tr  >
           <td >
                  <ice:selectManyListbox rendered="#{!dashBoard.allFlows}" name="list_fluxrefs" id="list_fluxrefs" style="width:150px; height:100px;" 
    layout="pageDirection"  value="#{dashBoard.listFluxRefsChosenTmp}" ondblclickeffect ="#{dashBoard.addFluxChosen}">
                         <f:selectItems  value="#{dashBoard.listFluxRefs}" />
                  </ice:selectManyListbox>
           </td>
           <td style="text-align : center;">
                 <ice:commandButton  rendered="#{!dashBoard.allFlows}"  value="&gt;" actionListener="#{dashBoard.addFluxChosen}" id="add"/>
                 <br/>
                 <ice:commandButton  rendered="#{!dashBoard.allFlows}"  value="&lt;" actionListener="#{dashBoard.removeFluxChosen}" id="remove"/>
            </td>
            <td >
                 <ice:selectManyListbox   rendered="#{!dashBoard.allFlows}" id="list_fluxrefsChosen" style="width:150px; height:100px;" layout="pageDirection"  value="#{dashBoard.listFluxRefsNoMoreChosenTmp}" >
                         <f:selectItems  value="#{dashBoard.listFluxRefsChosen}" />
                 </ice:selectManyListbox>
            </td>
    </tr>

    et le code de mon Bean (je vous épargne les getters and setters des listes) : la fonction addFluxChosen

    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
     
     
    public void addFluxChosen(ActionEvent event){
     
           //ajout des nouvelles lignes dans les flux choisis
           int i;
           for( i = 0; i<listFluxRefsChosenTmp.size(); i++){
    	if(listFluxRefsChosen==null)
    	         listFluxRefsChosen = new Vector<SelectItem>();
    	listFluxRefsChosen.add(new SelectItem(listFluxRefsChosenTmp.get(i)));
            }
     
           //suppression des items dans le tableau de selectitem
           for(i = 0; i<listFluxRefsChosenTmp.size(); i++){
    	for(int k = 0; k<listFluxRefs.size(); k++){
    	        if(listFluxRefs.elementAt(k).getLabel().equals(listFluxRefsChosenTmp.get(i))){	
    		listFluxRefs.removeElementAt(k);
    		break;
    	        }
    	}
             }	
    }

    voilà, donc comme je l'ai dis dans le message initial, j'ai essaye de clicker sur le bouton via du javascript, ou de chercher du coté des Mouse Event ...

    si vous avez une idée, quite à écrire des fonction JS (du moment que l'archi coté serveur (bean) reste identique).

    Merci

  4. #4
    Membre régulier
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Par défaut
    j'ai lu quelque petites choses sur ajax4jsf, est-ce que ça pourrait être unse solution à mon problème, est-ce que cela peut etre utilisé avec IceFaces ou non?

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/03/2014, 09h01
  2. JSCookMenu action backing bean
    Par mereyj dans le forum JSF
    Réponses: 4
    Dernier message: 26/04/2010, 17h23
  3. Diffèrence Managed bean et backing bean
    Par BRAUKRIS dans le forum JSF
    Réponses: 2
    Dernier message: 25/11/2006, 08h49
  4. Réponses: 2
    Dernier message: 27/07/2006, 10h30
  5. [Debutant][JSF] backing bean
    Par Shivan dans le forum JSF
    Réponses: 1
    Dernier message: 15/02/2006, 18h09

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