java - Tapestry 5 - communication between two components -



java - Tapestry 5 - communication between two components -

i have page in java + tapestry 5 application, contains 2 components - form , grid. form field utilize filter results displayed in grid. form textfield sets value of object on mapped. grid created object a. need send right instance grid component form component. best way this? plain old java way setting object in upper page, there should cleaner way. thinking environment annotation, isn't heavy?

public class i1 { @component private wfrformfilter wfrformfilter; @component (parameters={ "wfrdataholder=property:wfrformfilter.wfrdataholder" }) private wfrresulttable wfrresulttable; } public class wfrformfilter { @inject private wfrservice wfrservice; @propperty @persist private wfrdataholder wfrdataholder; @pageattached void pageattached() { if (wfrdataholder == null) { wfrdataholder = new wfrdataholder(); } } @onevent(eventconstants.success) void processmyform() { } } public class wfrresulttable { @parameter(defaultprefix=bindingconstants.prop) @property private wfrdataholder wfrdataholder; @inject private wfrservice wfrservice; public list<wfrdataholder> getresulttabledata() { homecoming wfrservice.getdata(this.wfrdataholder); } }

tapestry's parameters work bi-directionally: if store info in page class (with @persist) , pass form component parameter, can alter value in form component, , reflected page automatically: no calls setters required.

so if have page , form component laid out this:

public class mypage { @component(parameters = "dataholder=dataholder") private myform formcomponent; @component(parameters = "dataholder=dataholder") private mygrid gridcomponent; @persist @property private mydataholder dataholder; } public class myformcomponent { @parameter private mydataholder dataholder; @onevent(eventconstants.success) void formsubmitted() { this.dataholder = new dataholder(...); } }

...then proper value nowadays in page, , on grid component.

also see component parameters page in tapestry docs, particularly section "parameters bi-directional".

java tapestry

Comments

Popular posts from this blog

iphone - Dismissing a UIAlertView -

c# - Can ProtoBuf-Net deserialize to a flat class? -

javascript - Change element in each JQuery tab to dynamically generated colors -