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

Wicket Java Discussion :

afficher une page lorsque l'on clique sur un noeud pesonnalisé de l'arbre.


Sujet :

Wicket Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 173
    Points : 96
    Points
    96
    Par défaut afficher une page lorsque l'on clique sur un noeud pesonnalisé de l'arbre.
    Bonjour la liste,

    J'ai un arbre qui affiche une page lorsque l'on clique sur l'une de ses feuilles. Seulement une fois que j'ai personnalisé les icônes de cet arbre en surchargeant la méthode "newNodeComponent" lors de la déclaration de l'arbre, le clic sur les feuilles de l'arbre ne produisent plus aucun effet.

    A quoi est dû le problème ?
    Merci beaucoup d'avance pour votre aide.

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Salut,
    Comme tu surcharges newNodeComponent, il suffit que tu ajoutes un lien dans le composant/panel que tu retournes et que surcharges sa méthode onClick pour faire ce que tu veux.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 173
    Points : 96
    Points
    96
    Par défaut
    Citation Envoyé par djo.mos Voir le message
    Salut,
    Comme tu surcharges newNodeComponent, il suffit que tu ajoutes un lien dans le composant/panel que tu retournes et que surcharges sa méthode onClick pour faire ce que tu veux.
    Salut djo.mos,

    J'avoue ne pas bien comprendre la solution que tu me proposes. En fait le code de la déclaration de l'arbre est le suivant
    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
     tree = new LinkTree("treeId", myModel) {
     
     
    	    	   @Override 
    	    	   protected void onNodeLinkClicked ( Object node, BaseTree tree, AjaxRequestTarget target) {
     
    	    		   setResponsePage(new AgentsDetailPage());
     
    	    	   }
     
     
    	    	   // personnaliser les icônes de l'arbre
    	    	   @Override
    	    	   protected Component newNodeComponent(final String id, 
    	    			                                final IModel<Object> model){
    	    		   return new MyLabelIconPanel(id, model, this){
    	    			          private static final long serialVersionUID = 1L;
    	    			          @Override
    	    			          protected Component newContentComponent(final String componentId,
    	    			        		                                  final BaseTree tree,
    	    			        		                                  final IModel<Object> model){
    	    			        	  return super.newContentComponent(componentId, tree, getNodeTextModel(model));
    	    			          }
     
    	    		   };
     
    	    	   }
    	       };
    et celui de la classe MyLabelIconPanel est :
    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
    public class MyLabelIconPanel extends LabelIconPanel {
     
    		public MyLabelIconPanel(String id, IModel<Object> model, BaseTree tree) {
    			super(id, model, tree);
    			// TODO Auto-generated constructor stub
    		}
     
    		private static final long serialVersionUID = 1L;
     
    		//personnalise l'icone de la racine lorsque l'arbre est déplié
    		@Override
    		protected ResourceReference getResourceFolderOpen (Object node){
     
    			return new ResourceReference (MyLabelIconPanel.class, "racine.png");
    		}
    		//personnalise l'icone de la racine lorsque l'arbre est replié
    		@Override
    		protected ResourceReference getResourceFolderClosed (Object node){
     
    			return new ResourceReference (MyLabelIconPanel.class, "racine.png");
    		}
    		//personnalise l'icone des feuilles
    		@Override
    		protected ResourceReference getResourceItemLeaf(Object node) {
    			return new ResourceReference (MyLabelIconPanel.class, "feuille.gif");
    	    }
    	}
    Comment puis-je modifier cela pour afficher une page en cliquant sur une feuille de l'arbre dont les icônes sont personnalisées.

    Merci beaucoup d'avance.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 173
    Points : 96
    Points
    96
    Par défaut
    La solution au problème est la suivante :

    la classe "MyLabelIconPanel" doit étendre "LinkIconPanel". Ensuite il faudra surcharger la méthode onNodeLinkClicked de cette classe.

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

Discussions similaires

  1. [Cocoa] Afficher une page lorsqu'on clic sur un cell d'une tableview
    Par searchsport dans le forum XCode
    Réponses: 0
    Dernier message: 20/08/2013, 22h50
  2. Ouvrir une page des qu'on clique sur une banniere
    Par max1395 dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 17/12/2008, 17h19
  3. Afficher une image lorsque la souris passe sur un lien
    Par 1tox dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 04/02/2008, 09h09
  4. Réponses: 3
    Dernier message: 13/11/2006, 20h38
  5. Afficher une image lorsque la souris passe sur un lien
    Par cyrillique dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 18/09/2006, 19h38

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