GWT GXT add Validator to Composite -
i have custom widget (composite). want validate composite (client side) logic. want show error message on border component, such textfild.isvalid() does.
public class programbeneficiariesfield implements iswidget{ private constants constants = clientfactory.getconstants(); private verticallayoutcontainer vlc; private liststore<beneficiary> beneficiaryliststore; public programbeneficiariesfield() { beneficiaryproperties props = gwt.create(beneficiaryproperties.class); columnconfig<beneficiary, beneficiaryname> beneficiarycolumn = new columnconfig<beneficiary, beneficiaryname>(props.beneficiaryname(), 100, constants.beneficiary()); columnconfig<beneficiary, string> remarkcolumn = new columnconfig<beneficiary, string>(props.remark(), 200, constants.remark()); beneficiarycolumn.setcell(new abstractcell<beneficiaryname>() { @override public void render(context context, beneficiaryname value, safehtmlbuilder sb) { if (value != null) { sb.appendescaped(value.getname()); } else { sb.appendescaped(constants.emptygriditem()); } } }); remarkcolumn.setcell(new abstractcell<string>() { @override public void render(context context, string value, safehtmlbuilder sb) { if (value != null) { sb.appendescaped(value); } else { sb.appendescaped(constants.emptygriditem()); } } }); list<columnconfig<beneficiary, ?>> l = new arraylist<columnconfig<beneficiary, ?>>(); l.add(beneficiarycolumn); l.add(remarkcolumn); columnmodel<beneficiary> cm = new columnmodel<beneficiary>(l); beneficiaryliststore = new liststore<beneficiary>(new modelkeyprovider<beneficiary>() { @override public string getkey(beneficiary item) { homecoming item.tostring(); } }); grid<beneficiary> grid = new grid<beneficiary>(beneficiaryliststore, cm); grid.getview().setstriperows(true); grid.getview().setforcefit(true); //editing simplecombobox<beneficiaryname> combo = new simplecombobox<beneficiaryname>(new labelprovider<beneficiaryname>() { @override public string getlabel(beneficiaryname item) { homecoming item.getname(); } }); combo.settriggeraction(comboboxcell.triggeraction.all); programfieldspresenter.fillbeneficiarynameeditingcombo(combo); final gridediting<beneficiary> editing = new gridrowediting<beneficiary>(grid); editing.addeditor(beneficiarycolumn, combo); editing.addeditor(remarkcolumn, new textfield()); editing.addcompleteedithandler(new completeeditevent.completeedithandler<beneficiary>() { @override public void oncompleteedit(completeeditevent<beneficiary> event) { beneficiaryliststore.commitchanges(); } }); //editing textbutton add together = new textbuttonbuilder(constants.add()) .selecthandler(new selectevent.selecthandler() { @override public void onselect(selectevent event) { beneficiary b = new beneficiary(); editing.cancelediting(); beneficiaryliststore.add(0, b); editing.startediting(new grid.gridcell(0, 0)); } }).build(); toolbar bar = new toolbar(); bar.add(add); vlc = new verticallayoutcontainer(); vlc.setborders(true); vlc.add(bar, new verticallayoutcontainer.verticallayoutdata(1, -1)); vlc.add(grid, new verticallayoutcontainer.verticallayoutdata(1, 1)); } /** * <b>copies</b> beneficiary , adds liststore * @param beneficiaries */ public void setvaluesafe(list<beneficiary> beneficiaries) { beneficiaryliststore.clear(); (beneficiary origin : beneficiaries) { beneficiary b = new beneficiary(); b.setid(origin.getid()); b.setremark(origin.getremark()); b.setbeneficiaryname(origin.getbeneficiaryname()); b.setprogram(origin.getprogram()); beneficiaryliststore.add(b); } } public list<beneficiary> getvalue() { homecoming new arraylist<beneficiary>(beneficiaryliststore.getall()); } @override public widget aswidget() { homecoming vlc; } }
this widget looks this:
i want validate grid's listrore empty or not. if empty , show error message on whole widget, in case on vlc(verticallayoutcontainer) border.
gwt gxt
No comments:
Post a Comment