Hi,
i can't spot an error in your code. A compiler and debugger is much
better suited for that task.
Please use the quickstart here:
http://wicket.apache.org/start/quickstart.html
Regards
Sven
On 08/22/2014 07:40 PM, suvojit168 wrote:
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
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org