Hi Michael,

Thanks for your reply. I have looked closer just after sending the email
found the problem and fixed it same as you have told. The new problem I am
facing is, how to get the selected values of the select boxes. Would you
please give me an idea on how to do this.

Thx.
Fatih 

-----Original Message-----
From: Michael O'Cleirigh [mailto:[EMAIL PROTECTED] 
Sent: Monday, March 17, 2008 8:52 PM
To: users@wicket.apache.org
Subject: Re: ListView Problem (contains varying number of components inside)

Hi Fatih,

The problem is that you have not set a model on your drop down choice so 
there is a null model which causes the exception you see to be generated.

Caused by: java.lang.IllegalStateException: Attempt to set model object on
null model of component:
productProposalForm:productsPropertyListView:0:dropDown:dropDown


Setting a default model on the dropdown choice should fix your problems. 
i.e. add a 'new Model()' as the second argument to the DropDownChoice 
constructor

public class NestedDropDownPanel extends Panel {


      public NestedDropDownPanel(String id,int productPropertyId) {

            super(id);

            ProductPropertyOptionDAO productPropertyOptionDAO = new
ProductPropertyOptionDAO(productPropertyId);

            DropDownChoice dropDownChoice=new DropDownChoice("dropDown", 
new Model (), new
Model((Serializable)productPropertyOptionDAO.getResultList()),new
ChoiceRenderer("name"));

            dropDownChoice.setRequired(true);

            add(dropDownChoice);

      }



Mike


>  
>
> Hi,
>
>  
>
>  
>
> I am using a ListView to render the dynamic number of  select boxes and
> their options.
>
>  Hi Fatih,
>
>
>
> The problem is that you have not set a model on your drop down choice
> so there is a null model which causes the exception you see to be
> generated.
>
>
>
> Setting a default model on the dropdown choice should fix your
> problems. i.e. add a 'new Model()' as the second argument to the ddc.
>
>
>
>
>
>
>
> public class NestedDropDownPanel extends Panel {
>
>
>
>  
>
>
>
>       public NestedDropDownPanel(String id,int productPropertyId) {
>
>
>
>             super(id);
>
>
>
>             ProductPropertyOptionDAO productPropertyOptionDAO = new
>
> ProductPropertyOptionDAO(productPropertyId);
>
>
>
>             DropDownChoice dropDownChoice=new DropDownChoice("dropDown",
new Model (), new
>
> Model((Serializable)productPropertyOptionDAO.getResultList()),new
>
> ChoiceRenderer("name"));
>
>
>
>             dropDownChoice.setRequired(true);
>
>
>
>             add(dropDownChoice);
>
>
>
>       }
>
>
>
>
>
>
>
> Mike
>
> I have added all select boxes into a ListView object and listView into a
> form and trying to calculate a final price using  all selected values from
> select boxes.
>
>  
>
> However, when I submit the form I got an exception before the execution of
> onSubmit() method.
>
>  
>
> I am doing sth wrong but I could not find. Would u please give me some
idea
> about how to overcome this problem.
>
>  
>
> Thx.
>
> Fatih
>
>  
>
>  
>
>  
>
>  
>
> I have a database design similar to below one.
>
>  
>
> Product names are coming from db 
>
> and all products have diffrent kind of Properties
>
> And each property have options 
>
> all also coming from db (choices in the select boxes).
>
>  
>
>  
>
> Product
>
> ------------
>
> Id
>
> Name
>
>  
>
> Eg.
>
> Audi A3
>
> Audi A4
>
> Audi A6
>
>  
>
>  
>
> ProductProperty
>
> ----------
>
> Id
>
> Name
>
>  
>
> Eg.
>
> Engine Type.
>
> .
>
> .
>
>  
>
>  
>
> ProductPropertyOption
>
> -------
>
> Id
>
> Name
>
>  
>
> Eg.
>
> 1.6lt 
>
> 2.0lt
>
> 1.9lt Diesel
>
> .
>
> .
>
>  
>
>  
>
>  
>
>  
>
>  
>
> StackTrace:
>
>  
>
> org.apache.wicket.WicketRuntimeException: Method onFormSubmitted of
> interface org.apache.wicket.markup.html.form.IFormSubmitListener targeted
at
> component [MarkupContainer [Component id = productProposalForm, page =
> com.cooldatasoft.page.proposal.ProductMenu, path =
> 1:productProposalForm.ProductMenu$ProductProposalForm, isVisible = true,
> isVersioned = true]] threw an exception
>
>       at
>
org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.j
> ava:194)
>
>       at
>
org.apache.wicket.request.target.component.listener.ListenerInterfaceRequest
> Target.processEvents(ListenerInterfaceRequestTarget.java:73)
>
>       at
>
org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(Abstra
> ctRequestCycleProcessor.java:90)
>
>       at
>
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:116
> 6)
>
>       at org.apache.wicket.RequestCycle.step(RequestCycle.java:1241)
>
>       at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1316)
>
>       at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
>
>       at
> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:354)
>
>       at
>
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:194)
>
>       at
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
> FilterChain.java:235)
>
>       at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
> ain.java:206)
>
>       at
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
> va:233)
>
>       at
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
> va:175)
>
>       at
>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128
> )
>
>       at
>
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102
> )
>
>       at
>
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
> :109)
>
>       at
>
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
>
>       at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>
>       at
>
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http
> 11Protocol.java:584)
>
>       at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>
>       at java.lang.Thread.run(Unknown Source)
>
> Caused by: java.lang.reflect.InvocationTargetException
>
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
>       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>
>       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>
>       at java.lang.reflect.Method.invoke(Unknown Source)
>
>       at
>
org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.j
> ava:183)
>
>       ... 20 more
>
> Caused by: java.lang.IllegalStateException: Attempt to set model object on
> null model of component:
> productProposalForm:productsPropertyListView:0:dropDown:dropDown
>
>       at org.apache.wicket.Component.setModelObject(Component.java:2850)
>
>       at
>
org.apache.wicket.markup.html.form.FormComponent.updateModel(FormComponent.j
> ava:1016)
>
>       at
org.apache.wicket.markup.html.form.Form$19.validate(Form.java:1750)
>
>       at
>
org.apache.wicket.markup.html.form.Form$ValidationVisitor.formComponent(Form
> .java:160)
>
>       at
>
org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrde
> rHelper(FormComponent.java:402)
>
>       at
>
org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrde
> rHelper(FormComponent.java:389)
>
>       at
>
org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrde
> rHelper(FormComponent.java:389)
>
>       at
>
org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrde
> rHelper(FormComponent.java:389)
>
>       at
>
org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrde
> rHelper(FormComponent.java:389)
>
>       at
>
org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrde
> r(FormComponent.java:366)
>
>       at
>
org.apache.wicket.markup.html.form.Form.visitFormComponentsPostOrder(Form.ja
> va:1026)
>
>       at
>
org.apache.wicket.markup.html.form.Form.internalUpdateFormComponentModels(Fo
> rm.java:1742)
>
>       at
>
org.apache.wicket.markup.html.form.Form.updateFormComponentModels(Form.java:
> 1709)
>
>       at org.apache.wicket.markup.html.form.Form.process(Form.java:831)
>
>       at
> org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:773)
>
>       ... 25 more
>
>  
>
>  
>
>  
>
>  
>
>  
>
>  
>
> final ListView productsList = new ListView("productsPropertyListView",new
> Model( (Serializable)(new ProductPropertyDAO(productId)).getResultList())
)
> {
>
>                         public void populateItem(final ListItem item) {
>
>                              final TbProductProperty productProperty =
> (TbProductProperty) item.getModelObject();
>
>                              item.add(new
> Label("productPropertyName",productProperty.getName()));
>
>                              item.add(new NestedDropDownPanel("dropDown",
> productProperty.getId()));
>
>  
>
>                         }
>
>                   };
>
>                   productsList.setReuseItems(true);
>
>                   add(productsList);
>
>  
>
>  
>
>  
>
>  
>
>  
>
>  
>
>  
>
>  
>
>  
>
>  
>
>  
>
> public class NestedDropDownPanel extends Panel {
>
>  
>
>       public NestedDropDownPanel(String id,int productPropertyId) {
>
>             super(id);
>
>             ProductPropertyOptionDAO productPropertyOptionDAO = new
> ProductPropertyOptionDAO(productPropertyId);
>
>             DropDownChoice dropDownChoice=new
DropDownChoice("dropDown",new
> Model((Serializable)productPropertyOptionDAO.getResultList()),new
> ChoiceRenderer("name"));
>
>             dropDownChoice.setRequired(true);
>
>             add(dropDownChoice);
>
>       }
>
>  
>
>  
>
> }
>
>  
>
>  
>
>  
>
>  
>
>  
>
>  
>
>  
>
> <form wicket:id="productProposalForm">
>
>                              <table><tr><td>
>
>                                    <fieldset>
>
>                                          <legend>Product Proposal</legend>
>
>                                          <font color="RED"><span
> wicket:id="feedbackPanel"/></font>                                     
>
>                                                <table>
>
>                                                      <tr
> wicket:id="productsPropertyListView">
>
>                                                            <td><span
> wicket:id="productPropertyName"></span></td>
>
>                                                            <td><span
> wicket:id="dropDown"></span></td>
>
>                                                      </tr>
>
>                                                </table>
>
>                                                
>
>                                                <input type="submit"
> value="Hesapla" wicket:id="calculateButton"/>
>
>                                          
>
>                                    </fieldset>
>
>                              </td></tr></table>
>
>                         </form>
>
>  
>
>  
>
>
>   



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to