|
View:
New views
7 Messages
—
Rating Filter:
Alert me
|
|
|
T5 : Pop up with gridHi,
I have a pop up with a grid. When i click in a line of my grid, i want to get the object for the clicked row. here is the parent .tml which call the pop up : <script type="text/javascript"> function popup(mylink, windowname) { if (! window.focus)return true; var href; if (typeof(mylink) == 'string') href=mylink; else href=mylink.href; window.open(href, windowname, 'width=800,height=600,scrollbars=yes'); return false; } </script> ... <p><t:label for="departure"> ${message:search-departure} </t:label> <t:textfield t:id="departure" t:value="departure.name" t:validate="required" /> < a t:type="pagelink" t:page="itinerary/AddressListPopUp" t:context="'0'" onClick="return popup(this,'AddressListPopUp');">Listes d'adresses </p> Here is the .tml for the pop up. sgPoi is an object with : id, name <div id="poiList"> <h3>${message:sgPoiList-title}</h3> <table t:id="sgPoiGrid" t:model="sgPoiGridModel" t:type="grid" t:row="sgPoi" t:source="sgPoiList" t:rowIndex="rowIndex" t:rowClass="rowClass" t:rowsPerPage="${message:rowsPerPage}" t:inplace="true"> <t:parameter name="selectCell"> <t:actionlink t:id="selectAddressPoi" t:context="sgPoi.id"> ${message:select-label} </t:actionlink> </t:parameter> </table> </div> Here is the java controller for my actionlink: @OnEvent(value = "action", component = "selectAddressPoi") public void onSelectEvent(Integer id) { String name = this.sgPoiManager.getSgPoiById(id).getName; //TODO how to complete the textfield "departure" in the parent window ??? } I don't know what is the best way to complete the textfield "departure" in the parent window with the Name of the SgPoi selected. How can i get the opener page in my java class ? Thanks by advance. |
|
|
Re: T5 : Pop up with gridHello
>>How can i get the opener page in my java class ? To update a field on the opener, you have to do it with Javascript, not on server side. There is many alternatives for this : - Using Ajax request on link click to get the name from server side and update client via Javascript - Do it with a simple action link that render Javascript via RenderSupport, the javascript will update the field and close the popup - Using Javascript for popup instean of window.open to ease Javascript stuff But in your case, because you have already implemented a popup solution, i think the second should be enough. Regards, Christophe. 2009/10/29 vos <sovireak.moeung@...> > > Hi, > I have a pop up with a grid. When i click in a line of my grid, i want to > get the object for the clicked row. > > > here is the parent .tml which call the pop up : > > <script type="text/javascript"> > function popup(mylink, windowname) > { > if (! window.focus)return true; > var href; > if (typeof(mylink) == 'string') > href=mylink; > else > href=mylink.href; > window.open(href, windowname, 'width=800,height=600,scrollbars=yes'); > return false; > } > </script> > ... > > <p><t:label for="departure"> > ${message:search-departure} > </t:label> > <t:textfield t:id="departure" t:value="departure.name" > t:validate="required" /> > < a t:type="pagelink" t:page="itinerary/AddressListPopUp" > t:context="'0'" > onClick="return popup(this,'AddressListPopUp');">Listes > d'adresses > </p> > > > Here is the .tml for the pop up. > > sgPoi is an object with : id, name > > > <div id="poiList"> > <h3>${message:sgPoiList-title}</h3> > <table t:id="sgPoiGrid" t:model="sgPoiGridModel" t:type="grid" > t:row="sgPoi" t:source="sgPoiList" t:rowIndex="rowIndex" > t:rowClass="rowClass" t:rowsPerPage="${message:rowsPerPage}" > t:inplace="true"> > <t:parameter name="selectCell"> > <t:actionlink t:id="selectAddressPoi" t:context="sgPoi.id"> > ${message:select-label} > </t:actionlink> > </t:parameter> > > </table> > </div> > > Here is the java controller for my actionlink: > > @OnEvent(value = "action", component = "selectAddressPoi") > public void onSelectEvent(Integer id) { > String name = this.sgPoiManager.getSgPoiById(id).getName; > //TODO how to complete the textfield "departure" in the > parent window ??? > } > > > > > I don't know what is the best way to complete the textfield "departure" in > the parent window with the Name of the SgPoi selected. > How can i get the opener page in my java class ? > > Thanks by advance. > > -- > View this message in context: > http://www.nabble.com/T5-%3A-Pop-up-with-grid-tp26112459p26112459.html > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscribe@... > For additional commands, e-mail: users-help@... > > |
|
|
Re: T5 : Pop up with gridHi Christophe,
Thanks for your answer. I tried to code with the renderSupport as you told me. here is the javascript for my pop up <script type="text/javascript"> function choisir(choix){ window.opener.document.forms["add_search_form"].elements["departure"].value=choix; self.close(); } </script> and the .java : @Environmental private RenderSupport renderSupport; @OnEvent(value = "action", component = "selectAddressPoi") public void onSelectEvent(Integer id) { System.out.println(id); String name = this.sgPoiManager.getSgPoiById(id).getName(); this.renderSupport.addScript("choisir(" + name + ");"); } I got this exception when i clicked on my button : No object of type org.apache.tapestry5.RenderSupport is available from the Environment. Available types are org.apache.tapestry5.services.ComponentEventResultProcessor. what is the problem with the renderSupport ? Thanks by advance |
|
|
Re: T5 : Pop up with gridSorry i have said something wrong, RenderSupport is not available in Action
Request, only in Ajax Action Request. 2009/10/29 vos <sovireak.moeung@...> > > Hi Christophe, > Thanks for your answer. > I tried to code with the renderSupport as you told me. > > here is the javascript for my pop up > > <script type="text/javascript"> > function choisir(choix){ > > > > window.opener.document.forms["add_search_form"].elements["departure"].value=choix; > > self.close(); > } > </script> > > > and the .java : > > @Environmental > private RenderSupport renderSupport; > > @OnEvent(value = "action", component = "selectAddressPoi") > public void onSelectEvent(Integer id) { > System.out.println(id); > String name = this.sgPoiManager.getSgPoiById(id).getName(); > this.renderSupport.addScript("choisir(" + name + ");"); > } > > I got this exception when i clicked on my button : > > No object of type org.apache.tapestry5.RenderSupport is available from the > Environment. Available types are > org.apache.tapestry5.services.ComponentEventResultProcessor. > > what is the problem with the renderSupport ? > > Thanks by advance > > > -- > View this message in context: > http://www.nabble.com/T5-%3A-Pop-up-with-grid-tp26112459p26113362.html > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscribe@... > For additional commands, e-mail: users-help@... > > |
|
|
Re: T5 : Pop up with gridAnd Render Request of course.
So you can also re-render the page and use the RenderSupport to add your Javascript. When the user click on the link, try to update the a state in your page (keep it via @Persist or Activation/Passivation), and during re-render, add your javascript call in SetupRender. And Ajax update is maybe cleaner... Excuse me for my previous confusing answers. Regards, Christope. 2009/10/29 cordenier christophe <christophe.cordenier@...> > Sorry i have said something wrong, RenderSupport is not available in > Action Request, only in Ajax Action Request. > > 2009/10/29 vos <sovireak.moeung@...> > >> >> Hi Christophe, >> Thanks for your answer. >> I tried to code with the renderSupport as you told me. >> >> here is the javascript for my pop up >> >> <script type="text/javascript"> >> function choisir(choix){ >> >> >> >> window.opener.document.forms["add_search_form"].elements["departure"].value=choix; >> >> self.close(); >> } >> </script> >> >> >> and the .java : >> >> @Environmental >> private RenderSupport renderSupport; >> >> @OnEvent(value = "action", component = "selectAddressPoi") >> public void onSelectEvent(Integer id) { >> System.out.println(id); >> String name = this.sgPoiManager.getSgPoiById(id).getName(); >> this.renderSupport.addScript("choisir(" + name + ");"); >> } >> >> I got this exception when i clicked on my button : >> >> No object of type org.apache.tapestry5.RenderSupport is available from the >> Environment. Available types are >> org.apache.tapestry5.services.ComponentEventResultProcessor. >> >> what is the problem with the renderSupport ? >> >> Thanks by advance >> >> >> -- >> View this message in context: >> http://www.nabble.com/T5-%3A-Pop-up-with-grid-tp26112459p26113362.html >> Sent from the Tapestry - User mailing list archive at Nabble.com. >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscribe@... >> For additional commands, e-mail: users-help@... >> >> > |
|
|
Re: T5 : Pop up with gridHi
You can also have a look at http://www.chenillekit.org/demo/tapcomp/oneventdemo to see how Ajax call can be made easily with Tapestry and ChenilleKit 2009/10/29 cordenier christophe <christophe.cordenier@...> > And Render Request of course. > > So you can also re-render the page and use the RenderSupport to add your > Javascript. > > When the user click on the link, try to update the a state in your page > (keep it via @Persist or Activation/Passivation), and during re-render, add > your javascript call in SetupRender. > > And Ajax update is maybe cleaner... > > Excuse me for my previous confusing answers. > > Regards, > Christope. > > 2009/10/29 cordenier christophe <christophe.cordenier@...> > > Sorry i have said something wrong, RenderSupport is not available in >> Action Request, only in Ajax Action Request. >> >> 2009/10/29 vos <sovireak.moeung@...> >> >>> >>> Hi Christophe, >>> Thanks for your answer. >>> I tried to code with the renderSupport as you told me. >>> >>> here is the javascript for my pop up >>> >>> <script type="text/javascript"> >>> function choisir(choix){ >>> >>> >>> >>> window.opener.document.forms["add_search_form"].elements["departure"].value=choix; >>> >>> self.close(); >>> } >>> </script> >>> >>> >>> and the .java : >>> >>> @Environmental >>> private RenderSupport renderSupport; >>> >>> @OnEvent(value = "action", component = "selectAddressPoi") >>> public void onSelectEvent(Integer id) { >>> System.out.println(id); >>> String name = >>> this.sgPoiManager.getSgPoiById(id).getName(); >>> this.renderSupport.addScript("choisir(" + name + ");"); >>> } >>> >>> I got this exception when i clicked on my button : >>> >>> No object of type org.apache.tapestry5.RenderSupport is available from >>> the >>> Environment. Available types are >>> org.apache.tapestry5.services.ComponentEventResultProcessor. >>> >>> what is the problem with the renderSupport ? >>> >>> Thanks by advance >>> >>> >>> -- >>> View this message in context: >>> http://www.nabble.com/T5-%3A-Pop-up-with-grid-tp26112459p26113362.html >>> Sent from the Tapestry - User mailing list archive at Nabble.com. >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscribe@... >>> For additional commands, e-mail: users-help@... >>> >>> >> > |
|
|
Re: T5 : Pop up with gridI have a simple parent-child page demo at
http://lombok.demon.co.uk/tapestry5Demo/test/parentwindow The parent page displays number 1,2,..., n. The child page is a pop up to change n. The entered n from the pop up is returned to the parent page and the parent page is redisplay with the new n. It works in firefox, but not in IE. Shing --- On Thu, 29/10/09, cordenier christophe <christophe.cordenier@...> wrote: > From: cordenier christophe <christophe.cordenier@...> > Subject: Re: T5 : Pop up with grid > To: "Tapestry users" <users@...> > Date: Thursday, 29 October, 2009, 10:13 PM > And Render Request of course. > > So you can also re-render the page and use the > RenderSupport to add your > Javascript. > > When the user click on the link, try to update the a state > in your page > (keep it via @Persist or Activation/Passivation), and > during re-render, add > your javascript call in SetupRender. > > And Ajax update is maybe cleaner... > > Excuse me for my previous confusing answers. > > Regards, > Christope. > > 2009/10/29 cordenier christophe <christophe.cordenier@...> > > > Sorry i have said something wrong, RenderSupport > is not available in > > Action Request, only in Ajax Action Request. > > > > 2009/10/29 vos <sovireak.moeung@...> > > > >> > >> Hi Christophe, > >> Thanks for your answer. > >> I tried to code with the renderSupport as you told > me. > >> > >> here is the javascript for my pop up > >> > >> <script > type="text/javascript"> > >> function > choisir(choix){ > >> > >> > >> > >> > window.opener.document.forms["add_search_form"].elements["departure"].value=choix; > >> > >> > self.close(); > >> > } > >> </script> > >> > >> > >> and the .java : > >> > >> @Environmental > >> private RenderSupport > renderSupport; > >> > >> @OnEvent(value = > "action", component = "selectAddressPoi") > >> public void > onSelectEvent(Integer id) { > >> > System.out.println(id); > >> > String name = > this.sgPoiManager.getSgPoiById(id).getName(); > >> > this.renderSupport.addScript("choisir(" + name + > ");"); > >> } > >> > >> I got this exception when i clicked on my button > : > >> > >> No object of type > org.apache.tapestry5.RenderSupport is available from the > >> Environment. Available types are > >> > org.apache.tapestry5.services.ComponentEventResultProcessor. > >> > >> what is the problem with the renderSupport ? > >> > >> Thanks by advance > >> > >> > >> -- > >> View this message in context: > >> http://www.nabble.com/T5-%3A-Pop-up-with-grid-tp26112459p26113362.html > >> Sent from the Tapestry - User mailing list archive > at Nabble.com. > >> > >> > >> > --------------------------------------------------------------------- > >> To unsubscribe, e-mail: users-unsubscribe@... > >> For additional commands, e-mail: users-help@... > >> > >> > > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@... For additional commands, e-mail: users-help@... |
| Free embeddable forum powered by Nabble | Forum Help |