Hello Kalle,
Kalle Korhonen schrieb:
I don't see it as a workaround considering that you'd do exactly the
same if it was a regular form.
I do not fully agree here. I use the beaneditform to get rid of
t:textfield and t:label components. I don't want to fall back on normal
form writing. To record errors for single fields when doing cross field
or custom validations should be possible in beaneditform as well.
However, I suppose it'd be entirely
possible and likely even easy to implement a getField(String
propertyName) for BeanEditForm. Maybe open an issue for it?
I checked the code and I would need to introduce the following code in
the following classes (typed without compiling)
BeanEditForm
public void recordError(String fieldName, String errorMessage)
{
form.recordError(fieldName, errorMessage);
}
org.apache.tapestry5.corelib.components.Form and the interface
FormValidationControl
public void recordError(String fieldName, String errorMessage)
{
tracker.recordError(fieldName, errorMessage);
}
org.apache.tapestry5.ValidationTracker
org.apache.tapestry5.ValidationTrackerImp
public void recordError(String fieldName, String errorMessage)
{
FieldTracker ft = get(fieldName);
ft.errorMessage = errorMessage;
store(ft);
}
+ the get method
Before I write a patch, I would like to know from the core comitter if
this is likely to be included?
--
Best Regards / Viele Grüße
Sebastian Hennebrueder
-----
Software Developer and Trainer for Hibernate / Java Persistence
http://www.laliluna.de
Kalle
On Sat, Aug 22, 2009 at 10:54 AM, Sebastian
Hennebrueder<use...@laliluna.de> wrote:
I found this solution 5 minutes ago but thought it was a workaround. To
allow cross field validation, it would be nice
if the beaneditform provides access to the fields uses internally.
What do you think?
--
Best Regards / Viele Grüße
Sebastian Hennebrueder
-----
Software Developer and Trainer for Hibernate / Java Persistence
http://www.laliluna.de
Kalle Korhonen schrieb:
Oh that - you need tell the bean editor that you want the field to be
used in your form. See Property Editor Overrides at
http://tapestry.apache.org/tapestry5.1/guide/beaneditform.html, e.g:
<t:beaneditform object="formModel">
<t:parameter name="country">
<t:label for="country"/>
<t:textfield t:id="country" value="formModel.country"/>
</t:parameter>
</t:beaneditform>
Ulrich - in practice, is there a case when you would have to use
@InjectComponent over @Component with T5?
Kalle
On Sat, Aug 22, 2009 at 9:33 AM, Sebastian
Hennebrueder<use...@laliluna.de> wrote:
page snippet
<t:beaneditform object="formModel" t:id="form"
submit-label="message:submit"
/>
class snippet
@Component
private BeanEditForm form;
// @Component // doesnt work
// private TextField country;
in the method onValidateForm I would like to record errors which should
be
shown at the country field, when redisplaying the form.
Best Regards
Sebastian Hennebrueder
Ulrich Stärk schrieb:
That's not 100% correct. @Component defines a component in your
component
class that you can then use in your template while @InjectComponent
injects
a component defined in your template.
Cheers,
Uli
Kalle Korhonen schrieb:
How do you reference your myForm? All components are handled the same
way:
@Component
private TextField myInputField;
Kalle
On Sat, Aug 22, 2009 at 5:52 AM, Sebastian
Hennebrueder<use...@laliluna.de> wrote:
Hello,
the beaneditform provides a method recordError which expects a field
of
the
form. I couldn't find out, how I can get a reference to a field
of the form.
I would like to call
myForm.recordError(myInputField, "bad problem");
--
Best Regards / Viele Grüße
Sebastian Hennebrueder
-----
Software Developer and Trainer for Hibernate / Java Persistence
http://www.laliluna.de
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org