Does this thread apply?
(http://www.nabble.com/ajax-failed-to-update-a-component-%28wicket-1.2%29-tf1844050.html#a5033398)
/Gwyn
On 13/08/06, Mats Norén <[EMAIL PROTECTED]> wrote:
> What I want the following code to do is to iterate all propertyTypes
> and create or lookup the appropriate property on my Person-object and
> create a TextField for each one.
>
> I've defined a model for the propertyTypes and a model for a
> TeamPerson-object which contains my Person.
>
> Everything works fine except that the setObject(Component c, Object o)
> in PersonPropertyModel is never called.
> On screen the form renders and look fine but nothing gets written back.
>
> Would appreciate another pair of eyes on this.
>
>
> IModel propertyTypes = new LoadableDetachableModel() {
> protected Object load() {
> return userService.allPropertyTypes();
> }
> };
>
> ListView dynamicProperties = new
> ListView("dynamicProperties", propertyTypes) {
>
> protected void populateItem(ListItem item) {
>
> TextField valueField = new TextField("value");
> valueField.setOutputMarkupId(true);
> FormComponentFeedbackBorder feedbackBorder = new
> FormComponentFeedbackBorder("feedback");
> feedbackBorder.setRenderBodyOnly(true);
> feedbackBorder.add(valueField);
>
> item.add(feedbackBorder);
>
> Label label = new Label("propertyType.name");
> label.add(new AttributeModifier("for", true, new
> Model(valueField.getId())));
> item.add(label);
>
> }
>
> protected IModel getListItemModel(IModel
> listViewModel, int index) {
> PropertyType pt = (PropertyType)
> super.getListItemModel(listViewModel, index).getObject(null);
> return new CompoundPropertyModel(new
> PersonPropertyModel(EditTeamPersonPanel.this.getModel(), pt));
> }
>
> }.setReuseItems(true);
>
>
>
> public class PersonPropertyModel extends AbstractModel {
>
> private final IModel teamPerson;
> private final PropertyType propertyType;
>
> public PersonPropertyModel(IModel teamPersonModel,
> PropertyType propertyType) {
> this.teamPerson = teamPersonModel;
> this.propertyType = propertyType;
> }
>
> public Object getObject(Component c) {
> logger.info("Calling getObject for component: " + c.getId());
> TeamPerson tp = (TeamPerson) teamPerson.getObject(c);
> Person person = tp.getPerson();
> PersonProperty pp = person.getPropertyOfType(propertyType);
> if (pp == null) {
> logger.info("Adding new property");
> pp = new PersonProperty();
> pp.setPerson(person);
> pp.setPropertyType(propertyType);
> }
> return pp;
> }
>
> public void setObject(Component c, Object o) {
> TeamPerson tp = (TeamPerson) teamPerson.getObject(c);
> Person person = tp.getPerson();
> logger.info("Calling setObject for property: " +
> ((PersonProperty) o).getPropertyType().getName());
> person.setPropertyOfType((PersonProperty) o);
> }
>
>
> public void detach() {
> super.detach();
> teamPerson.detach();
> }
> }
>
> /Mats
>
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> Wicket-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>
--
Download Wicket 1.2.1 now! - http://wicketframework.org
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user