@jonas :
I admit am quite new at wicket but i think i understand how
compoundpropertymodel and propertymodel works. I have used them quite
extensively in my code.
I think i have an issue with properly using the choice renderer cos
that is where the problem is.
Thank you for you help.


On 1/21/10, Jonas <barney...@gmail.com> wrote:
> Make sure you fully understand how CompoundPropertyModel and
> PropertyModel work first.
> I suggest to study some documentation about CompoundPropertyModel (as
> in [1], [2] or [3])
> and to do some googleing for code examples.
>
> [1] <http://cwiki.apache.org/WICKET/working-with-wicket-models.html>
> [2]
> <http://www.javabeat.net/javabeat/wicket/tutorials/basics/4-more-on-models.php>
> [3] <http://wicketinaction.com/book/>
>
>
> On Thu, Jan 21, 2010 at 9:28 AM, chinedu efoagui <chinedub...@gmail.com>
> wrote:
>> @jonas
>>
>> Thanks a lot for your help but could illustrate with some code please
>> so i can get the full idea
>> ..........
>>
>>
>> On 1/20/10, Jonas <barney...@gmail.com> wrote:
>>> with this code, you're trying to set a PersonnelrecordsDepartment Object
>>> into the field called parentId of the object referred to by the
>>> 'selected' variable
>>> that you're passing to the CompoundPropertyModel. The data types don't
>>> match, that's why wicket trys to safe the day using conversion (which
>>> obviously
>>> cannot succeed in this case...).
>>> You can either:
>>> a) change the data type of the parentId field of your 'selected' object
>>> or
>>> b) change your dropdown choice so only the id is propagated instead of
>>> the
>>> whole PersonnelrecordsDepartment Object. you could do that e.g. by
>>> setting the ids
>>> as choices, and use a custom choicerenderer which retrieves and
>>> renders the PersonnelrecordsDepartment Objects
>>>
>>> I hope that helps...
>>>
>>> On Wed, Jan 20, 2010 at 4:54 PM, chinedu efoagui <chinedub...@gmail.com>
>>> wrote:
>>>> @jonas ignore that. i was just refactoring the code for the email.
>>>> the error is runtime not compile time.
>>>> I think it is a conversion problem
>>>> please help
>>>> The field parentid is integer but the dropdown is expecting object
>>>> the form
>>>> <code>
>>>> IModel zaModel=new CompoundPropertyModel(selected);
>>>>        departmentform.setModel(zaModel);
>>>>        RequiredTextField  departmentname=new
>>>> RequiredTextField("departmentname");
>>>>        departmentname.setOutputMarkupId(true);
>>>>        departmentform.add(departmentname);
>>>>
>>>>        DepartmentDropDownChoice title=new
>>>> DepartmentDropDownChoice("parentid",zaModel);
>>>>        departmentform.add(title);
>>>>
>>>>        departmentform.add(new
>>>> AjaxFallbackLink("canceldepartmentformbutton"){
>>>>
>>>>               �...@override
>>>>                public void onClick(AjaxRequestTarget target) {
>>>>                   closeModalWindow(target);
>>>>
>>>>                }
>>>>
>>>>
>>>>        });
>>>>        feedback = new FeedbackPanel("feedback");
>>>>      feedback.setOutputMarkupId(true);
>>>>      int[] filteredErrorLevels = new int[]{FeedbackMessage.ERROR};
>>>>      feedback.setFilter(new
>>>> ErrorLevelsFeedbackMessageFilter(filteredErrorLevels));
>>>>     departmentform.add(feedback);
>>>>
>>>>
>>>>        FeedbackLabel departmentFeedbackLabel = new
>>>> FeedbackLabel("departmentfeedback", departmentname,new
>>>> Model("Department is required"));
>>>>        departmentFeedbackLabel.setOutputMarkupId(true);
>>>>        departmentname.add(new ComponentVisualErrorBehavior("onblur",
>>>> departmentFeedbackLabel));
>>>>        departmentform.add(departmentFeedbackLabel);
>>>>
>>>>
>>>>      departmentform.add(new
>>>> AjaxFallbackButton("savedepartmentbutton", departmentform) {
>>>>
>>>>           @Override
>>>>      protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
>>>>
>>>>       PersonnelrecordsDepartment
>>>> pr=(PersonnelrecordsDepartment)form.getDefaultModel().getObject();
>>>>
>>>>        try {
>>>>            if(isNew){
>>>>            dao.addPersonnelrecordsDepartment(pr);
>>>>            }
>>>>            else{
>>>>
>>>>            dao.savePersonnelrecordsDepartment(pr);
>>>>            }
>>>>        } catch (GenericBusinessException ex) {
>>>>
>>>>  Logger.getLogger(DepartmentPanel.class.getName()).log(Level.SEVERE,
>>>> null, ex);
>>>>        }
>>>>        //target.addComponent(form);
>>>>        setFormReponse(target);
>>>>
>>>>    }
>>>>
>>>>         @Override
>>>>                        protected void onError(AjaxRequestTarget target,
>>>> Form<?> form)
>>>>                        {
>>>>                        // repaint the feedback panel so errors are shown
>>>>
>>>>                           target.addComponent(feedback);
>>>>                        }
>>>>
>>>>            });
>>>>
>>>>        add(departmentform);
>>>>    }
>>>>        private void setFormReponse(AjaxRequestTarget target){
>>>>
>>>>
>>>>            info("Save Operation was Successful");
>>>>
>>>>            target.addComponent(feedback);
>>>>
>>>>  }
>>>>    FeedbackPanel feedback;
>>>>
>>>>
>>>>    }
>>>>
>>>>
>>>> </code>
>>>>
>>>> On 1/20/10, Jonas <barney...@gmail.com> wrote:
>>>>> not sure if that's the problem, but shouldn't
>>>>>
>>>>> setChoices(titles);
>>>>>
>>>>> be
>>>>>
>>>>> setChoices(departments);
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Jan 20, 2010 at 4:14 PM, chinedu efoagui
>>>>> <chinedub...@gmail.com>
>>>>> wrote:
>>>>>> Hello , I have a class PersonnelrecordsDepartment
>>>>>>  with the following fields with corresponding getters and setters
>>>>>>   private java.lang.Integer id;
>>>>>>   private java.lang.String departmentname;
>>>>>>   private java.lang.Integer parentid;
>>>>>>
>>>>>> I left out the getters and setters . Any the field parentid can refer
>>>>>> to an existing department like a recursive stuff like having a self
>>>>>> foreign key
>>>>>> Anyway the problem is that i have a dropdownlchoice for the form
>>>>>> <code>
>>>>>> public class DepartmentDropDownChoice extends DropDownChoice {
>>>>>>
>>>>>>   �...@springbean(name="IHRService")
>>>>>>    private  IHRService dao;
>>>>>>
>>>>>> */    /**
>>>>>>     *
>>>>>>     * @param id
>>>>>>     * @param model
>>>>>>     */
>>>>>>    public DepartmentDropDownChoice(String id,final IModel model){
>>>>>>
>>>>>>        super(id,model);
>>>>>>        final ChoiceRenderer renderer = new
>>>>>> ChoiceRenderer("departmentname", "id");
>>>>>>
>>>>>>        setChoiceRenderer(renderer);
>>>>>>        List<PersonnelrecordsDepartment>
>>>>>> departments=Collections.EMPTY_LIST;
>>>>>>        try {
>>>>>>           departments = dao.getPersonnelrecordsDepartmentList();
>>>>>>        } catch (GenericBusinessException ex) {
>>>>>>
>>>>>>  Logger.getLogger(DepartmentDropDownChoice.class.getName()).log(Level.SEVERE,
>>>>>> null, ex);
>>>>>>        }
>>>>>>        setChoices(titles);
>>>>>>    }
>>>>>> </code>
>>>>>>
>>>>>> and it gives this error anytime i try to save the personneldepartment
>>>>>> object
>>>>>> <code>
>>>>>> 2010-01-20 16:12:07,745 ERROR [org.apache.wicket.RequestCycle] -
>>>>>> <Cannot format given Object as a Number>
>>>>>> java.lang.IllegalArgumentException: Cannot format given Object as a
>>>>>> Number
>>>>>>        at java.text.DecimalFormat.format(DecimalFormat.java:487)
>>>>>>        at java.text.Format.format(Format.java:140)
>>>>>>        at
>>>>>> org.apache.wicket.util.convert.converters.AbstractNumberConverter.convertToString(AbstractNumberConverter.java:111)
>>>>>>        at
>>>>>> org.apache.wicket.util.lang.PropertyResolverConverter.convert(PropertyResolverConverter.java:85)
>>>>>>        at
>>>>>> org.apache.wicket.util.lang.PropertyResolver$MethodGetAndSet.setValue(PropertyResolver.java:1107)
>>>>>>        at
>>>>>> org.apache.wicket.util.lang.PropertyResolver$ObjectAndGetSetter.setValue(PropertyResolver.java:588)
>>>>>>        at
>>>>>> org.apache.wicket.util.lang.PropertyResolver.setValue(PropertyResolver.java:136)
>>>>>>        at
>>>>>> org.apache.wicket.model.AbstractPropertyModel.setObject(AbstractPropertyModel.java:169)
>>>>>>        at
>>>>>> org.apache.wicket.Component.setDefaultModelObject(Component.java:3052)
>>>>>>        at
>>>>>> org.apache.wicket.markup.html.form.FormComponent.updateModel(FormComponent.java:1168)
>>>>>>        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.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
>>>>>> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:135)
>>>>>>        at
>>>>>> org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:177)
>>>>>>        at
>>>>>> org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:299)
>>>>>>
>>>>>> </code>
>>>>>>
>>>>>> i think it has something to do with the conversion. but how do i
>>>>>> convert it again??
>>>>>> How can i solve this problem???
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> 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
>>>>>
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> 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
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> 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
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to