RE: Ajax and OpenSessionInViewFilter problems
Hi All, Follow-up to my own post. I found the following here: http://old.nabble.com/Wicket---No-Serializable-objects-Web-application-t d19351608.html Quote: "However , there is a problem if you use loadabledetachable with AJAX requests on your page. Model.detach() is called on every request, which causes your object to be retrieved from database on the next Model.getObject() call. This means you lose all changes on your bound domain obect on every ajax request. I found to solutions to this, and i like neither of them: a) use DTOs, which means a lot of code duplication. b) write the current object state to the database on every detach, which means you might store objects in an incomplete state, before the user explicitly tells the application to store what she or hehas entered. If anybody has a nicer solution to this, i'd love to hear about it. " Option b) is definitely a no-go, so it seems I'll have to use DTO's then. If someone knows of a nicer solution I would also love to hear about it. For now I guess I'll go the DTO road. Thanks, Jonck -----Original Message----- From: Kogel, Jonck-van-der [mailto:jonck-van-der.ko...@bmw.nl] Sent: donderdag 18 februari 2010 14:30 To: users@wicket.apache.org Subject: Ajax and OpenSessionInViewFilter problems Hi All, As the subject reads, I'm having some problems with Ajax and the OpenSessionInViewFilter. Here's my basic setup: I've got a page with some address info, such as street/city/zipcode. Let's call the current value of these fields V1. There is also an ajax link to open a modal panel that allows the user to look up street/city info based on the zipcode. When the modal panel opens the info V1 is passed on to the modal panel as initial value. Let's say here the user enters new info and a street/city is found, we'll call this info V2. The user then presses the submit button on the modal panel and indeed V2 is now shown on the main page. However, when I now click the ajax link to open the modal panel again, the user get's shown V1 in the modal panel as initial filling. When finally submitting the page V2 is persisted, so the information is being retained somewhere. I have debugged the application and I see the setters of my domain object being called. Also when debugging however I see that the load() method of the LoadableDetachableModel is being called when I hit the ajax link, so it seems like a new version of the object is being retrieved from the database. I thought that's what the OpenSessionInViewFilter was for, to allow for multiple requests in your view without Hibernate closing/opening the session each time and retrieving fresh copies of your objects. Here is some relevant code: OpenSessionInView setup in web.xml: opensessioninview org.springframework.orm.hibernate3.support.OpenSessionInViewFilter singleSession true Submit link on my modal panel: searchResultsHolder.add(new AjaxSubmitLink("selectMatch") { @Override protected void onSubmit(AjaxRequestTarget target, Form form) { Address address = addressModel.getObject(); address.setZipcode(foundZipcode.getZipcode()); address.setHouseNr(foundZipcode.getHouseNr()); address.setStreet(foundZipcode.getStreet().getStreetName()); address.setCity(foundZipcode.getCity().getCityName()); address.setCountry(Country.NL); address.setAddressValidated(true); for (Component component : updateList) { target.addComponent(component); } modalWindow.close(target); } }); The LoadableDetachableModel used (and is being called when I hit the ajax link): final IModel mergedModel = new LoadableDetachableModel() { @Override protected ARF load() { return arfService.load(arfId); } }; Many thanks for any help! Kind regards, Jonck - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Ajax and OpenSessionInViewFilter problems
Hi All, As the subject reads, I'm having some problems with Ajax and the OpenSessionInViewFilter. Here's my basic setup: I've got a page with some address info, such as street/city/zipcode. Let's call the current value of these fields V1. There is also an ajax link to open a modal panel that allows the user to look up street/city info based on the zipcode. When the modal panel opens the info V1 is passed on to the modal panel as initial value. Let's say here the user enters new info and a street/city is found, we'll call this info V2. The user then presses the submit button on the modal panel and indeed V2 is now shown on the main page. However, when I now click the ajax link to open the modal panel again, the user get's shown V1 in the modal panel as initial filling. When finally submitting the page V2 is persisted, so the information is being retained somewhere. I have debugged the application and I see the setters of my domain object being called. Also when debugging however I see that the load() method of the LoadableDetachableModel is being called when I hit the ajax link, so it seems like a new version of the object is being retrieved from the database. I thought that's what the OpenSessionInViewFilter was for, to allow for multiple requests in your view without Hibernate closing/opening the session each time and retrieving fresh copies of your objects. Here is some relevant code: OpenSessionInView setup in web.xml: opensessioninview org.springframework.orm.hibernate3.support.OpenSessionInViewFilter singleSession true Submit link on my modal panel: searchResultsHolder.add(new AjaxSubmitLink("selectMatch") { @Override protected void onSubmit(AjaxRequestTarget target, Form form) { Address address = addressModel.getObject(); address.setZipcode(foundZipcode.getZipcode()); address.setHouseNr(foundZipcode.getHouseNr()); address.setStreet(foundZipcode.getStreet().getStreetName()); address.setCity(foundZipcode.getCity().getCityName()); address.setCountry(Country.NL); address.setAddressValidated(true); for (Component component : updateList) { target.addComponent(component); } modalWindow.close(target); } }); The LoadableDetachableModel used (and is being called when I hit the ajax link): final IModel mergedModel = new LoadableDetachableModel() { @Override protected ARF load() { return arfService.load(arfId); } }; Many thanks for any help! Kind regards, Jonck
RE: DropDownChoice and selected value...
Hi, I also had this problem once. It turned out to have to do with my list of choices becoming stale. I solved this by putting the choices in a LoadableDetachableModel. ie: IModel> yourObjectsModel = new LoadableDetachableModel>() { @Override protected List load() { return yourObjectService.findAll(); } }; add(new YourDropDownChoice("foo", new PropertyModel(yourModel, "bar"), yourObjectsModel)); From: Facundo Miquel [mailto:facu...@easytech.com.ar] Sent: donderdag 7 januari 2010 15:18 To: users@wicket.apache.org Subject: DropDownChoice and selected value... Hello all.. First of all, I know that this has been discussed here, I searched the archives but could not find an answer, or at least understand one, so please If someone can help me I would greatly appreciate it... I have a small problem with Drop Down Choices and the selected value when editing an existing record... and I wanted to validate that I'm doing things the correct way.. and if so.. if there is a known issue the scenario is as follows... I created an extended class (just to simplify my work) to generate DDC from a multivalues tables (aka, a table where one holds different types of things.. countries, cities, status codes, etc..). The rest of the mail will be in RED for readability... In my tables I'm required to store the code and not the value so basically I created the following class..(these are fractions.. I'm attaching the actual clasess..) public class mvDropDownChoice extends DropDownChoice { ... static List mvValues = null; @SuppressWarnings("serial") public mvDropDownChoice(String id, String mvCode, IModel model) { super(id, new PropertyModel(model, id),sysMultivaluesProvider.getMVList(mvCode),new IChoiceRenderer() { public String getDisplayValue(Object object) { SysMultivalues mv = (SysMultivalues) object; return mv.getMvMeaning(); } public String getIdValue(Object object, int index) { if (index == -1) return null; return ((SysMultivalues)mvValues.get(index)).getMvCode(); } }); mvValues = sysMultivaluesProvider.getMVList(mvCode); } ... .. now I call this in the following way.. --- import net.databinder.valid.hib.ValidDataForm; @AuthorizeInstantiation(Roles.USER) public class updateUserProfile extends Panel{ private static final long serialVersionUID = 2834437668800017171L; EditForm form; ... public updateUserProfile(String id, String userId) { super(id); final Integer userIdInt = Integer.parseInt(userId); add(form = new EditForm("userProfileForm", Long.parseLong(userId.trim(; } protected class EditForm extends ValidDataForm { @SuppressWarnings({ "serial", "unchecked" }) public EditForm(String id, Long userId) { super(id, SecUsers.class,userId); add(new TextField("userName").setRequired(true)); . add(new mvDropDownChoice("userProfile.country","COUNTRY", this.getModel())); . and this generates the following HTML output -- Choose One Argentina Uruguay --- Wich is correct, O have the code.. as the value. the description as the user readable choice.. the CODE is persisted to the database (AKA in a select country from sec_users the country is returned ARG | UY and not Argentina | Uruguay which is what I need..) but my problem as stated before is that I can't get the choice to come up with the correct selected value (Argentina / Uruguay) and it always comes out with "Choose One".. TIA
RE: Autosize modal window
Ok, great, the height is indeed autosizing nicely now. Is there any way to have the width autosize as well? Thanks, Jonck -Original Message- From: Ilja Pavkovic [mailto:ilja.pavko...@binaere-bauten.de] Sent: donderdag 7 januari 2010 13:51 To: users@wicket.apache.org Cc: Kogel, Jonck-van-der Subject: Re: Autosize modal window Hi, I forgot the following line: modalWindow.setUseInitialHeight(false); Best Regards, Ilja Pavkovic Am Donnerstag, 7. Januar 2010 12:40:25 schrieb Kogel, Jonck-van-der: > Hi Ilja, > Ok, that's good, I'm not using PageCreator. But how do I then make the > ModalWindow autosize? Perhaps I'm missing something in the JavaDocs > but I can't find it anywhere. > > Thanks, Jonck > > -Original Message- > From: Ilja Pavkovic [mailto:ilja.pavko...@binaere-bauten.de] > Sent: woensdag 6 januari 2010 17:23 > To: users@wicket.apache.org > Subject: Re: Autosize modal window > > Hi, > > according to the inline documentation of ModalWindow you can only > autosize if you add components and don't use ModalWindow.PageCreator > > something like > > ModalWindow modalWindow = new ModalWindow(); modalWindow.add(new > MyPanel(modalWindow.getComponentId()); > > > > Best Regards, > Ilja Pavkovic > > Am Mittwoch, 6. Januar 2010 17:12:05 schrieb Kogel, Jonck-van-der: > > Hi, > > Is it possible to have a modal window auto-size depending on its > > contents? I've been fiddling with header contributions and such but > > can't get it to work. > > > > Thanks! > > > > Jonck > > -- > binaere bauten gmbh · tempelhofer ufer 1a · 10961 berlin > >+49 · 171 · 9342 465 > > Handelsregister: HRB 115854 - Amtsgericht Charlottenburg > Geschäftsführer: Dipl.-Inform. Ilja Pavkovic, Dipl.-Inform. Jost > Becker > > - > 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 > -- binaere bauten gmbh · tempelhofer ufer 1a · 10961 berlin +49 · 171 · 9342 465 Handelsregister: HRB 115854 - Amtsgericht Charlottenburg Geschäftsführer: Dipl.-Inform. Ilja Pavkovic, Dipl.-Inform. Jost Becker - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
RE: Autosize modal window
Hi Ilja, Ok, that's good, I'm not using PageCreator. But how do I then make the ModalWindow autosize? Perhaps I'm missing something in the JavaDocs but I can't find it anywhere. Thanks, Jonck -Original Message- From: Ilja Pavkovic [mailto:ilja.pavko...@binaere-bauten.de] Sent: woensdag 6 januari 2010 17:23 To: users@wicket.apache.org Subject: Re: Autosize modal window Hi, according to the inline documentation of ModalWindow you can only autosize if you add components and don't use ModalWindow.PageCreator something like ModalWindow modalWindow = new ModalWindow(); modalWindow.add(new MyPanel(modalWindow.getComponentId()); Best Regards, Ilja Pavkovic Am Mittwoch, 6. Januar 2010 17:12:05 schrieb Kogel, Jonck-van-der: > Hi, > Is it possible to have a modal window auto-size depending on its > contents? I've been fiddling with header contributions and such but > can't get it to work. > > Thanks! > > Jonck > -- binaere bauten gmbh · tempelhofer ufer 1a · 10961 berlin +49 · 171 · 9342 465 Handelsregister: HRB 115854 - Amtsgericht Charlottenburg Geschäftsführer: Dipl.-Inform. Ilja Pavkovic, Dipl.-Inform. Jost Becker - 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
Autosize modal window
Hi, Is it possible to have a modal window auto-size depending on its contents? I've been fiddling with header contributions and such but can't get it to work. Thanks! Jonck
RadioGroup with radio objects with same values
Hi, I have a radiogroup that is built up dynamically, so I don't know ahead of time what the choices are going to be. Now I noticed that if I have 3 radio buttons in a RadioGroup and let's say they all have the same value (are all empty for example), the selected radio button will be the last one in the group. Let me give an example: RadioGroup * value1 = "foo" * value2 = "foo" * value3 = "foo" So all 3 radio choices have the value "foo". The persisted value is also "foo", so all are "valid" so to speak and therefore the one that gets selected is the 3d one. However, I would like it to be the first. Could someone point me in the right direction how I should go about overriding this behavior so it takes the first value it encounters instead of the last? Thanks, Jonck
RE: DropDownChoice losing selection after ajax update
Martin thank you!! It was indeed the form in the ModalWindow causing the error. I thought that nested forms was not an issue with Wicket but I guess it is? Anyway, replacing the form on the ModalWindow with the one you suggested works like a charm. Thanks again! -Original Message- From: Martin Makundi [mailto:martin.maku...@koodaripalvelut.com] Sent: woensdag 6 januari 2010 14:11 To: users@wicket.apache.org Subject: Re: DropDownChoice losing selection after ajax update There can be many reasons... maybe you show more of the html and java pages? Here is some previous discussion about such situations: http://mail-archives.apache.org/mod_mbox/wicket-users/200904.mbox/%3c23274595.p...@talk.nabble.com%3e 2010/1/6 Kogel, Jonck-van-der : > Hi, > > I have a simple DropDownChoice that holds male/female option. The > selected value is retrieved from the database fine. Now I have a modal > panel and when it closes it refreshes a certain portion of my screen > using ajax. However, when the ajax refresh comes back the selected > value gets lost. When I look in the ajax debug screen I see the list > of options coming back and the selected value is empty. This happens > even when I don't do anything with the value of the dropdown in the > modal panel, but simply refresh the dropdown. Any ideas? Here is some code: > > The dropdown: (the list of options is an enum, mergedModel is a > LoadableDetatchableModel) > > DropDownChoice sex = new DropDownChoice("sex", > new PropertyModel(mergedModel, "user.sex"), > Utility.arrayToList(new Sex[]{Sex.MALE, Sex.FEMALE})); > sex.setOutputMarkupId(true); add(sex); > > What happens when I close the modal panel: (the contentPanel gets > passed a reference to the modalPanel and the objects that need > refreshing) > > form.add(new AjaxSubmitLink("save") { > �...@override > protected void onSubmit(AjaxRequestTarget target, Form form) { > for (Component comp : updateList) { > target.addComponent(comp); > } > modalWindow.close(target); > } > }); > > The ajax response: > > id="sex11" > > > > > Thanks for any help! > > Kind regards, Jonck > > - 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
DropDownChoice losing selection after ajax update
Hi, I have a simple DropDownChoice that holds male/female option. The selected value is retrieved from the database fine. Now I have a modal panel and when it closes it refreshes a certain portion of my screen using ajax. However, when the ajax refresh comes back the selected value gets lost. When I look in the ajax debug screen I see the list of options coming back and the selected value is empty. This happens even when I don't do anything with the value of the dropdown in the modal panel, but simply refresh the dropdown. Any ideas? Here is some code: The dropdown: (the list of options is an enum, mergedModel is a LoadableDetatchableModel) DropDownChoice sex = new DropDownChoice("sex", new PropertyModel(mergedModel, "user.sex"), Utility.arrayToList(new Sex[]{Sex.MALE, Sex.FEMALE})); sex.setOutputMarkupId(true); add(sex); What happens when I close the modal panel: (the contentPanel gets passed a reference to the modalPanel and the objects that need refreshing) form.add(new AjaxSubmitLink("save") { @Override protected void onSubmit(AjaxRequestTarget target, Form form) { for (Component comp : updateList) { target.addComponent(comp); } modalWindow.close(target); } }); The ajax response: Thanks for any help! Kind regards, Jonck
RE: Multi-user environment problem
Actually it's in the specs that the button is not visible when not applicable. So I can't use your proposed solution. However, I solved it as follows: add(new Button("edit") { private static final long serialVersionUID = 5348615260629883659L; private Boolean localVisibleFlag; @Override public void onSubmit() { String username = ((AppAuthenticatedWebSession)getSession()).getUsername(); ARF arf = arfModel.getObject(); if (arf.getEditor() == null) { arf.setEditor(username); arfService.save(arf); } localVisibleFlag = null; } @Override public boolean isVisible() { if (localVisibleFlag == null) { String editor = arfModel.getObject().getEditor(); if (editor == null) { localVisibleFlag = true; return true; } localVisibleFlag = false; return false; } else { return localVisibleFlag; } } }); Works like a charm. Cheers, Jonck -Original Message- From: Jeremy Thomerson [mailto:jer...@wickettraining.com] Sent: woensdag 23 december 2009 17:14 To: users@wicket.apache.org Subject: Re: Multi-user environment problem Override isEnabled instead. That way it is visible, even after being clicked when the other person clicked it first. You may have to add some logic in the onClick that says "oops - already in use". -- Jeremy Thomerson http://www.wickettraining.com On Wed, Dec 23, 2009 at 9:46 AM, Kogel, Jonck-van-der < jonck-van-der.ko...@bmw.nl> wrote: > Hi, > I'm having a problem with a multi-user environment. I have a form, > which has an edit button. When a user presses the edit button, I write > to the database that this current user is editing the form. So when > another user comes along and wants to edit it, he gets the message > that the form cannot be edited because it's locked by another user. > This works fine when user A loads the form, presses the edit button > and after that user B comes along. However, if the process is: user A > comes along and loads the form, user B loads the same form, then user > A presses the edit button and after that user B presses it. Then I get > an unexpected runtimeexception and the message: > WicketMessage: Submit Button topBar:edit (path=arfForm:topBar:edit) is > not visible > > Now this obviously has to do with the way I'm determining whether or > not this button should be visible. What I did is extend the Button > class and override the isVisible method. Here I check whether there is > no editor, if so, the button should be visible so the current user can > become the editor. However, since in this situation, user B became the > editor while this user had already loaded the form, the button is no > longer valid for user A but he already has it on his screen. I thought > to check this in the onSubmit method and retrieve the persisted object > and check if nothing had changed in the meantime, but apparently > Wicket checks whether this button should have been visible in the > first place. And since I use LoadableDetachableModel as the underlying > model (arfModel) the updated object is retrieved and Wicket detects > that the isVisible method returns false and throws an error that I'm > trying to call the onSubmit method. > > Does anyone know of an elegant solution for this problem? Please see > below for my implementation of the edit button. > > Thanks, Jonck > > add(new Button("edit") { > @Override > public void onSubmit() { > String username = > ((AppAuthenticatedWebSession)getSession()).getUsername(); > ARF currentArf = arfModel.getObject(); > > ARF persistedArf = arfService.load(currentArf.getId()); > > if (persistedArf.getEditor() == null || > persistedArf.getEditor().equals(username)) { > currentArf.setEditor(username); > arfService.save(currentArf); > } > } > > @Override > public boolean isVisible() { > String editor = arfModel.getObject().getEditor(); if (editor == > null) { > return true; > } > return false; > } > }); > - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Multi-user environment problem
Hi, I'm having a problem with a multi-user environment. I have a form, which has an edit button. When a user presses the edit button, I write to the database that this current user is editing the form. So when another user comes along and wants to edit it, he gets the message that the form cannot be edited because it's locked by another user. This works fine when user A loads the form, presses the edit button and after that user B comes along. However, if the process is: user A comes along and loads the form, user B loads the same form, then user A presses the edit button and after that user B presses it. Then I get an unexpected runtimeexception and the message: WicketMessage: Submit Button topBar:edit (path=arfForm:topBar:edit) is not visible Now this obviously has to do with the way I'm determining whether or not this button should be visible. What I did is extend the Button class and override the isVisible method. Here I check whether there is no editor, if so, the button should be visible so the current user can become the editor. However, since in this situation, user B became the editor while this user had already loaded the form, the button is no longer valid for user A but he already has it on his screen. I thought to check this in the onSubmit method and retrieve the persisted object and check if nothing had changed in the meantime, but apparently Wicket checks whether this button should have been visible in the first place. And since I use LoadableDetachableModel as the underlying model (arfModel) the updated object is retrieved and Wicket detects that the isVisible method returns false and throws an error that I'm trying to call the onSubmit method. Does anyone know of an elegant solution for this problem? Please see below for my implementation of the edit button. Thanks, Jonck add(new Button("edit") { @Override public void onSubmit() { String username = ((AppAuthenticatedWebSession)getSession()).getUsername(); ARF currentArf = arfModel.getObject(); ARF persistedArf = arfService.load(currentArf.getId()); if (persistedArf.getEditor() == null || persistedArf.getEditor().equals(username)) { currentArf.setEditor(username); arfService.save(currentArf); } } @Override public boolean isVisible() { String editor = arfModel.getObject().getEditor(); if (editor == null) { return true; } return false; } });
PropertyModel question
Hi, I ran into some strange behavior with PropertyModels vs. "regular" models. I set up a very simple example that demonstrates what works on the one hand and what I would expect to work as well but does not. What I'm doing is very basic: I'm population a list and when a user clicks on an item in the link the details of that object are shown using ajax. The following code works fine: public class HomePage extends WebPage { @SpringBean private OrfDataService orfDataService; private OrfData selected = new OrfData(); public HomePage(final PageParameters parameters) { // code block to be replaced Model testModel = new Model() { public String getObject() { return selected.getProdNo(); } }; final Label testLabel = new Label("testLabel", testModel); // end of code block to be replaced testLabel.setOutputMarkupId(true); add(testLabel); add(new ListView("orfDataList", orfDataService.getOrfData()) { public void populateItem(final ListItem listItem) { // add all the listItem labels etc.. listItem.add(new AjaxLink("selectLink") { @Override public void onClick(AjaxRequestTarget target) { selected = getModelObject(); target.addComponent(testLabel); } }); } }); } public void setOrfDataService(OrfDataService orfDataService) { this.orfDataService = orfDataService; } } However, naturally I want to do the above using PropertyModel. But if I replace the commented code block above with the following line: final Label testLabel = new Label("testLabel", new PropertyModel(selected, "prodNo")); The label no longer gets updated. Any idea what I'm doing wrong here? Thanks, Jonck P.S. I know the usage of the orfDataService is not really all that great here, it's just as an example
Passing models to panels - Couldn't resolve model type of Model
Hi, I'm have a question about my application design and whether I should pass a model to a panel or an id and create a new LoadableDetachableModel in the panel. Here is a basic layout of my app: I have taken out the non-relevant parts for brevity. My domain model is basically as follows: Base class is ARF. It has an owner, a keeper and a user. The owner, keeper and user all have a correspondence address and a visiting address. The layout of my application reflects this. The main screen has 3 tabs, one for owner, one for user and one for keeper. These tabs are panels. I also defined one addressPanel to display all the addresses. So when I am building my view, it is as follows: On my page I create a LoadableDetachableModel as follows: IModel arfModel = new LoadableDetachableModel() { @Override protected ARF load() { return arfService.load(arfId); } }; I pass this model on to my tabs panel: public class ArfPageTabsPanel extends Panel { public ArfPageTabsPanel(String id, IModel arfModel) { super(id); add(new TabOwner("tabOwner", arfModel)); add(new TabKeeper("tabKeeper", arfModel)); add(new TabUser("tabUser", arfModel)); } } The TabOwner class is as follows: public class TabOwner extends Panel { public TabOwner(String id, IModel arfModel) { super(id); add(new AddressPanel("correspondenceAddress", "Correspondentie-adres", new PropertyModel(arfModel, "owner.correspondenceAddress"))); add(new AddressPanel("visitingAddress", "Bezoekadres", new PropertyModel(arfModel, "owner.visitingAddress"))); } } the TabKeeper and TabUser classes are much the same as the TabOwner class (probably I could do some code reuse here, I'll do that when everything is working and I understand it all). And then the AddressPanel is as follows: public class AddressPanel extends Panel { public AddressPanel(String id, String addressHeader, IModel addressModel) { super(id); add(new Label("addressHeader", addressHeader)); add(new TextField("street", new PropertyModel(addressModel, "street"))); add(new TextField("houseNr", new PropertyModel(addressModel, "houseNr"))); add(new TextField("houseNrExt", new PropertyModel(addressModel, "houseNrExt"))); add(new TextField("zipcode", new PropertyModel(addressModel, "zipcode"))); add(new TextField("city", new PropertyModel(addressModel, "city"))); } } So I am nesting all my models here, since the underlying arfModel is a LoadableDetachableModel and I don't want to get my panels and the main view out of sync. The problem is however that sometimes there is no owner/keeper/user and hence also no addresses for that relation. When I do load an ARF that has a null keeper for example, my console is flooded with the following message: 2009-11-20 17:42:02,274 WARN [AbstractTextComponent] Couldn't resolve model type of Model:classname=[org.apache.wicket.model.PropertyModel]:nestedModel=[Mod el:classname=[org.apache.wicket.model.PropertyModel]:nestedModel=[Model: classname=[com.bmw.preparer2.view.ArfPage$1]:attached=true:tempModelObje ct=[com.bmw.preparer2.domain@d737e3]]:expression=[user.visitingAddre ss]]:expression=[city] for [MarkupContainer [Component id = city]], please set the type yourself. I am assuming that this has to do with that I am nesting my models and that one of them is null. So in the AddressPanel I am creating a PropertyModel where the passed on model is potentially null. So my question is, how do I handle such a situation? Please advise. Thanks very much, Jonck van der Kogel