Hi,
I have override getTile() method. In getTile() method I am taking Tile as CANVAS, and in canvas I have added VLayout as Child. In VLayout I am adding DynamicForm with couple of Controls.
As per my understanding in Tile there will be only one Child that is VLayout. But I am getting Three VLayout as Child. Please find attached Code...
On Click of button I am trying to get Tile as follows
@Override
public Canvas getTile(int recordNumber) {
final Canvas canvas = super.getTile(recordNumber);
canvas.setPadding(10);
VLayout layout = new VLayout();
layout.setLayoutAlign(Alignment.CENTER);
layout.setWidth100();
layout.setHeight100();
layout.setMembersMargin(1);
final DynamicForm form = new DynamicForm();
form.setBackgroundColor("lightgray");
form.setShowInlineErrors(false);
form.setAlign(Alignment.CENTER);
form.setNumCols(3);
form.setColWidths("10% 80% *");
TextItem lngOrderedQty = new TextItem("lngOrderedQty","Quantity");
lngOrderedQty.setWidth(80);
CheckboxItem cbfield = new CheckboxItem("chkAddItem","");
cbfield.setAlign(Alignment.LEFT);
cbfield.setShowTitle(false);
ButtonItem button = new ButtonItem();
button.setAutoFit(true);
button.setTitle("Add To Cart");
form.setFields(cbfield,lngOrderedQty);
layout.addMember(form);
layout.setAlign(VerticalAlignment.BOTTOM);
canvas.addChild(layout); // ADDED FIRST CHILD
canvas.setPadding(2);
canvas.markForRedraw();
return canvas;
}
Button addtoCart = new Button();
addtoCart.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Record [] records = (Record[])tileGrid.getSelection();
for(int i=0;i<records.length;i++){
Canvas tile = tileGrid.getTile(records[i]);
Canvas[] canvasChildArray = (Canvas[])tile.getChildren(); // HERE I AM GETTING 3 Child It Should get only ONE (VLAYOUT)
Canvas[] canvasChild = (Canvas[]) canvasChildArray[2].getChildren();
DynamicForm form = (DynamicForm)canvasChild[0];
form.clearErrors(true);
Map errorMap = new HashMap();
Object lObjorderQty = form.getField("lngOrderedQty")._getValue();
long lngMaxQty = records[i].getAttributeAsLong("lngMaxQty");
if(null==lObjorderQty){
errorMap.put("lngOrderedQty","Order Quantity is Requried...!");
}else{
long lngOrderQty = Long.parseLong((String)lObjorderQty);
if(lngMaxQty<lngOrderQty){
errorMap.put("lngOrderedQty","Required Quantity is not available...!");
}
}
form.setErrors(errorMap, true);
form.showErrors();
}
}
});
Regards,
DSingh
I have override getTile() method. In getTile() method I am taking Tile as CANVAS, and in canvas I have added VLayout as Child. In VLayout I am adding DynamicForm with couple of Controls.
As per my understanding in Tile there will be only one Child that is VLayout. But I am getting Three VLayout as Child. Please find attached Code...
On Click of button I am trying to get Tile as follows
@Override
public Canvas getTile(int recordNumber) {
final Canvas canvas = super.getTile(recordNumber);
canvas.setPadding(10);
VLayout layout = new VLayout();
layout.setLayoutAlign(Alignment.CENTER);
layout.setWidth100();
layout.setHeight100();
layout.setMembersMargin(1);
final DynamicForm form = new DynamicForm();
form.setBackgroundColor("lightgray");
form.setShowInlineErrors(false);
form.setAlign(Alignment.CENTER);
form.setNumCols(3);
form.setColWidths("10% 80% *");
TextItem lngOrderedQty = new TextItem("lngOrderedQty","Quantity");
lngOrderedQty.setWidth(80);
CheckboxItem cbfield = new CheckboxItem("chkAddItem","");
cbfield.setAlign(Alignment.LEFT);
cbfield.setShowTitle(false);
ButtonItem button = new ButtonItem();
button.setAutoFit(true);
button.setTitle("Add To Cart");
form.setFields(cbfield,lngOrderedQty);
layout.addMember(form);
layout.setAlign(VerticalAlignment.BOTTOM);
canvas.addChild(layout); // ADDED FIRST CHILD
canvas.setPadding(2);
canvas.markForRedraw();
return canvas;
}
Button addtoCart = new Button();
addtoCart.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Record [] records = (Record[])tileGrid.getSelection();
for(int i=0;i<records.length;i++){
Canvas tile = tileGrid.getTile(records[i]);
Canvas[] canvasChildArray = (Canvas[])tile.getChildren(); // HERE I AM GETTING 3 Child It Should get only ONE (VLAYOUT)
Canvas[] canvasChild = (Canvas[]) canvasChildArray[2].getChildren();
DynamicForm form = (DynamicForm)canvasChild[0];
form.clearErrors(true);
Map errorMap = new HashMap();
Object lObjorderQty = form.getField("lngOrderedQty")._getValue();
long lngMaxQty = records[i].getAttributeAsLong("lngMaxQty");
if(null==lObjorderQty){
errorMap.put("lngOrderedQty","Order Quantity is Requried...!");
}else{
long lngOrderQty = Long.parseLong((String)lObjorderQty);
if(lngMaxQty<lngOrderQty){
errorMap.put("lngOrderedQty","Required Quantity is not available...!");
}
}
form.setErrors(errorMap, true);
form.showErrors();
}
}
});
Regards,
DSingh