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 un composant


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 114
    Par défaut Etendre un composant
    Comment faire pour étendre un composant, richface par exemple.
    Dans mon cas, je souhaite créer un composant réutilisable à partir du tree de richfaces en faire un CheckboxTree (une case à cocher à chaque noeud).
    J'ai déjà créé des composants facelets par composition ou components mais là je suis un peu perdue ...

  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
    Bonjour,

    Pour faire simple :

    Tu crées un objet composant qui étendra le composant Tree de RichFaces.
    Tu crées un objet renderer qui étendra le renderer Tree de RichFaces.
    Si tu utilises Facelets, tu ajoutes la définition de ces classes dans le fichier XML (tu peux voir ça ici)...

    Regarde déjà ça, et reviens nous voir si tu as des soucis
    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 confirmé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 114
    Par défaut
    Bon en fait ce n'est pas le composant Tree que j'ai besoin d'étendre mais plutôt TreeNode.
    Ca marche comme je veux mais il y a un truc qui me chiffone, je ne comprends pas pourquoi, la méthode processRestoreState fait une ClassCastException, il faut que je le code comme ça (vu ici).
    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 class HtmlCheckboxTreeNode extends HtmlTreeNode {
    ....
    	public void processRestoreState(FacesContext context, Object state) {
    		 Object[] values = (Object[]) state;
    		 Integer savedChildCount = (Integer) values[1];
    		 for (int i = getChildCount() - savedChildCount.intValue(); i > 0;
    		 i--) {
    		 getChildren().remove(0);
    		 }
    		 super.processRestoreState(context, values[0]);
    //		super.processRestoreState(context, state);
    	}
    }

  4. #4
    Membre confirmé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 114
    Par défaut
    Je n'arrive vraiment pas à ce que je veux. J'ai réussi à créer un composants TreeNode spécifique avec une case à cocher. Mais dès que je veux ajouter le support ajax en ajoutant un child HtmlAjaxSupport (a4j:support) pour que lorsque la case de plus haut est cochée, tous les enfants soient cochés et inversement, le reRender ne fonctionne pas ...
    Je crois que le problème se situe au niveau de processSaveState et processRestoreState et le fait qu'on enlève les enfants insérés.

    Mais comme je n'ai pas compris pourquoi on ne peut pas faire le save et le restore avec les enfants, ...
    J'arrête là la perte de temps, je reviendrais dessus si quelqu'un à une piste à me donner ... n'hésitez pas, je suis de plus en plus perplexe ...

Discussions similaires

  1. Etendre des composants WoodStock
    Par fxrobin dans le forum JSF
    Réponses: 3
    Dernier message: 31/10/2008, 13h56
  2. Réponses: 1
    Dernier message: 23/06/2002, 00h15
  3. Redéfinir l'événement OnExit de mon composant TEditFloat
    Par Seb des Monts dans le forum C++Builder
    Réponses: 5
    Dernier message: 18/06/2002, 16h10
  4. Installer ses composants
    Par Geronimo dans le forum C++Builder
    Réponses: 14
    Dernier message: 18/06/2002, 14h51
  5. Re-dimensionnement automatique de composants
    Par ludo_7 dans le forum C++Builder
    Réponses: 10
    Dernier message: 16/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