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 :

Transformer un outputtext en inputtext


Sujet :

JSF Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 40
    Par défaut Transformer un outputtext en inputtext
    Bonjour à tous

    Je suis tout nouveau sur ce forum et je n'ai pas trouvé solution à ma question. J'espère ne pas avoir mal cherché

    Je test actuellement JSF/RICHFACES/FACELETS/SPRING/IBATIS et j'ai une question :
    Dans mon cahier des charges, je dois pourvoir, au sein d'une datatable, modifier n'importe quelle donnée sans l'apparition d'une fenêtre quelconque.
    Exemple, j'ai une ligne contenant :

    TOTO|TATA|TITI|modifier

    Les données de ma ligne sont "toto","tata","titi" et le bouton modifier sert a activer la modification de ces données.
    Est-ce possible que lors du clic sur le bouton modifier, les champ de ma ligne qui étaient des outputtext deviennent des inputtext modifiable ? (les inputtext contiendrai évidement les anciennes valeur "toto","tata","titi"

    Merci d'avance

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    avec rich:dataTable tu peux le faire.
    tu peux essayer avec de petits exemples et si tu as des problème, on peut t'aider..

  3. #3
    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
    Bonjour et bienvenue à toi,

    Vu que tu utilises RichFaces, je peux te conseiller de jeter un oeil sur le composant inplace input. Il s'agit d'un champ texte qui peut être modifié par un clic (ou double clic) dessus.
    Tu peux également utiliser une datatable pour disposer tes champs. D'ailleurs dans le lien précédent, tu as un exemple où sont mélangés la datatable et des inplace inputs.
    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

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 40
    Par défaut
    Citation Envoyé par romaintaz Voir le message
    Bonjour et bienvenue à toi,

    Vu que tu utilises RichFaces, je peux te conseiller de jeter un oeil sur le composant inplace input. Il s'agit d'un champ texte qui peut être modifié par un clic (ou double clic) dessus.
    Tu peux également utiliser une datatable pour disposer tes champs. D'ailleurs dans le lien précédent, tu as un exemple où sont mélangés la datatable et des inplace inputs.
    Bonjour, et merci de vos réponse rapides !

    Effectivement, j'avais trouvé la démo de la richdatatable et de l'inplaceinput. Si il n'y avais que moi, pas de souci, c'est une méthode qui me convient. l'ennui, c'est mon cahier des charges

    Il stipule que chaque ligne doit contenir un bouton supprimer (ça, c'est bon, je l'ai implémenté, ça fonctionne) et un bouton modifier.
    C'est la que j'ai mon souci, c'est l'appui sur ce bouton modifier qui doit permettre la saisie d'informations sur la ligne sans l'apparition d'une popup.
    L'exemple "Edit Table with ModalPanel" de la démo de la datatable ne s'applique donc pas.
    De même, un double clic ne s'applique pas non plus

    Ce que j'essaye de trouver actuellement, c'est une façon de faire a ce que l'inplaceinput ne soit pas modifiable sans avoir cliqué sur le bouton modifier. Une fois le clic sur ce bouton, l'inplaceinput deviendrai automatiquement un champ de texte. Peut être n'est-ce pas possible.

    Je ne sais plus trop ou chercher de l'info

    Si vous avez d'autre pistes, je suis prêt a creuser.

  5. #5
    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
    Bon, c'est dommage que tu ne puisses utiliser l'inplace input.

    Toutefois, voici une solution qui pourrait aider :

    Supposons que ta datatable itère sur des objets de classe Bidule.

    Soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <rich:datatable value="#{monBean.bidules}" var="record" ...>
        ...
    </rich:datatable>
    Une idée serait que le bouton "modifier" change la valeur d'un flag au niveau de Bidule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class Bidule implements Serializable {
     
        ...
     
        private boolean enModification = false;
        // Ajout des getters / setters isEnModification() et setEnModification(boolean);
    }
    Dans la méthode liée au bouton de modification :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public void modifieLigne(ActionListener al) {
        // Tu récupères la table rich:datatable...
        Bidule b = (Bidule) table.getRowData();
        b.setEnModification(true);
    }
    Puis tu modifies le code de ta datatable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <rich:datatable id="maTable" value="#{monBean.bidules}" var="record" ...>
        ...
        <rich:column>
            <f:facet name="header">Une colonne</f:facet>
            <h:outputText value="#{record.unTruc}" rendered="#{not record.enModification}"/>
            <h:inputText value="#{record.unTruc}" rendered="#{record.enModification}"/>
        </rich:column>
        <rich:column>
            <f:facet name="header">Actions</f:facet>
            <a4j:commandButton value="Modifier" actionListener="#{monBean.modifieLigne}" reRender="maTable"/>
        </rich:column>
    </rich:datatable>
    En gros, pour chaque colonne, tu as un outputText qui est affiché si, pour cet élément - le booléen enModification est à faux, ou un inputText s'il est à vrai.
    Quant au bouton modifier, il réalise l'appel à la méthode modifieLigne en Ajax puis rafraichit la table.

    Ca devrait pouvoir répondre à ton problème
    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

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 40
    Par défaut
    Merci beaucoup pour cette réponse.
    En effet, elle répond parfaitement à la problématique. je vais maintenant implémenter les autre solution évoquées (popup modale de modification, inplaceinput) et voir laquelle est la moins couteuse (développement et usage)

    Merci encore romaintaz et Sniper37!


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

Discussions similaires

  1. Transformation d'un outputText en selectOneMenu
    Par stephane92400 dans le forum JSF
    Réponses: 2
    Dernier message: 08/01/2007, 14h06
  2. [PERL] transformation de fichier
    Par bob20000 dans le forum Langage
    Réponses: 6
    Dernier message: 27/07/2006, 11h13
  3. transformer un jour en JJ/MM/AA
    Par gemini_010 dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 08/11/2002, 22h55
  4. Transformer un caractère en type énuméré
    Par HT dans le forum Langage
    Réponses: 3
    Dernier message: 22/10/2002, 20h46
  5. FFT(Fast Fourier Transform)
    Par IngBen dans le forum Traitement du signal
    Réponses: 6
    Dernier message: 23/05/2002, 16h35

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