Awesome, it worked. Thanks a lot! --- Igor Vaynberg <[EMAIL PROTECTED]> wrote:
> That's exactly it. > > -Igor > > > > -----Original Message----- > > From: [EMAIL PROTECTED] > > [mailto:[EMAIL PROTECTED] > On Behalf Of > > Andrew Berman > > Sent: Thursday, October 06, 2005 11:55 AM > > To: [email protected] > > Subject: RE: [Wicket-user] Dynamic HTML Element > Creation > > > > 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: > === message truncated === ------------------------------------------------------- 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
