In your onSubmit() method, you're referring to the local variable "studyReference." Why not try getting the model value while inside the method?
On Tue, Aug 17, 2010 at 6:04 AM, nivs <shravann...@gmail.com> wrote: > > Hi James > > Point(s) noted. I have got something going here and it is working but is > this what you meant? Please see attached code and do bear with my questions. > > The variable studyReference which is the one that is wrapped within a > PropertyModel, remains or maintains the same reference even if the object > model is changed. So that is the key I suppose not to change the study > reference bound to the DDC any time and we wrap this in a property model. > > Still have to get to grips with Models. > > Thanks for the help > Cheers > Niv > > /* Form that contains the dropdown other form fields*/ > public class LookupForm extends Form{ > > private TextField<String> studyName; > private TextField<String> chiefName; > private AjaxButton lookupButton; > private DropDownChoice<StudyStatus> studyStatusDpChoices; > > > > public LookupForm(String id,Model<StudyContainer> model){ > super(id,model); > } > public void initForm(){ > > Model<StudyContainer> studyContainerModel = (Model)getModel(); > > //Create a propertyModel to bind the components of this form, > the root which is StudyContainer > PropertyModel<Study> pm = new > PropertyModel<Study>(studyContainerModel,"study"); > > //Just to know what the initial study reference is > final Study studyReference = pm.getObject(); > > studyName = new TextField("studyName",new > PropertyModel<String>(pm,"studyName"));//Create another new PropertyModel of > type Study > chiefName = new TextField("chiefName", new > PropertyModel<String>(pm,"chiefName")); > > lookupButton = new AjaxButton("search"){ > �...@override > protected void onSubmit(AjaxRequestTarget target, > Form<?> form) { > Model<StudyContainer> iModel = > (Model)getModel(); > doLookup(target,studyReference); > } > }; > > > ChoiceRenderer defaultChoiceRenderer = new > ChoiceRenderer("name", "studyStatusKey"); > > //Another PropertyModel for rendering the DropDowns and pass > in the Property Model instance of type Study > PropertyModel<Study> pmStudyStatus = new > PropertyModel<Study>(pm,"studyStatus"); > > //Static list > List<StudyStatus> studyStatusList = new > ArrayList<StudyStatus>(); > StudyStatus ss = new StudyStatus(); > ss.setName("Active"); > ss.setStudyStatusKey(new Long("1")); > studyStatusList.add(ss); > ss = new StudyStatus(); > ss.setName("Inactive"); > ss.setStudyStatusKey(new Long("2")); > studyStatusList.add(ss); > > studyStatusDpChoices = new > DropDownChoice("studyStatusDDC",pmStudyStatus,studyStatusList,defaultChoiceRenderer); > > add(studyName); > add(chiefName); > add(studyStatusDpChoices); > add(lookupButton); > } > > protected void doLookup(AjaxRequestTarget target, Study study){} > > } > > > > public class Lookup extends Panel{ > > Model<StudyContainer> studyContainerModel; > public Lookup(String id) { > super(id); > } > public void initialise(){ > > studyContainerModel = new Model<StudyContainer>( new > StudyContainer()); > > LookupForm lookupForm = new LookupForm("lookupForm", > studyContainerModel){ > > protected void doLookup(AjaxRequestTarget target, > Study studyReference){ > > > StudyContainer studyContainer = > (StudyContainer)this.getModelObject(); > > //Get the currently populates study info > Study currentStudy = studyContainer.getStudy(); > > > System.out.println(currentStudy.getChiefName()); > > StudyStatus status = > currentStudy.getStudyStatus(); > System.out.println(status.getName()); > > //Simulate a user's select operation and reset > the study > StudyContainer newOne = new StudyContainer(); > Study selectedStudy = new Study(); > selectedStudy.setChiefName("Testing"); > selectedStudy.setStudyName("Testing"); > newOne.setStudy(selectedStudy); > this.setModelObject(newOne);//Set it with the > new model object with the study that was selected > > //The studyReference instance always refers to > the original study that was used to populate the drop down never changes > String studyRefDetails = > studyReference.getStudyName() + " " + > studyReference.getStudyStatus().getName(); > > System.out.println("\n: 2:"+ studyRefDetails); > } > > }; > lookupForm.initForm(); > add(lookupForm); > } > > > } > > public class StudyContainer implements Serializable{ > > private Study study; > private List<Study> studyList; > > /** > * Constructor > */ > public StudyContainer(){ > study = new Study(); > studyList = new ArrayList<Study>(); > } > > //Accessor for study > public Study getStudy() { > return study; > } > public void setStudy(Study study) { > this.study = study; > } > > //Accessor for study List > public List<Study> getStudyList() { > return studyList; > } > public void setStudyList(List<Study> studyList) { > this.studyList = studyList; > } > > } > > > -- > View this message in context: > http://apache-wicket.1842946.n4.nabble.com/DropDownChoice-does-not-push-value-into-Model-tp2323809p2328046.html > Sent from the Wicket - User mailing list archive at Nabble.com. > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org