Igor,

   So basically you are saying to do something like
this (in pseudocode):

if (CHECKBOX)
    add(new CheckboxPanel("formPanel"));
else if (SELECT)
    add(new SelectPanel("formPanel"));
...

and then in the HTML:

<form...>
   <span wicket:id="formPanel"/>
</form>

Is this correct?

Thanks!

Andrew



--- Igor Vaynberg <[EMAIL PROTECTED]> wrote:

> If you take this approach you have to add all
> possible element to the
> listitem and mark them as hidden. In my opinion, a
> better approach would be
> to create a panel for each question type and only
> add the proper panel. This
> approach will avoid the problem you are currently
> having. It also makes it
> very easy to add other question types since all you
> would have to do is
> provide a different panel as opposed to editing an
> existing template to add
> the new html.
> 
> -Igor 
> 
> > -----Original Message-----
> > From: [EMAIL PROTECTED] 
> > [mailto:[EMAIL PROTECTED]
> On Behalf Of 
> > Andrew Berman
> > Sent: Thursday, October 06, 2005 11:26 AM
> > To: [email protected]
> > Subject: [Wicket-user] Dynamic HTML Element
> Creation
> > 
> > My application allows users to set up questions
> and valid 
> > responses for those questions, which are
> subequently saved ot 
> > the db.  Along with the question is the ability to
> state what 
> > type of HTML element the responses should show as.
>  For 
> > example, if the question is designated as
> CHECKBOX, then the 
> > responses should all show as checkboxes.  
> > 
> > When I display the questions that are in the
> database, I loop 
> > through the questions and based on what type they
> are, build 
> > the proper component.  However, the issue comes in
> because in 
> > the HTML, I have every type of HTML form element
> that the 
> > question could be.  So, let's say quesiton one is
> a CHECKBOX, 
> > when it goes through the HTML, it also finds
> wicket ids of 
> > multiSelect, select, etc., but these do not exist
> in the 
> > current ListItem, only checkbox does, so Wicket
> throws an 
> > exception.  Basically, I need an "if this id
> exists, do this, 
> > otherwise, skip it."  Am I going to have to custom
> build 
> > something to do this, or is there maybe something
> I'm missing 
> > or some other way to accomplish this.
> > 
> > Thanks for any help you can give,
> > 
> > Andrew
> > 
> > Here is some code that may help out with my
> explanation.  In 
> > the page code I do this:
> > 
> > add(new ListView("categoryQuestions",
> > categoryQuestions) {
> > 
> >                 @Override
> >                 protected void
> populateItem(ListItem
> > item) {
> >                     CategoryQuestion cq =
> > (CategoryQuestion) item
> >                             .getModelObject();
> >                     
> >                     ResponseType type =
> > cq.getResponseType();
> >                     List<CategoryQuestionResponse>
> 
> > cqResponses = new
> ArrayList<CategoryQuestionResponse>(
> >                            
> cq.getValidResponses());  
> >                 
> > 
> >                     if
> > (type.equals(ResponseType.CHECKBOX)) {
> >                         item.add(new
> > CheckBoxMultipleChoice("checkbox", cqResponses,
> >                                 new
> > ChoiceRenderer("response.text", "id")));
> >                     } else if
> > (type.equals(ResponseType.DROPDOWN)) {
> >                         item.add(new
> > DropDownChoice("dropdown", cqResponses,
> >                                 new
> > ChoiceRenderer("response.text", "id")));
> >                     } else if
> > (type.equals(ResponseType.MULTI_SELECT)) {
> >                         item.add(new
> > ListMultipleChoice("multiSelect", cqResponses,
> >                                 new
> > ChoiceRenderer("response.text",
> "id")).setMaxRows(5));
> >                     } else if
> > (type.equals(ResponseType.RATING)) {
> >                         //
> >                     }
> >                 }
> > 
> > Then in the HTML I do:
> > 
> > <form wicket:id="questionForm">
> >                     <span wicket:id="categoryQuestions">    
> >                     
> >                             <select wicket:id="dropdown">
> >                                     <option>Option 1</option>
> >                             </select>
> >                             <select wicket:id="multiSelect">
> >                                     <option>Option 1</option>
> >                             </select>
> >                             <input wicket:id="checkbox" 
> > type="checkbox"/>
> >                             
> >                     </span>
> >             </form>
> > 
> > 
> >
>
-------------------------------------------------------
> > This SF.Net email is sponsored by:
> > Power Architecture Resource Center: Free content,
> downloads, 
> > discussions, and more.
> http://solutions.newsforge.com/ibmarch.tmpl
> > _______________________________________________
> > Wicket-user mailing list
> > [email protected]
> >
>
https://lists.sourceforge.net/lists/listinfo/wicket-user
> > 
> > 
> > 
> 
> 
> 
> 
>
-------------------------------------------------------
> This SF.Net email is sponsored by:
> Power Architecture Resource Center: Free content,
> downloads, discussions,
> and more.
> http://solutions.newsforge.com/ibmarch.tmpl
> _______________________________________________
> Wicket-user mailing list
> [email protected]
>
https://lists.sourceforge.net/lists/listinfo/wicket-user
> 



-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to