What is U? In my understanding Check(box) operates on a Boolean value so the classcast exception might be there (btw. I always use CheckBox.. I never tried Check..).
** Martin 2009/8/4 burnst...@burnstone.ch <burnst...@burnstone.ch>: > Hi all > > I'm trying to use CheckGroup, but encounter some problems. First, my code: > > class NameValueListView<T extends ParameterValueProvider<?>> extends > ListView<T> { > > <U> void displayItem(ListItem<T> listItem, ParameterValueProvider<U> > parameter) { > ... > List<U> enumItems = new ArrayList<U>(parameter.getEnumCodes()); > addMultiSelectPanelListItem(listItem, enumItems, labelModel, new > PropertyModel<Collection<U>>(parameter, > "valueList"), parameter); > } > > <U> void addMultiSelectPanelListItem(ListItem<T> listItem, > List<U> enumItems, IModel<String> labelModel, > IModel<Collection<U>> model, > final ParameterValueProvider<U> parameter) { > > CheckGroup<U> comp = new CheckGroup<U>("value"); > comp.setType(parameter.getType()); > comp.setRequired(!parameter.isOptional()); > comp.setLabel(labelModel); > > ListView<U> enumListView = new ListView<U>("values", enumItems) { > @Override > protected void populateItem(ListItem<U> item) { > item.add(new Check<U>("check", item.getModel())); > item.add(new Label("value", > item.getDefaultModelObjectAsString())); > } > }; > enumListView.setReuseItems(true); > comp.add(enumListView); > > // Add panel > MultiCheckBoxPanel<U> panelMCB = new > MultiCheckBoxPanel<U>(COMPONENT_ID, comp); > listItem.add(panelMCB); > } > } > > ParameterValueProvider has the mehtods {get,set}Value[List]. > > The html looks like this: > <html xmlns:wicket> > <wicket:panel> > <span wicket:id="value"> > <span wicket:id="values"> > <input type="checkbox" wicket:id="check" /> > <span wicket:id="value"></span> > <br/> > </span> > </span> > </wicket:panel> > </html> > > So far, so good. Values are getting displayed and the correct check boxes > are selected. However, when submitting the form, I get an exception: > > --------------------------------------------------- > WicketMessage: Method onFormSubmitted of interface > org.apache.wicket.markup.html.form.IFormSubmitListener targeted at component > [MarkupContainer [Component id = cardDetailForm]] threw an exception > > Root cause: > > java.lang.ClassCastException: java.lang.String > at > org.apache.wicket.markup.html.form.CheckGroup.updateModel(CheckGroup.java:171) > at > org.apache.wicket.markup.html.form.Form$FormModelUpdateVisitor.component(Form.java:225) > at > org.apache.wicket.markup.html.form.FormComponent.visitComponentsPostOrderHelper(FormComponent.java:514) > at > org.apache.wicket.markup.html.form.FormComponent.visitComponentsPostOrderHelper(FormComponent.java:493) > at > org.apache.wicket.markup.html.form.FormComponent.visitComponentsPostOrderHelper(FormComponent.java:493) > at > org.apache.wicket.markup.html.form.FormComponent.visitComponentsPostOrderHelper(FormComponent.java:493) > at > org.apache.wicket.markup.html.form.FormComponent.visitComponentsPostOrderHelper(FormComponent.java:493) > at > org.apache.wicket.markup.html.form.FormComponent.visitComponentsPostOrder(FormComponent.java:465) > at > org.apache.wicket.markup.html.form.Form.internalUpdateFormComponentModels(Form.java:2051) > at > org.apache.wicket.markup.html.form.Form.updateFormComponentModels(Form.java:2019) > at org.apache.wicket.markup.html.form.Form.process(Form.java:984) > at org.apache.wicket.markup.html.form.Form.process(Form.java:911) > at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:876) > at java.lang.reflect.Method.invoke(Unknown Source) > at > org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:182) > at > org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73) > at > org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92) > at > org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1241) > at org.apache.wicket.RequestCycle.step(RequestCycle.java:1320) > at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1419) > at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) > at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:456) > at > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:289) > at > org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApplicationHandler.java:334) > at > org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:286) > at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1807) > at > org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1757) > at org.mortbay.http.HttpServer.service(HttpServer.java:879) > at org.mortbay.http.HttpConnection.service(HttpConnection.java:789) > at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:960) > at org.mortbay.http.HttpConnection.handle(HttpConnection.java:806) > at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:218) > at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:331) > at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:520) > > Complete stack: > > org.apache.wicket.WicketRuntimeException: Method onFormSubmitted of > interface org.apache.wicket.markup.html.form.IFormSubmitListener targeted at > component [MarkupContainer [Component id = cardDetailForm]] threw an > exception > at > org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:193) > at > org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73) > at > org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92) > at > org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1241) > at org.apache.wicket.RequestCycle.step(RequestCycle.java:1320) > at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1419) > at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) > at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:456) > > java.lang.reflect.InvocationTargetException > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at > org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:182) > at > org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73) > at > org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92) > at > org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1241) > at org.apache.wicket.RequestCycle.step(RequestCycle.java:1320) > at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1419) > at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) > at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:456) > --------------------------------------------------- > > I then looked at the wicket-examples and saw that CheckGroup was initialized > without a model. This won't work for me, but I tried it anyway. The only > result is: > > --------------------------------------------------- > "WicketMessage: CheckGroup [41:cardDetailForm:rows:11:panel:value] contains > a null model object, must be an object of type java.util.Collection" > --------------------------------------------------- > > I didn't see any other major differences between the example and my code > (uh, okay, except some type parameters and stuff, but well...). > > So. Any ideas? > > -- chris > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org