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 :

Naviguer entre onglets (TabView) en cliquant sur un bouton


Sujet :

JSF Java

  1. #1
    Membre confirmé Avatar de azassma
    Femme Profil pro
    Ph.D - Computer Vision
    Inscrit en
    Avril 2012
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ph.D - Computer Vision
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 159
    Par défaut Naviguer entre onglets (TabView) en cliquant sur un bouton
    Bonjour,
    J'ai une page qui contient plusieurs onglets (tabview primefaces) et je veux quand je rempli le formulaire d'une onglet et que je clique sur confirmer, je passe à un autre onglet.

    Voila le code de la page qui contient mes onglets :
    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
     
                <h:panelGrid  style="font-size: 12px;">
                    <p:tabView>
                        <p:tab title="Constater affaire">
                            <ui:include src="constatationAffaire.xhtml"/>
                        </p:tab>
                        <p:tab title="Infracteurs">
                            <ui:include src="infracteursPhysique.xhtml"/>
                        </p:tab>
                        <p:tab title="Infractions">
                            <ui:include src="infractions.xhtml"/>
                        </p:tab>
                        <p:tab title="Verbalisateurs">
                            <ui:include src="verbalisateurs.xhtml"/>
                        </p:tab>
                    </p:tabView>
                </h:panelGrid>
    Je suis dans l'onglet "constater affaire" et je veux atteindre l'onglet "infracteurs" en cliquant sur le bouton "Confirmer"
    Voila le code la page constatationAffaire.xhtml
    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
     
        <ui:composition>
            <center>
                <h:form>
                    <p:panel style="width: 900px;height: 625px;margin-top: 8px; font-size: 13px;">
                        <br/>
     
                        <div class="divGlobal">
                            <h:panelGrid columns="2" style="height: 50px;">
     
                                <p:selectOneRadio id="options" style="width:770px;">
                                    <f:selectItem itemLabel="Affaire de bureau" itemValue="1"/>
                                    <f:selectItem itemLabel="Affaire de campagne" itemValue="2" />
                                </p:selectOneRadio>
     
                            </h:panelGrid>
     
                            <h:panelGrid columns="4" style="height: 100px;float: left;margin-left: 10px">
                                <h:outputLabel value="Mode opératoire" />
                                <p:inputTextarea rows="5" cols="33" value="#{AffaireMBean.modeOperatoire}" style="margin-left: 87px;width: 610px"/>
                            </h:panelGrid>
                            <h:panelGrid columns="2" style="height: 60px;text-align: center;">
                                <p:commandButton value="Confirmer" style="width: 180px;" action="#{AffaireMBean.constationAffaire}"/>
                                <p:commandButton value="Rétablir" style="width: 180px;margin-left: 20px"/>
                            </h:panelGrid>
                        </div>
                    </p:panel>
                </h:form>
            </center>
        </ui:composition>
    </html>
    S'il vous plait si vous pouvez m'aider ? Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    Je vois que tu utilises la bibliothèque Primefaces.

    Ils ont développé un composant qui correspond exactement à ton besoin : Le Wizard.

    Il te sera très pratique pour réaliser des tâches comme la vérification des données pour passer d'une étape à une autre.

    Mais si tu n'a pas envie de changer de composant, tu as tout de même une astuce, en regardant la documentation, si tu te rend à la partie concernant les tabview, tu pourras voir une sous-partie appelée "Client Side API".
    Cette partie t'indique les méthodes disponibles pour le composant et ce depuis le côté client (ta page xhtml).

    En gros, il te suffirait de faire par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <p:commandButton value="Confirmer" style="width: 180px;" action="#{AffaireMBean.constationAffaire}" oncomplete="mon_tabview_widgetvar.select(index_voulu)"/>
    Mais la meilleure solution reste l'utilisation du Wizard, car cette dernière méthode, te passera à l'onglet suivant quoiqu'il arrive (à moins que tu décides de te compliquer la tâche avec des "handles").

  3. #3
    Membre confirmé Avatar de azassma
    Femme Profil pro
    Ph.D - Computer Vision
    Inscrit en
    Avril 2012
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ph.D - Computer Vision
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 159
    Par défaut
    Meeeeeeeeeeeeeeeerci beaucoup c'est résolu

    Mais il reste un petit problème c'est que lorsque ça passe à l'autre onglet la méthode appelée par action du bouton ne s’exécute pas !!!

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    Tu as utilisée laquelle de mes solutions ? Le Wizard ?

    Pourrais-tu nous poster ton code xhtml, et la méthode associée de ton bean ?

  5. #5
    Membre confirmé Avatar de azassma
    Femme Profil pro
    Ph.D - Computer Vision
    Inscrit en
    Avril 2012
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ph.D - Computer Vision
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 159
    Par défaut
    Voila le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h:panelGrid id="constatationaffaire" columns="2" style="height: 60px;text-align: center;margin-top: 100px">
                                <p:commandButton value="Confirmer" style="width: 180px;" action="#{AffaireMBean.constationAffaire}" oncomplete="tabCreationAffaire.select(1)"/>
                                <p:commandButton value="Rétablir" style="width: 180px;margin-left: 20px"/>
                            </h:panelGrid>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    <p:tabView widgetVar="tabCreationAffaire">
                        <p:tab title="Constater affaire" >
                            <ui:include src="constatationAffaire.xhtml"/>
                        </p:tab>
                        <p:tab title="Infractions">
                            <ui:include src="infractions.xhtml"/>
                        </p:tab>
                        <p:tab title="Verbalisateurs">
                            <ui:include src="verbalisateurs.xhtml"/>
                        </p:tab>
    </p:tabView>

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    C'est la méthode "constationAffaire" qui ne s’exécute pas ?

    Pourrais-tu nous donner le code de celle-ci ?

  7. #7
    Membre confirmé Avatar de azassma
    Femme Profil pro
    Ph.D - Computer Vision
    Inscrit en
    Avril 2012
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ph.D - Computer Vision
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 159
    Par défaut
    Oui c'est cette méthode et voila son code

    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
     
    private AffaireSessionBean emGe;
     
     public void constationAffaire() {
            affaire.setModeOperatoire(modeOperatoire);
            Stadecontrole sc = new Stadecontrole();
            Categorieaffaire ca = new Categorieaffaire();
     
            sc.setStadeConrole(stadeControle);
            ca.setCategorie(categorieAffaire);
     
            affaire.setStadeConrole(sc);
            affaire.setCategorie(ca);
     
            this.affaire = emGe.edit(affaire);
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     @PersistenceContext(unitName = "CONTENTIEUX-APP-ejbPU")
        private EntityManager em;
     
    public Affaire edit(Affaire object) {
            Affaire updated = em.merge(object);
            return updated;
        }
    Merci

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    Pourrais-tu essayer en modifiant la signature de ta méthode comme indiqué ci-dessous ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public void constationAffaire(ActionEvent event) {
            affaire.setModeOperatoire(modeOperatoire);
            Stadecontrole sc = new Stadecontrole();
            Categorieaffaire ca = new Categorieaffaire();
     
            sc.setStadeConrole(stadeControle);
            ca.setCategorie(categorieAffaire);
     
            affaire.setStadeConrole(sc);
            affaire.setCategorie(ca);
     
            this.affaire = emGe.edit(affaire);
        }

  9. #9
    Membre confirmé Avatar de azassma
    Femme Profil pro
    Ph.D - Computer Vision
    Inscrit en
    Avril 2012
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ph.D - Computer Vision
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 159
    Par défaut
    et lorsque je veux appeler la méthode constatationaffaire qu'est ce que je vais y mettre comme argument ?

    Merci pour votre aide

  10. #10
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    Tu n'as pas à changer l'appel de ta méthode, l'objet ActionEvent est inséré automatiquement par une des couches intermédiaires entre l'appel client et la réception serveur.

  11. #11
    Membre confirmé Avatar de azassma
    Femme Profil pro
    Ph.D - Computer Vision
    Inscrit en
    Avril 2012
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ph.D - Computer Vision
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 159
    Par défaut
    mais lorsque je fait comme dans ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h:panelGrid id="constatationaffaire" columns="2" style="height: 60px;text-align: center;margin-top: 100px">
                                <p:commandButton value="Confirmer" style="width: 180px;" action="#{AffaireMBean.constationAffaire}" oncomplete="tabCreationAffaire.select(1)"/>
                                <p:commandButton value="Rétablir" style="width: 180px;margin-left: 20px"/>
                            </h:panelGrid>
    Il ne connait pas la méthode puisque j'ai définit dans le bean une méthode avec un argument comme vous avez indiqué.

  12. #12
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    Citation Envoyé par azassma Voir le message
    mais lorsque je fait comme dans ce code
    Il ne connait pas la méthode puisque j'ai définit dans le bean une méthode avec un argument comme vous avez indiqué.
    Comme je l'ai indiqué dans le post précédent, les appels de méthodes ne sont pas rigoureusement identiques aux signatures de méthodes coté serveur, car Primefaces s’intercale entre l'appel et la réception pour faire différents traitement, notamment instancier des objets de type ActionEvent, ou RowEditEvent, ...

    Si en effectuant le test, ça n'a pas été concluant, je te conseille d'essayer mais cette fois-ci avec un actionListener :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <p:commandButton value="Confirmer" style="width: 180px;" actionListener="#{AffaireMBean.constationAffaire}" oncomplete="mon_tabview_widgetvar.select(index_voulu)"/>
    et de le tester avec une signature de méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    constationAffaire(ActionEvent event)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    constationAffaire()

  13. #13
    Membre confirmé Avatar de azassma
    Femme Profil pro
    Ph.D - Computer Vision
    Inscrit en
    Avril 2012
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ph.D - Computer Vision
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 159
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     <p:commandButton value="Confirmer" 
                                                 actionListner="#{AffaireMBean.constationAffaire}"
                                                 oncomplete="tabCreationAffaire.select(1)" style="width: 180px;"/>
    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
     
    public void constationAffaire(ActionEvent event) {
            affaire.setModeOperatoire(modeOperatoire);
            Stadecontrole sc = new Stadecontrole();
            Categorieaffaire ca = new Categorieaffaire();
     
            sc.setRefStadeConrole(stadeControle);
            ca.setRefCategorie(categorieAffaire);
     
            affaire.setRefStadeConrole(sc);
            affaire.setRefCategorie(ca);
     
            this.affaire = emGe.edit(affaire);
     
        }
    mais ça ne marche pas .....
    Merci de m'avoir répondu

  14. #14
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    apres actionListner="#{AffaireMBean.constationAffaire}" ajoute immediate ="true" pour voir si cela s´execute.
    Eric

  15. #15
    Membre confirmé Avatar de azassma
    Femme Profil pro
    Ph.D - Computer Vision
    Inscrit en
    Avril 2012
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ph.D - Computer Vision
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 159
    Par défaut
    Merci jeffray03 mais ça ne marche pas

  16. #16
    Membre confirmé Avatar de azassma
    Femme Profil pro
    Ph.D - Computer Vision
    Inscrit en
    Avril 2012
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ph.D - Computer Vision
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 159
    Par défaut
    Il n y a pas de solutions ???


  17. #17
    Membre confirmé Avatar de azassma
    Femme Profil pro
    Ph.D - Computer Vision
    Inscrit en
    Avril 2012
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ph.D - Computer Vision
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 159
    Par défaut
    C'est résoluuuuuuuuuu !!!
    Et voila la solution

    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
     
    <h:panelGrid id="constatationaffaire" columns="2" style="height: 60px;text-align: center;margin-top: 100px">
                                <p:commandButton value="Confirmer" style="width: 180px;" 
                                                 onclick="confirmation.show()" type="button"
                                                 />
     
                                <p:commandButton value="Rétablir" style="width: 180px;margin-left: 20px"/>
                                <p:confirmDialog message="Voulez vous enregistrer les modifications ?"  
                                                 header="Confirmation" severity="alert" widgetVar="confirmation">  
     
                                    <p:commandButton id="confirm" value="Oui" onclick="confirmation.hide();" oncomplete="tabCreationAffaire.select(1)"  
                                                    action="#{AffaireMBean.constationAffaire}" />  
                                    <p:commandButton id="decline" value="Non" onclick="confirmation.hide()" type="button" />   
     
                                </p:confirmDialog>  
                            </h:panelGrid>
    Je crois qu'il s'agit d'un problème de redirection de pages que je viens de résoudre et par conséquent tous les autres problèmes sont résolus. Merci pour ceux qui m'ont bien aidé à trouver la solution pour ce sujet.

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

Discussions similaires

  1. Dessiner en cliquant sur un bouton
    Par had182 dans le forum MFC
    Réponses: 4
    Dernier message: 22/01/2006, 21h26
  2. SDI - changer de vue en cliquant sur un bouton
    Par Psykotik dans le forum MFC
    Réponses: 3
    Dernier message: 29/11/2005, 16h09
  3. placer un texte dans une textarea en cliquant sur un bouton
    Par BernardT dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/11/2005, 17h17
  4. Réponses: 4
    Dernier message: 14/11/2005, 15h58
  5. Réponses: 5
    Dernier message: 18/10/2005, 20h55

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