Hi,

 > Here you bind the textField's model to productItem, which is the form's 
initial model.
If you change the latter afterwards, your textField's will still work 
with the old model.

I have omitted the PropertyModel binding to components. Also I tried using
OnModelChanged() and onModelChanging() on a textbox to check what happens
while model is updated. My observation is that the model changes only the
first time. After first search, these method are not getting called at all (
indicating models are not being updated perhaps). 

Anyway I am pasting the whole new searchform code below : 

private class ProductContainer extends WebMarkupContainer {

                private static final long serialVersionUID = 1L;

                ProductSearchForm productSearchForm;

                private class ProductSearchForm extends Form<ProductPageModel> {

                        TextField<String> productName, productId;
                        DropDownChoice<LookupPageModel> productType, 
productGroup,
                                        productStatus;
                        CheckBox showProductSummary;
                        AjaxButton searchProduct, resetProduct;
                        ProductPageModel searchObject, productItemModel;

                        private static final long serialVersionUID = 1L;

                        public ProductSearchForm(String id, ProductPageModel 
productItem) {
                                super(id);

                                LOG.info("ProductSearchForm : productItem - " + 
productItem );
                                
                                List<LookupPageModel> productGroupList = null, 
productTypesList = null,
productStatusList = null;

                                CompoundPropertyModel compoundProductItem = 
                                                                        new 
CompoundPropertyModel(productItem);
                                
                                setDefaultModel(compoundProductItem);

                                productName = new 
TextField<String>("productName",String.class) {
                                        @Override
                                        protected void onModelChanged() {
                                                // TODO Auto-generated method 
stub
                                                super.onModelChanged();
                                                LOG.info("Model has changed, 
value is :"+ this.getModelObject());
                                        }
                                        @Override
                                        protected void onModelChanging() {
                                                // TODO Auto-generated method 
stub
                                                super.onModelChanging();
                                                LOG.info("Model is going to 
change, value is :"+
this.getModelObject());
                                        }
                                };
                                productName.add(new AttributeAppender("class", 
Model
                                                .of("toggle")));
                                productName.add(
                                                new 
AjaxFormComponentUpdatingBehavior("onblur") {
                                                
                                                protected void 
onUpdate(AjaxRequestTarget target) {
                                                        LOG.info("onUpdate 
ProdudtItem : "+ productName.getInput());
                                                }
                                        });

                                productName.add(new 
AttributeAppender("defaultValue", Model
                                                .of(productNameEnterLabel)));

                                productId = new 
TextField<String>("productId",String.class);
                                productId.add(new 
AttributeAppender("defaultValue", Model
                                                .of(productIdEnterLabel)));
                                productId
                                                .add(new 
AttributeAppender("class", Model.of("toggle")));

                                productTypesList = lookup.getProductTypes();
                                productType = new 
DropDownChoice<LookupPageModel>(
                                                "productType",productTypesList,
                                                lookupRenderer) {
                                        @Override
                                        protected String 
getNullKeyDisplayValue() {
                                                return "Select Product Type";
                                        }
                                };

                                productGroupList = lookup.getProductGroups();
                                productGroup = new 
DropDownChoice<LookupPageModel>(
                                                                        
"productGroup",productGroupList,
                                        lookupRenderer) {
                                        @Override
                                        protected String 
getNullKeyDisplayValue() {
                                                return "Select Product Group";
                                        }
                                };

                                add(productGroup);

                                productStatusList = lookup.getStatus();

                                productStatus = new 
DropDownChoice<LookupPageModel>(
                                                "productStatus", 
compoundProductItem.bind("fundStatus"),
productStatusList,
                                                lookupRenderer) {
                                        @Override
                                        protected String 
getNullKeyDisplayValue() {
                                                return "Select Status";
                                        }
                                };

                                showProductSummary = new 
CheckBox("showProductSummary",
                                                
compoundProductItem.bind("productSummaryRequired")
                                                );

                                searchProduct = new AjaxButton("searchProduct") 
{

                                        private static final long 
serialVersionUID = 1L;

                                        @Override
                                        public void onSubmit(AjaxRequestTarget 
target, Form<?> form) {

                                                LOG.info("productName :" + 
productName.getModelObject());
                                                LOG.info("productName d :" + 
productName.getDefaultModel());
                                                LOG.info("productName d d:" + 
productName.getInput());

                                        }

                                };

                                resetProduct = new AjaxButton("resetProduct") {

                                        private static final long 
serialVersionUID = 1L;

                                        @Override
                                        public void onSubmit(AjaxRequestTarget 
target, Form<?> form) {

                                                

                                        }

                                };

                                add(productName);
                                add(productId);
                                add(productType);
                                add(productGroup);
                                add(productStatus);
                                add(showProductSummary);
                                add(searchProduct);
                                add(resetProduct);

                        }

                        @Override
                        protected void onSubmit() {

                                

                                searchObject = (ProductPageModel) 
getModelObject();
                                LOG.info("onSubmit : productItem :" + 
searchObject);
                                searchData();
                        }

                        public void searchData() {

                                if (searchObject != null) {
                                        PageParameters pageParameters = new 
PageParameters();

                                        pageParameters.set("action", "Search");
                                        pageParameters.set("category", 
"Product");

                                        if (searchObject.getProductType() == 
null
                                                        || 
searchObject.getProductType().getKey() == null) {

                                                
pageParameters.set("productType", "");

                                        } else {

                                                
pageParameters.set("productType", searchObject
                                                                
.getProductType().getKey());

                                        }

                                        if (searchObject.getProductGroup() == 
null
                                                        || 
searchObject.getProductGroup().getKey() == null) {

                                                
pageParameters.set("productGroup", "");

                                        } else {

                                                
pageParameters.set("productGroup", searchObject
                                                                
.getProductGroup().getKey());

                                        }

                                        if (searchObject.getFundStatus() == null
                                                        || 
searchObject.getFundStatus().getKey() == null) {

                                                
pageParameters.set("productStatus", "");

                                        } else {

                                                
pageParameters.set("productStatus", searchObject
                                                                
.getFundStatus().getKey());

                                        }

                                        if 
("".equalsIgnoreCase(searchObject.getProductName())
                                                        || productNameEnterLabel
                                                                        
.equalsIgnoreCase(searchObject
                                                                                
        .getProductName())) {

                                                
pageParameters.set("productName", "");

                                        } else {

                                                
pageParameters.set("productName",
                                                                
searchObject.getProductName());

                                        }

                                        if 
("".equalsIgnoreCase(searchObject.getProductId())
                                                        || productIdEnterLabel
                                                                        
.equalsIgnoreCase(searchObject
                                                                                
        .getProductId())) {

                                                pageParameters.set("productId", 
"0");

                                        } else {

                                                pageParameters.set("productId",
                                                                
searchObject.getProductId());

                                        }
                                        setResponsePage(ProductsListPage.class, 
pageParameters);

                                } 

                        }
                }

I tried to begin a quickstart project also. I am referring
http://wicket.sourceforge.net/wicket-quickstart/. However I  cant get any
latest quickstart projects for wicket 1.6( version I am using). Also I
project wont run on eclipse. Can you suggest some place where I can get
useful information on quickstart project as well?

Thanks,
Suvo

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/Compound-Property-Model-to-a-form-is-not-getting-updated-tp4667114p4667141.html
Sent from the Users forum 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

Reply via email to