You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Julian Sinai <js...@gmail.com> on 2011/07/21 19:57:20 UTC

DateTimeField and setOutputMarkupId()

We have a need to update a DateTimeField via Ajax, but its fields are
private, and they don't have setOutputMarkupId() set on them. The result is
an exception upon Ajax update. Is there any solution other than cloning and
owning DateTimeField?

We are using Wicket 1.4.17 (and we can't upgrade to 1.5 just yet).

Any help is appreciated.
Julian

Re: DateTimeField and setOutputMarkupId()

Posted by Julian Sinai <js...@gmail.com>.
Martin, thanks for your help. Igor's hint helped me. After some
investigation I realized that I have a visitor in my button's submit handler
that visits all form components and adds them to the ajax target. That meant
it was visiting the inner fields of the DateTimeField, also, which was not
necessary. I fixed it by ignoring form fields in the visitor that don't have
outputMarkupId set.

Julian
On Thu, Jul 21, 2011 at 11:32 PM, Martin Grigorov <mg...@apache.org>wrote:

> I don't see any problem.
> Put a break point in AjaxRequestTarget.addComponent() and see what is
> registered. If you see component with id "hours" then investigate the
> stacktrace.
> As last resort you can create a quickstart with plain Wicket
> components and if it still fails with this error send it to us in a
> ticket.
>
> On Thu, Jul 21, 2011 at 11:49 PM, Julian Sinai <js...@gmail.com> wrote:
> > Hi Martin
> > Thanks for looking at this. It's a bit complicated because we've built a
> > form framework around Wicket, but here goes:
> > In the page:
> > HtFormPanel.DateFormField startField = new
> > HtFormPanel.DateFormField("startField",
> > new StringResourceModel("start", this, null), new
> PropertyModel<Date>(this,
> > "start"), false);
> > Where the constructor for HtFormPanel.DateFormField is:
> > public DateFormField(String uniqueId, IModel<String> label, IModel m,
> > boolean bShowTime)
> > {
> > // The DateTimeField is contained within the DateFormField
> > super(uniqueId, FieldType.DATETEXTFIELD.toString(),
> > (bShowTime ? new DateTimeField(FIELD_ID) :
> > new DateField(FIELD_ID)), label, m);
> > }
> > Next, in the page:
> > startField.setFieldOutputMarkupId(true);
> > // The radio button that does the ajax update:
> > final HtFormPanel.RadioFormField<ReportAction> actionField = new
> > HtFormPanel.RadioFormField<ReportAction>(
> > "actionField",new ResourceModel("actionField"),actionTypes,new
> > LocalizedChoiceRenderer<ReportAction>(this),
> > new PropertyModel<ReportAction>(this,"action"));
> > Finally, the update code that causes the problem:
> > actionField.getFormComponent().add(
> > new HtAjaxFormChoiceComponentUpdatingBehavior() {
> > private static final long serialVersionUID = 8574977146235850631L;
> > protected void onUpdate(AjaxRequestTarget target) {
> > if (getAction() != null
> > && getAction().equals(ReportAction.VIEW)) {
> > startField.setRequired(false);
> > } else {
> > startField.setRequired(true);
> > }
> > // We update the startField and the DateTimeField inside it.
> > target.addComponent(startField);
> > target.addComponent(startField.getComponent());
> > }
> > });
> >
> > Julian
> > On Thu, Jul 21, 2011 at 12:30 PM, Martin Grigorov <mg...@apache.org>
> > wrote:
> >>
> >> Show some code.
> >>
> >> On Thu, Jul 21, 2011 at 10:09 PM, Julian Sinai <js...@gmail.com>
> wrote:
> >> > Nothing is adding it, we add the DateTimeField itself to the target.
> >> >
> >> > Julian
> >> > On Thu, Jul 21, 2011 at 12:08 PM, Igor Vaynberg
> >> > <ig...@gmail.com>wrote:
> >> >
> >> >> what is adding that to the target?
> >> >>
> >> >> -igor
> >> >>
> >> >> On Thu, Jul 21, 2011 at 12:07 PM, Julian Sinai <js...@gmail.com>
> >> >> wrote:
> >> >> > It is the hours component of the DateTimeField. From
> >> >> > DateTimeField.html:
> >> >> >
> >> >> >     <input type="text" wicket:id="hours" size="2" />&nbsp;:
> >> >> >
> >> >> > Julian
> >> >> > On Thu, Jul 21, 2011 at 11:24 AM, Igor Vaynberg
> >> >> > <igor.vaynberg@gmail.com
> >> >> >
> >> >> > wrote:
> >> >> >>
> >> >> >> what is "hours" ?
> >> >> >>
> >> >> >> -igor
> >> >> >>
> >> >> >> On Thu, Jul 21, 2011 at 11:17 AM, Julian Sinai <js...@gmail.com>
> >> >> wrote:
> >> >> >> > Igor,
> >> >> >> > We do update  the DateTimeField itself, and this is what we see:
> >> >> >> > SEVERE: cannot update component that does not have
> >> >> >> > setOutputMarkupId
> >> >> >> > property set to true. Component: [MarkupContainer [Component id
> =
> >> >> >> > hours]]
> >> >> >> > java.lang.IllegalArgumentException: cannot update component that
> >> >> >> > does
> >> >> >> > not
> >> >> >> > have setOutputMarkupId property set to true. Component:
> >> >> [MarkupContainer
> >> >> >> > [Component id = hours]]
> >> >> >> >         at
> >> >> >> >
> >> >> >> >
> >> >>
> >> >>
> org.apache.wicket.ajax.AjaxRequestTarget.addComponent(AjaxRequestTarget.java:346)
> >> >> >> >
> >> >> >> > Julian
> >> >> >> > On Thu, Jul 21, 2011 at 11:02 AM, Igor Vaynberg
> >> >> >> > <ig...@gmail.com>
> >> >> >> > wrote:
> >> >> >> >>
> >> >> >> >> cant update the DateTimeField itself?
> >> >> >> >>
> >> >> >> >> -igor
> >> >> >> >>
> >> >> >> >> On Thu, Jul 21, 2011 at 10:57 AM, Julian Sinai <
> jsinai@gmail.com>
> >> >> >> >> wrote:
> >> >> >> >> > We have a need to update a DateTimeField via Ajax, but its
> >> >> >> >> > fields
> >> >> are
> >> >> >> >> > private, and they don't have setOutputMarkupId() set on them.
> >> >> >> >> > The
> >> >> >> >> > result
> >> >> >> >> > is
> >> >> >> >> > an exception upon Ajax update. Is there any solution other
> than
> >> >> >> >> > cloning
> >> >> >> >> > and
> >> >> >> >> > owning DateTimeField?
> >> >> >> >> >
> >> >> >> >> > We are using Wicket 1.4.17 (and we can't upgrade to 1.5 just
> >> >> >> >> > yet).
> >> >> >> >> >
> >> >> >> >> > Any help is appreciated.
> >> >> >> >> > Julian
> >> >> >> >> >
> >> >> >> >
> >> >> >> >
> >> >> >
> >> >> >
> >> >>
> >> >
> >>
> >>
> >>
> >> --
> >> Martin Grigorov
> >> jWeekend
> >> Training, Consulting, Development
> >> http://jWeekend.com
> >
> >
>
>
>
> --
> Martin Grigorov
> jWeekend
> Training, Consulting, Development
> http://jWeekend.com
>

Re: DateTimeField and setOutputMarkupId()

Posted by Martin Grigorov <mg...@apache.org>.
I don't see any problem.
Put a break point in AjaxRequestTarget.addComponent() and see what is
registered. If you see component with id "hours" then investigate the
stacktrace.
As last resort you can create a quickstart with plain Wicket
components and if it still fails with this error send it to us in a
ticket.

On Thu, Jul 21, 2011 at 11:49 PM, Julian Sinai <js...@gmail.com> wrote:
> Hi Martin
> Thanks for looking at this. It's a bit complicated because we've built a
> form framework around Wicket, but here goes:
> In the page:
> HtFormPanel.DateFormField startField = new
> HtFormPanel.DateFormField("startField",
> new StringResourceModel("start", this, null), new PropertyModel<Date>(this,
> "start"), false);
> Where the constructor for HtFormPanel.DateFormField is:
> public DateFormField(String uniqueId, IModel<String> label, IModel m,
> boolean bShowTime)
> {
> // The DateTimeField is contained within the DateFormField
> super(uniqueId, FieldType.DATETEXTFIELD.toString(),
> (bShowTime ? new DateTimeField(FIELD_ID) :
> new DateField(FIELD_ID)), label, m);
> }
> Next, in the page:
> startField.setFieldOutputMarkupId(true);
> // The radio button that does the ajax update:
> final HtFormPanel.RadioFormField<ReportAction> actionField = new
> HtFormPanel.RadioFormField<ReportAction>(
> "actionField",new ResourceModel("actionField"),actionTypes,new
> LocalizedChoiceRenderer<ReportAction>(this),
> new PropertyModel<ReportAction>(this,"action"));
> Finally, the update code that causes the problem:
> actionField.getFormComponent().add(
> new HtAjaxFormChoiceComponentUpdatingBehavior() {
> private static final long serialVersionUID = 8574977146235850631L;
> protected void onUpdate(AjaxRequestTarget target) {
> if (getAction() != null
> && getAction().equals(ReportAction.VIEW)) {
> startField.setRequired(false);
> } else {
> startField.setRequired(true);
> }
> // We update the startField and the DateTimeField inside it.
> target.addComponent(startField);
> target.addComponent(startField.getComponent());
> }
> });
>
> Julian
> On Thu, Jul 21, 2011 at 12:30 PM, Martin Grigorov <mg...@apache.org>
> wrote:
>>
>> Show some code.
>>
>> On Thu, Jul 21, 2011 at 10:09 PM, Julian Sinai <js...@gmail.com> wrote:
>> > Nothing is adding it, we add the DateTimeField itself to the target.
>> >
>> > Julian
>> > On Thu, Jul 21, 2011 at 12:08 PM, Igor Vaynberg
>> > <ig...@gmail.com>wrote:
>> >
>> >> what is adding that to the target?
>> >>
>> >> -igor
>> >>
>> >> On Thu, Jul 21, 2011 at 12:07 PM, Julian Sinai <js...@gmail.com>
>> >> wrote:
>> >> > It is the hours component of the DateTimeField. From
>> >> > DateTimeField.html:
>> >> >
>> >> >     <input type="text" wicket:id="hours" size="2" />&nbsp;:
>> >> >
>> >> > Julian
>> >> > On Thu, Jul 21, 2011 at 11:24 AM, Igor Vaynberg
>> >> > <igor.vaynberg@gmail.com
>> >> >
>> >> > wrote:
>> >> >>
>> >> >> what is "hours" ?
>> >> >>
>> >> >> -igor
>> >> >>
>> >> >> On Thu, Jul 21, 2011 at 11:17 AM, Julian Sinai <js...@gmail.com>
>> >> wrote:
>> >> >> > Igor,
>> >> >> > We do update  the DateTimeField itself, and this is what we see:
>> >> >> > SEVERE: cannot update component that does not have
>> >> >> > setOutputMarkupId
>> >> >> > property set to true. Component: [MarkupContainer [Component id =
>> >> >> > hours]]
>> >> >> > java.lang.IllegalArgumentException: cannot update component that
>> >> >> > does
>> >> >> > not
>> >> >> > have setOutputMarkupId property set to true. Component:
>> >> [MarkupContainer
>> >> >> > [Component id = hours]]
>> >> >> >         at
>> >> >> >
>> >> >> >
>> >>
>> >> org.apache.wicket.ajax.AjaxRequestTarget.addComponent(AjaxRequestTarget.java:346)
>> >> >> >
>> >> >> > Julian
>> >> >> > On Thu, Jul 21, 2011 at 11:02 AM, Igor Vaynberg
>> >> >> > <ig...@gmail.com>
>> >> >> > wrote:
>> >> >> >>
>> >> >> >> cant update the DateTimeField itself?
>> >> >> >>
>> >> >> >> -igor
>> >> >> >>
>> >> >> >> On Thu, Jul 21, 2011 at 10:57 AM, Julian Sinai <js...@gmail.com>
>> >> >> >> wrote:
>> >> >> >> > We have a need to update a DateTimeField via Ajax, but its
>> >> >> >> > fields
>> >> are
>> >> >> >> > private, and they don't have setOutputMarkupId() set on them.
>> >> >> >> > The
>> >> >> >> > result
>> >> >> >> > is
>> >> >> >> > an exception upon Ajax update. Is there any solution other than
>> >> >> >> > cloning
>> >> >> >> > and
>> >> >> >> > owning DateTimeField?
>> >> >> >> >
>> >> >> >> > We are using Wicket 1.4.17 (and we can't upgrade to 1.5 just
>> >> >> >> > yet).
>> >> >> >> >
>> >> >> >> > Any help is appreciated.
>> >> >> >> > Julian
>> >> >> >> >
>> >> >> >
>> >> >> >
>> >> >
>> >> >
>> >>
>> >
>>
>>
>>
>> --
>> Martin Grigorov
>> jWeekend
>> Training, Consulting, Development
>> http://jWeekend.com
>
>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

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


Re: DateTimeField and setOutputMarkupId()

Posted by Julian Sinai <js...@gmail.com>.
Hi Martin

Thanks for looking at this. It's a bit complicated because we've built a
form framework around Wicket, but here goes:

In the page:

HtFormPanel.DateFormField startField = new
HtFormPanel.DateFormField("startField",
new StringResourceModel("start", this, null), new PropertyModel<Date>(this,
 "start"), false);

Where the constructor for HtFormPanel.DateFormField is:

public DateFormField(String uniqueId, IModel<String> label, IModel m,
boolean bShowTime)
{
 // The DateTimeField is contained within the DateFormField
super(uniqueId, FieldType.DATETEXTFIELD.toString(),
 (bShowTime ? new DateTimeField(FIELD_ID) :
new DateField(FIELD_ID)), label, m);
}

Next, in the page:

startField.setFieldOutputMarkupId(true);

// The radio button that does the ajax update:

final HtFormPanel.RadioFormField<ReportAction> actionField = new
HtFormPanel.RadioFormField<ReportAction>(
 "actionField",new ResourceModel("actionField"),actionTypes,new
LocalizedChoiceRenderer<ReportAction>(this),
 new PropertyModel<ReportAction>(this,"action"));

Finally, the update code that causes the problem:

actionField.getFormComponent().add(
new HtAjaxFormChoiceComponentUpdatingBehavior() {

private static final long serialVersionUID = 8574977146235850631L;

protected void onUpdate(AjaxRequestTarget target) {
 if (getAction() != null
&& getAction().equals(ReportAction.VIEW)) {
 startField.setRequired(false);
} else {
 startField.setRequired(true);
}
 // We update the startField and the DateTimeField inside it.
target.addComponent(startField);
 target.addComponent(startField.getComponent());
}
 });


Julian
On Thu, Jul 21, 2011 at 12:30 PM, Martin Grigorov <mg...@apache.org>wrote:

> Show some code.
>
> On Thu, Jul 21, 2011 at 10:09 PM, Julian Sinai <js...@gmail.com> wrote:
> > Nothing is adding it, we add the DateTimeField itself to the target.
> >
> > Julian
> > On Thu, Jul 21, 2011 at 12:08 PM, Igor Vaynberg <igor.vaynberg@gmail.com
> >wrote:
> >
> >> what is adding that to the target?
> >>
> >> -igor
> >>
> >> On Thu, Jul 21, 2011 at 12:07 PM, Julian Sinai <js...@gmail.com>
> wrote:
> >> > It is the hours component of the DateTimeField. From
> DateTimeField.html:
> >> >
> >> >     <input type="text" wicket:id="hours" size="2" />&nbsp;:
> >> >
> >> > Julian
> >> > On Thu, Jul 21, 2011 at 11:24 AM, Igor Vaynberg <
> igor.vaynberg@gmail.com
> >> >
> >> > wrote:
> >> >>
> >> >> what is "hours" ?
> >> >>
> >> >> -igor
> >> >>
> >> >> On Thu, Jul 21, 2011 at 11:17 AM, Julian Sinai <js...@gmail.com>
> >> wrote:
> >> >> > Igor,
> >> >> > We do update  the DateTimeField itself, and this is what we see:
> >> >> > SEVERE: cannot update component that does not have
> setOutputMarkupId
> >> >> > property set to true. Component: [MarkupContainer [Component id =
> >> >> > hours]]
> >> >> > java.lang.IllegalArgumentException: cannot update component that
> does
> >> >> > not
> >> >> > have setOutputMarkupId property set to true. Component:
> >> [MarkupContainer
> >> >> > [Component id = hours]]
> >> >> >         at
> >> >> >
> >> >> >
> >>
> org.apache.wicket.ajax.AjaxRequestTarget.addComponent(AjaxRequestTarget.java:346)
> >> >> >
> >> >> > Julian
> >> >> > On Thu, Jul 21, 2011 at 11:02 AM, Igor Vaynberg
> >> >> > <ig...@gmail.com>
> >> >> > wrote:
> >> >> >>
> >> >> >> cant update the DateTimeField itself?
> >> >> >>
> >> >> >> -igor
> >> >> >>
> >> >> >> On Thu, Jul 21, 2011 at 10:57 AM, Julian Sinai <js...@gmail.com>
> >> >> >> wrote:
> >> >> >> > We have a need to update a DateTimeField via Ajax, but its
> fields
> >> are
> >> >> >> > private, and they don't have setOutputMarkupId() set on them.
> The
> >> >> >> > result
> >> >> >> > is
> >> >> >> > an exception upon Ajax update. Is there any solution other than
> >> >> >> > cloning
> >> >> >> > and
> >> >> >> > owning DateTimeField?
> >> >> >> >
> >> >> >> > We are using Wicket 1.4.17 (and we can't upgrade to 1.5 just
> yet).
> >> >> >> >
> >> >> >> > Any help is appreciated.
> >> >> >> > Julian
> >> >> >> >
> >> >> >
> >> >> >
> >> >
> >> >
> >>
> >
>
>
>
> --
> Martin Grigorov
> jWeekend
> Training, Consulting, Development
> http://jWeekend.com
>

Re: DateTimeField and setOutputMarkupId()

Posted by Martin Grigorov <mg...@apache.org>.
Show some code.

On Thu, Jul 21, 2011 at 10:09 PM, Julian Sinai <js...@gmail.com> wrote:
> Nothing is adding it, we add the DateTimeField itself to the target.
>
> Julian
> On Thu, Jul 21, 2011 at 12:08 PM, Igor Vaynberg <ig...@gmail.com>wrote:
>
>> what is adding that to the target?
>>
>> -igor
>>
>> On Thu, Jul 21, 2011 at 12:07 PM, Julian Sinai <js...@gmail.com> wrote:
>> > It is the hours component of the DateTimeField. From DateTimeField.html:
>> >
>> >     <input type="text" wicket:id="hours" size="2" />&nbsp;:
>> >
>> > Julian
>> > On Thu, Jul 21, 2011 at 11:24 AM, Igor Vaynberg <igor.vaynberg@gmail.com
>> >
>> > wrote:
>> >>
>> >> what is "hours" ?
>> >>
>> >> -igor
>> >>
>> >> On Thu, Jul 21, 2011 at 11:17 AM, Julian Sinai <js...@gmail.com>
>> wrote:
>> >> > Igor,
>> >> > We do update  the DateTimeField itself, and this is what we see:
>> >> > SEVERE: cannot update component that does not have setOutputMarkupId
>> >> > property set to true. Component: [MarkupContainer [Component id =
>> >> > hours]]
>> >> > java.lang.IllegalArgumentException: cannot update component that does
>> >> > not
>> >> > have setOutputMarkupId property set to true. Component:
>> [MarkupContainer
>> >> > [Component id = hours]]
>> >> >         at
>> >> >
>> >> >
>> org.apache.wicket.ajax.AjaxRequestTarget.addComponent(AjaxRequestTarget.java:346)
>> >> >
>> >> > Julian
>> >> > On Thu, Jul 21, 2011 at 11:02 AM, Igor Vaynberg
>> >> > <ig...@gmail.com>
>> >> > wrote:
>> >> >>
>> >> >> cant update the DateTimeField itself?
>> >> >>
>> >> >> -igor
>> >> >>
>> >> >> On Thu, Jul 21, 2011 at 10:57 AM, Julian Sinai <js...@gmail.com>
>> >> >> wrote:
>> >> >> > We have a need to update a DateTimeField via Ajax, but its fields
>> are
>> >> >> > private, and they don't have setOutputMarkupId() set on them. The
>> >> >> > result
>> >> >> > is
>> >> >> > an exception upon Ajax update. Is there any solution other than
>> >> >> > cloning
>> >> >> > and
>> >> >> > owning DateTimeField?
>> >> >> >
>> >> >> > We are using Wicket 1.4.17 (and we can't upgrade to 1.5 just yet).
>> >> >> >
>> >> >> > Any help is appreciated.
>> >> >> > Julian
>> >> >> >
>> >> >
>> >> >
>> >
>> >
>>
>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

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


Re: DateTimeField and setOutputMarkupId()

Posted by Julian Sinai <js...@gmail.com>.
Nothing is adding it, we add the DateTimeField itself to the target.

Julian
On Thu, Jul 21, 2011 at 12:08 PM, Igor Vaynberg <ig...@gmail.com>wrote:

> what is adding that to the target?
>
> -igor
>
> On Thu, Jul 21, 2011 at 12:07 PM, Julian Sinai <js...@gmail.com> wrote:
> > It is the hours component of the DateTimeField. From DateTimeField.html:
> >
> >     <input type="text" wicket:id="hours" size="2" />&nbsp;:
> >
> > Julian
> > On Thu, Jul 21, 2011 at 11:24 AM, Igor Vaynberg <igor.vaynberg@gmail.com
> >
> > wrote:
> >>
> >> what is "hours" ?
> >>
> >> -igor
> >>
> >> On Thu, Jul 21, 2011 at 11:17 AM, Julian Sinai <js...@gmail.com>
> wrote:
> >> > Igor,
> >> > We do update  the DateTimeField itself, and this is what we see:
> >> > SEVERE: cannot update component that does not have setOutputMarkupId
> >> > property set to true. Component: [MarkupContainer [Component id =
> >> > hours]]
> >> > java.lang.IllegalArgumentException: cannot update component that does
> >> > not
> >> > have setOutputMarkupId property set to true. Component:
> [MarkupContainer
> >> > [Component id = hours]]
> >> >         at
> >> >
> >> >
> org.apache.wicket.ajax.AjaxRequestTarget.addComponent(AjaxRequestTarget.java:346)
> >> >
> >> > Julian
> >> > On Thu, Jul 21, 2011 at 11:02 AM, Igor Vaynberg
> >> > <ig...@gmail.com>
> >> > wrote:
> >> >>
> >> >> cant update the DateTimeField itself?
> >> >>
> >> >> -igor
> >> >>
> >> >> On Thu, Jul 21, 2011 at 10:57 AM, Julian Sinai <js...@gmail.com>
> >> >> wrote:
> >> >> > We have a need to update a DateTimeField via Ajax, but its fields
> are
> >> >> > private, and they don't have setOutputMarkupId() set on them. The
> >> >> > result
> >> >> > is
> >> >> > an exception upon Ajax update. Is there any solution other than
> >> >> > cloning
> >> >> > and
> >> >> > owning DateTimeField?
> >> >> >
> >> >> > We are using Wicket 1.4.17 (and we can't upgrade to 1.5 just yet).
> >> >> >
> >> >> > Any help is appreciated.
> >> >> > Julian
> >> >> >
> >> >
> >> >
> >
> >
>

Re: DateTimeField and setOutputMarkupId()

Posted by Igor Vaynberg <ig...@gmail.com>.
what is adding that to the target?

-igor

On Thu, Jul 21, 2011 at 12:07 PM, Julian Sinai <js...@gmail.com> wrote:
> It is the hours component of the DateTimeField. From DateTimeField.html:
>
>     <input type="text" wicket:id="hours" size="2" />&nbsp;:
>
> Julian
> On Thu, Jul 21, 2011 at 11:24 AM, Igor Vaynberg <ig...@gmail.com>
> wrote:
>>
>> what is "hours" ?
>>
>> -igor
>>
>> On Thu, Jul 21, 2011 at 11:17 AM, Julian Sinai <js...@gmail.com> wrote:
>> > Igor,
>> > We do update  the DateTimeField itself, and this is what we see:
>> > SEVERE: cannot update component that does not have setOutputMarkupId
>> > property set to true. Component: [MarkupContainer [Component id =
>> > hours]]
>> > java.lang.IllegalArgumentException: cannot update component that does
>> > not
>> > have setOutputMarkupId property set to true. Component: [MarkupContainer
>> > [Component id = hours]]
>> >         at
>> >
>> > org.apache.wicket.ajax.AjaxRequestTarget.addComponent(AjaxRequestTarget.java:346)
>> >
>> > Julian
>> > On Thu, Jul 21, 2011 at 11:02 AM, Igor Vaynberg
>> > <ig...@gmail.com>
>> > wrote:
>> >>
>> >> cant update the DateTimeField itself?
>> >>
>> >> -igor
>> >>
>> >> On Thu, Jul 21, 2011 at 10:57 AM, Julian Sinai <js...@gmail.com>
>> >> wrote:
>> >> > We have a need to update a DateTimeField via Ajax, but its fields are
>> >> > private, and they don't have setOutputMarkupId() set on them. The
>> >> > result
>> >> > is
>> >> > an exception upon Ajax update. Is there any solution other than
>> >> > cloning
>> >> > and
>> >> > owning DateTimeField?
>> >> >
>> >> > We are using Wicket 1.4.17 (and we can't upgrade to 1.5 just yet).
>> >> >
>> >> > Any help is appreciated.
>> >> > Julian
>> >> >
>> >
>> >
>
>

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


Re: DateTimeField and setOutputMarkupId()

Posted by Julian Sinai <js...@gmail.com>.
It is the hours component of the DateTimeField. From DateTimeField.html:

    <input type="text" wicket:id="hours" size="2" />&nbsp;:

Julian
On Thu, Jul 21, 2011 at 11:24 AM, Igor Vaynberg <ig...@gmail.com>wrote:

> what is "hours" ?
>
> -igor
>
> On Thu, Jul 21, 2011 at 11:17 AM, Julian Sinai <js...@gmail.com> wrote:
> > Igor,
> > We do update  the DateTimeField itself, and this is what we see:
> > SEVERE: cannot update component that does not have setOutputMarkupId
> > property set to true. Component: [MarkupContainer [Component id = hours]]
> > java.lang.IllegalArgumentException: cannot update component that does not
> > have setOutputMarkupId property set to true. Component: [MarkupContainer
> > [Component id = hours]]
> >         at
> >
> org.apache.wicket.ajax.AjaxRequestTarget.addComponent(AjaxRequestTarget.java:346)
> >
> > Julian
> > On Thu, Jul 21, 2011 at 11:02 AM, Igor Vaynberg <igor.vaynberg@gmail.com
> >
> > wrote:
> >>
> >> cant update the DateTimeField itself?
> >>
> >> -igor
> >>
> >> On Thu, Jul 21, 2011 at 10:57 AM, Julian Sinai <js...@gmail.com>
> wrote:
> >> > We have a need to update a DateTimeField via Ajax, but its fields are
> >> > private, and they don't have setOutputMarkupId() set on them. The
> result
> >> > is
> >> > an exception upon Ajax update. Is there any solution other than
> cloning
> >> > and
> >> > owning DateTimeField?
> >> >
> >> > We are using Wicket 1.4.17 (and we can't upgrade to 1.5 just yet).
> >> >
> >> > Any help is appreciated.
> >> > Julian
> >> >
> >
> >
>

Re: DateTimeField and setOutputMarkupId()

Posted by Igor Vaynberg <ig...@gmail.com>.
what is "hours" ?

-igor

On Thu, Jul 21, 2011 at 11:17 AM, Julian Sinai <js...@gmail.com> wrote:
> Igor,
> We do update  the DateTimeField itself, and this is what we see:
> SEVERE: cannot update component that does not have setOutputMarkupId
> property set to true. Component: [MarkupContainer [Component id = hours]]
> java.lang.IllegalArgumentException: cannot update component that does not
> have setOutputMarkupId property set to true. Component: [MarkupContainer
> [Component id = hours]]
>         at
> org.apache.wicket.ajax.AjaxRequestTarget.addComponent(AjaxRequestTarget.java:346)
>
> Julian
> On Thu, Jul 21, 2011 at 11:02 AM, Igor Vaynberg <ig...@gmail.com>
> wrote:
>>
>> cant update the DateTimeField itself?
>>
>> -igor
>>
>> On Thu, Jul 21, 2011 at 10:57 AM, Julian Sinai <js...@gmail.com> wrote:
>> > We have a need to update a DateTimeField via Ajax, but its fields are
>> > private, and they don't have setOutputMarkupId() set on them. The result
>> > is
>> > an exception upon Ajax update. Is there any solution other than cloning
>> > and
>> > owning DateTimeField?
>> >
>> > We are using Wicket 1.4.17 (and we can't upgrade to 1.5 just yet).
>> >
>> > Any help is appreciated.
>> > Julian
>> >
>
>

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


Re: DateTimeField and setOutputMarkupId()

Posted by Julian Sinai <js...@gmail.com>.
Igor,

We do update  the DateTimeField itself, and this is what we see:

SEVERE: cannot update component that does not have setOutputMarkupId
property set to true. Component: [MarkupContainer [Component id = hours]]
java.lang.IllegalArgumentException: cannot update component that does not
have setOutputMarkupId property set to true. Component: [MarkupContainer
[Component id = hours]]
        at
org.apache.wicket.ajax.AjaxRequestTarget.addComponent(AjaxRequestTarget.java:346)

Julian
On Thu, Jul 21, 2011 at 11:02 AM, Igor Vaynberg <ig...@gmail.com>wrote:

> cant update the DateTimeField itself?
>
> -igor
>
> On Thu, Jul 21, 2011 at 10:57 AM, Julian Sinai <js...@gmail.com> wrote:
> > We have a need to update a DateTimeField via Ajax, but its fields are
> > private, and they don't have setOutputMarkupId() set on them. The result
> is
> > an exception upon Ajax update. Is there any solution other than cloning
> and
> > owning DateTimeField?
> >
> > We are using Wicket 1.4.17 (and we can't upgrade to 1.5 just yet).
> >
> > Any help is appreciated.
> > Julian
> >
>

Re: DateTimeField and setOutputMarkupId()

Posted by Igor Vaynberg <ig...@gmail.com>.
cant update the DateTimeField itself?

-igor

On Thu, Jul 21, 2011 at 10:57 AM, Julian Sinai <js...@gmail.com> wrote:
> We have a need to update a DateTimeField via Ajax, but its fields are
> private, and they don't have setOutputMarkupId() set on them. The result is
> an exception upon Ajax update. Is there any solution other than cloning and
> owning DateTimeField?
>
> We are using Wicket 1.4.17 (and we can't upgrade to 1.5 just yet).
>
> Any help is appreciated.
> Julian
>

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