Ok, so I try with your method. This is my model :

public class QuestionnaireModel extends
LoadableDetachableModel<Questionnaire> {
    @SpringBean
    private ServiceQuestionnaire serviceQuestionnaire;
    private Long id;

    public QuestionnaireModel(Long primaryKey) {
        id = primaryKey;
    }

    @Override
    protected Questionnaire load() {

        return serviceQuestionnaire.getOne(id);
    }
}

But I have a null pointer exception :
java.lang.NullPointerException
    at
fr.statlife.protoE4N.pages.membre.QuestionnaireModel.load(QuestionnaireModel.java:22)
    at
fr.statlife.protoE4N.pages.membre.QuestionnaireModel.load(QuestionnaireModel.java:1)
    at
org.apache.wicket.model.LoadableDetachableModel.getObject(LoadableDetachableModel.java:120)
    at
org.apache.wicket.Component.getDefaultModelObject(Component.java:1724)
    at
fr.statlife.protoE4N.pages.membre.QuestionnairesPage$BoutonRemplirQuestionnaire$1.onClick(QuestionnairesPage.java:112)
    [...]

Questionnaire is also an attribute of my Page and maybe there is a conflict.
This code calls my new model :
     item.add(new BoutonRemplirQuestionnaire("boutonQuestionnaire",  new
QuestionnaireModel(q.getIdQuestionnaire())));

and this is inner class BoutonRemplirQuestionnaire :
    class BoutonRemplirQuestionnaire extends Panel
    {
        public BoutonRemplirQuestionnaire(String id, IModel<?> model) {
            super(id, model);

            //Ajout du lien qui affichera le questionnaire
            AjaxLink<Void> showQuestionnaire = new AjaxLink<Void>("remplir")
{
                @Override
                public void onClick(AjaxRequestTarget target) {
                    qCourant =
(Questionnaire)getParent().getDefaultModelObject();


target.appendJavascript("Wicket.Window.unloadConfirmation = false;");

questionnaireContentPanel.initialiserQuestionnaire(qCourant);
                    modalWindow.setContent(questionnaireContentPanel);
                    modalWindow.setTitle(qCourant.getTitre());
                    modalWindow.show(target);
                }
            };
            add(showQuestionnaire);
        }
    }

the NullPointerException is sent by this line :
       qCourant = (Questionnaire)getParent().getDefaultModelObject();

Maybe modal window make this problem more complex...

Reply via email to