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 :

la methode org.apache.wicket.markup.html.basic.Label.setModelObject() n'existe plus?


Sujet :

Wicket Java

  1. #1
    Membre très actif
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 354
    Billets dans le blog
    1
    Par défaut la methode org.apache.wicket.markup.html.basic.Label.setModelObject() n'existe plus?
    Bonjour
    J'ai bien tout installé, mais aucune complétion n'existe pour cette méthode, elle n'existe plus ?

  2. #2
    Membre émérite

    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    hum, quand existait elle préalablement ?

    pour la petite histoire, get/setModelObject a une histoire mouvementée avec le passage aux génériques de wicket 1.4.

    Il y a en effet eu plusieurs itérations (et d'intenses discussions sur la mailing list, cf http://old.nabble.com/generics-td180...html#a18083910) afin de savoir comment passer aux génériques.

    La solution retenue est la suivante : tous les composants héritent de Component la méthode suivante (et ses consoeurs en setXX bien sûr) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public final Object getDefaultModelObject()
    tandis que les composants qui sont en plus "générifiés" gagnent en plus la méthode suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    @SuppressWarnings("unchecked")
    	public final T getModelObject()
    	{
    		return (T)getDefaultModelObject();
    	}
    Or, dans le cas de Label, sa forme finale n'a pas été générifiée, comme on peut le voir dans sa déclaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class Label extends WebComponent
    contrairement à Link par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public abstract class Link<T> extends AbstractLink implements ILinkListener
    Du coup, il n'y a que les méthodes en set/getDefaultModelXxx() qui s'y trouvent.

    Pour en revenir à ta question initiale, utilise plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public final Component setDefaultModelObject(final Object object)
    Enfin, il est aisément possible de "générifier" une classe qui ne l'est pas, cf : http://old.nabble.com/RE%3A-Panel-no...p25363057.html

    en espérant avoir aidé
    ++
    voili

  3. #3
    Membre très actif
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 354
    Billets dans le blog
    1
    Par défaut
    merci

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

Discussions similaires

  1. Erreur "Could not resolve class: org.apache.wicket.Initializer"
    Par pcouas dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 16/10/2012, 06h34
  2. Réponses: 1
    Dernier message: 26/08/2010, 16h22
  3. Réponses: 5
    Dernier message: 24/04/2009, 09h16
  4. Réponses: 2
    Dernier message: 09/08/2007, 16h36
  5. Réponses: 4
    Dernier message: 17/07/2007, 13h30

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