> >I should build the form inside a component instead the page. And I
> >should keep a reference
> >to the dynamic model inside this component.
> Not what I try to mean.


So what's the way?



> 
> your report:
> >But as I have to build the form I do not have a dynamic model on page.
> You can have your model, and you can have your component build logic.


mmmm


> 
> you report:
> 
> >So no matter what's the value it will get not updated to
> >the new one.
> so i think you are working on diferent answer instances
> can you send some buildForm(answer) lines?


Yes but's somewhat large, anyway answer has got from the code I sent
earlier. But it got not
updated because this code goes in the constructor that never gets
called.

Here goes the code:


        public void buildForm(SurveyAnswer answer)
        {

                List<SurveyQuestion> listQuestions = getQuestionList(1); // 
FIXIT: How
do we get this questionaire?

                if(listQuestions!=null && listQuestions.size()>0)
                {

                        int category = -1;
                        QuestionCategoryComponent categoryComponent = null;

                        /*
                         * We add category containers to the component array and
                         * questions to the category containers.
                         * 
                         */
                        for(Iterator<SurveyQuestion> iter = 
listQuestions.iterator();
iter.hasNext();)
                        {
                                SurveyQuestion question = iter.next();

                                // Check if we should start a new category
                                if(category !=
question.getSurveyQuestionCategory().getIdSurveyQuestionCategory())
                                {
                                        log.debug("Category: " +
question.getSurveyQuestionCategory().getQuestionCategoryDescription());
                                        categoryComponent = new
QuestionCategoryComponent("surveyComponent",
question.getSurveyQuestionCategory().getQuestionCategoryDescription());
                                        components.add(categoryComponent);
                                        category =
question.getSurveyQuestionCategory().getIdSurveyQuestionCategory();
                                }

                                if(categoryComponent!=null)
                                {
                                        SurveyQuestionResponse response = null;
                                        if(answer!=null)
                                        {
                                                response = 
surveyAnswerFactory.getResponse(question, answer);
                                                
if(response.getIdSurveyQuestionResponse()==null)
                                                {
                                                        log.info("Creating a 
new answer for this question");

                                                        
surveyQuestionResponseDAO.save(response);

                                                }
                                        }

                                        // Each question component holds 
question and answer
                                        try {

categoryComponent.add(QuestionComponentFactory.getComponent(question,
response));
                                        } catch (ComponentTypeException e) {
                                                try {
                                                        warn("Response for 
question: " +
question.getSurveyQuestionDescription() + " has incorrect response!");

categoryComponent.add(QuestionComponentFactory.getComponent(question));
                                                } catch (ComponentTypeException 
e1) {
                                                        log.error("Cannot 
create component");
                                                }
                                        }
                                }


                        }

                }
        }


> 

Reply via email to