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 :

Etendre des composants WoodStock


Sujet :

JSF Java

  1. #1
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut Etendre des composants WoodStock
    Bonjour,

    j'ai lu plusieurs tutoriaux pour étendre des composants "core" de JSF.
    Pas de problème à ce sujet

    Est-ce que je peux étendre de la même manière des composants WoodStock ou RichFaces ? Est-ce le même principe que pour les Core Components ,ou y a-t-il une limitation ?

    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
    Personnellement, je l'ai fait souvent sur des composants RichFaces.
    Il te suffit d'étendre le composant de RF ainsi que son Renderer, et de les définir dans le faces-config.xml et le taglib.xml (dans le cas où tu utiliserais Facelets)...
    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 Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Merci beaucoup pour la réponse rapide, c'est bien ce que je pensais.

    Je ne crois pas que WoodStock soit différent de RichFaces et donc que c'est applicable de la même façon.

    Quand tu étends le renderer, est-ce que tu re-exploites ce que le renderer de la classe mère est capable de faire ? ou tu recodes l'ensemble du renderer ?
    Si tu ré-exploites, comment insérer du Markup dans des zones déjà traitées par la classe mère ?

    Aurais-tu des liens à ce sujet ?

  4. #4
    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
    Citation Envoyé par fxrobin Voir le message
    Quand tu étends le renderer, est-ce que tu re-exploites ce que le renderer de la classe mère est capable de faire ? ou tu recodes l'ensemble du renderer ?
    Ca dépend tout à fait de ce que je souhaite faire faire à mon composant...
    Parfois je vais faire mon propre rendu, sans tenir compte de celui qui aurait été réalisé par RF, d'autres fois je vais faire du travail supplémentaire en plus de celui qui est réalisé par le composant RF...

    Citation Envoyé par fxrobin Voir le message
    Si tu ré-exploites, comment insérer du Markup dans des zones déjà traitées par la classe mère ?
    Tu veux dire comment intervenir sur quelque chose créé par la classe mère, genre le code HTML généré ?
    Ce n'est pas vraiment possible... mais là c'est du cas par cas.
    Par exemple, il se peut que pour réaliser le rendu d'une partie du composant, le doEncodeBegin() fasse appel à une autre méthode. Il suffit (sauf si elle est marquée comme private) de l'étendre afin qu'elle fasse ce que tu veux.
    Mais généralement ce n'est pas possible.
    J'ai par exemple eu besoin de redéfinir mon propre modalPanel. Du coup, comme je voulais agir sur le HTML généré, j'ai recopié le code source du doEncodeBegin du modalPanel en le mettant à ma sauce. Mais c'est sûr que c'est crados (surtout que si tu migres de version de RF, il te faut adapter à nouveau le code).

    Citation Envoyé par fxrobin Voir le message
    Aurais-tu des liens à ce sujet ?
    Pas vraiment non...
    Il y a quelques tutos sur le net qui t'expliquent comment créer un composant custom, mais pas sur la façon d'en étendre des existants. Mais bon, ce n'est pas méchant, faut juste choper le coup !
    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

Discussions similaires

  1. [Delphi] Icone des composants dans la palette
    Par jacquesberger dans le forum Composants VCL
    Réponses: 2
    Dernier message: 13/04/2004, 15h42
  2. [MFC] acces a des composants
    Par abignon dans le forum MFC
    Réponses: 7
    Dernier message: 26/03/2004, 11h58
  3. [Kylix] Trouver des composants pour Kylix 3
    Par busy999 dans le forum EDI
    Réponses: 2
    Dernier message: 17/02/2003, 14h01
  4. Réponses: 1
    Dernier message: 26/01/2003, 15h13
  5. Réponses: 1
    Dernier message: 02/01/2003, 12h45

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