Re: Autocomplete mixin - Ajax request path
I believe the code that generates the link you're talking about is on line 150 of AutoComplete.java in T5.2.4. Link link = resources.createEventLink(*EVENT_NAME*); By doing a little bit of digging from there, I found that the (internal) service LinkSource does the hard work. I'm not the right person to say what's possible with internal services. But if it's possible, you could do an decoration/override/advice of that service and do some neat tricks there. This is the beauty of tapestry, you can usually find the source of most information within a couple of clicks in eclipse, and the code is most often very readable because of the clear separation of concerns between services. On Wed, Dec 15, 2010 at 2:53 PM, Michael Bayer michael.ba...@gameforge.comwrote: Hi there! I have a tapestry powered site running behind an HTTP-Proxy that hides the glassfish instance from the user. Unfortunately it also hides the web-app context root: http://doma.in:8080/contextRoot/page becomes http://doma.in/page This causes a whole lot of problems, most of which I managed to fix (I use an AssetPathConverter for example), but I wasn't able to find a way to change the request path of the autocomplete mixin's ajax requests, the path always contains the context root (but not hostname and port). Is there a way to change the request path of those ajax requests? Tapestry version: 5.2 -- Michael Bayer Software Developer Gameforge Productions GmbH Albert-Nestler-Straße 8 D-76131 Karlsruhe Tel. +49 721 354 808-0 Fax +49 721 354 808-152 michael.ba...@gameforge.de http://www.gameforge.de Amtsgericht Mannheim, HRB 701682 USt-ID: DE 254 298 652 Geschäftsführer: Alexander Rösner, Christoph Jennen - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Autocomplete mixin - Ajax request path
You could use the url rewriting functionality introduced in 5.1 (note: the api for this changes between 5.1 and 5.2). It allows you to rewrite incoming urls and links within the application. It's a public api. Robert On Dec 16, 2010, at 12/162:06 AM , Inge Solvoll wrote: I believe the code that generates the link you're talking about is on line 150 of AutoComplete.java in T5.2.4. Link link = resources.createEventLink(*EVENT_NAME*); By doing a little bit of digging from there, I found that the (internal) service LinkSource does the hard work. I'm not the right person to say what's possible with internal services. But if it's possible, you could do an decoration/override/advice of that service and do some neat tricks there. This is the beauty of tapestry, you can usually find the source of most information within a couple of clicks in eclipse, and the code is most often very readable because of the clear separation of concerns between services. On Wed, Dec 15, 2010 at 2:53 PM, Michael Bayer michael.ba...@gameforge.comwrote: Hi there! I have a tapestry powered site running behind an HTTP-Proxy that hides the glassfish instance from the user. Unfortunately it also hides the web-app context root: http://doma.in:8080/contextRoot/page becomes http://doma.in/page This causes a whole lot of problems, most of which I managed to fix (I use an AssetPathConverter for example), but I wasn't able to find a way to change the request path of the autocomplete mixin's ajax requests, the path always contains the context root (but not hostname and port). Is there a way to change the request path of those ajax requests? Tapestry version: 5.2 -- Michael Bayer Software Developer Gameforge Productions GmbH Albert-Nestler-Straße 8 D-76131 Karlsruhe Tel. +49 721 354 808-0 Fax +49 721 354 808-152 michael.ba...@gameforge.de http://www.gameforge.de Amtsgericht Mannheim, HRB 701682 USt-ID: DE 254 298 652 Geschäftsführer: Alexander Rösner, Christoph Jennen - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: How i can have multiple components with t:id on the page.
Hi Hi id and t:id are different. t:id is component id for server side tapestry use and id is for javascript. So you can always use a single onValueChangeFromEditor() for this use case to handle events from the editor as t:id of the component for each iteration in loop is the same. Hope it helps regards Taha On Thu, Dec 16, 2010 at 10:46 AM, Dmitriy Vsekhvalnov dvsekhval...@gmail.com wrote: Hi all, i'm doing grid editing, where each cell is in-place-editor and i'd like to use one listener in the page to react to value change (my row column encoded to context), but tapestry dynamically assigns suffix to id only when it's rendered multiple times in Loop. I need something like: tr ct:type=loop source=report.items value=item index=index tdspan class=report *t:id=editor* size=3 t:type=InPlaceEditor value=item.zone //td .. tdspan class=report *t:id=editor* size=3 t:type=InPlaceEditor value=item.self //td /tr any suggestions?
Re: Tapestry 5, jetty, jdbc drivers, class reloading
Thanks. I'll try this sometime today. On 15 December 2010 13:17, Michael Gentry mgen...@masslight.net wrote: The Run Jetty Run plugin doesn't include Jetty Plus, so it doesn't support JNDI. I run Jetty through Maven from the command-line (or the M2Eclipse plugin) and it works fine. To use JNDI, you'll need a jetty-env.xml file in your WEB-INF similar to: ?xml version=1.0? !DOCTYPE Configure PUBLIC -//Mort Bay Consulting//DTD Configure//EN http://jetty.mortbay.org/configure.dtd; Configure class=org.mortbay.jetty.webapp.WebAppContext Set name=contextPath/QCsubmit/Set New id=DS_NAME class=org.mortbay.jetty.plus.naming.Resource Argjdbc/DS/Arg Arg New class=org.apache.commons.dbcp.BasicDataSource Set name=Urljdbc:mysql://server:3306/database/Set Set name=DriverClassNamecom.mysql.jdbc.Driver/Set Set name=Usernameusername/Set Set name=Passwordpassword/Set Set name=MaxActive30/Set Set name=MaxIdle10/Set Set name=MinIdle2/Set Set name=MaxWait5000/Set Set name=MinEvictableIdleTimeMillis25000/Set Set name=TimeBetweenEvictionRunsMillis3/Set /New /Arg /New /Configure And in your web.xml: resource-ref res-ref-namejdbc/DS/res-ref-name res-typejavax.sql.DataSource/res-type res-authContainer/res-auth /resource-ref This is for Jetty 6 -- Jetty 7 is a little different. Change DS_NAME and jdbc/DS, plus the connection information. Some things from the pom.xml you'll want: properties jetty.port8484/jetty.port jetty.max-idle-time6/jetty.max-idle-time jetty.version6.1.22/jetty.version tapestry.release-version5.1.0.5/tapestry.release-version /properties dependency !-- Used by mvn jetty:run to define JDNI data source -- groupIdcommons-dbcp/groupId artifactIdcommons-dbcp/artifactId version1.2.2/version scoperuntime/scope /dependency dependency groupIdorg.mortbay.jetty/groupId artifactIdjetty-plus/artifactId version${jetty.version}/version /dependency and in the build section, I have this plugin defined: !-- Run the application using mvn jetty:run -- plugin groupIdorg.mortbay.jetty/groupId artifactIdmaven-jetty-plugin/artifactId version${jetty.version}/version configuration connectors connector implementation=org.mortbay.jetty.nio.SelectChannelConnector port${jetty.port}/port maxIdleTime${jetty.max-idle-time}/maxIdleTime /connector /connectors dependencies dependency groupIdorg.mortbay.jetty/groupId artifactIdjetty-plus/artifactId version${jetty.version}/version /dependency /dependencies !-- Log to the console. -- requestLog implementation=org.mortbay.jetty.NCSARequestLog !-- This doesn't do anything for Jetty, but is a workaround for a Maven bug that prevents the requestLog from being set. -- appendtrue/append /requestLog /configuration /plugin mrg On Wed, Dec 15, 2010 at 4:32 AM, Jabbar aja...@gmail.com wrote: Hello all, I want to use JNDI to access my datasource and I also want to make use of tapestry class reloading. I don't know how to notify the maven jetty plugin of the JDBC drivers and setup JNDI. Is it any easier to configure the run jetty run eclipse plugin? -- Thanks A Jabbar Azam - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org -- Thanks A Jabbar Azam
Re: Tapestry 5, jetty, jdbc drivers, class reloading
Thanks. I'll have a look at this later on. On 15 December 2010 13:17, Michael Gentry mgen...@masslight.net wrote: The Run Jetty Run plugin doesn't include Jetty Plus, so it doesn't support JNDI. I run Jetty through Maven from the command-line (or the M2Eclipse plugin) and it works fine. To use JNDI, you'll need a jetty-env.xml file in your WEB-INF similar to: ?xml version=1.0? !DOCTYPE Configure PUBLIC -//Mort Bay Consulting//DTD Configure//EN http://jetty.mortbay.org/configure.dtd; Configure class=org.mortbay.jetty.webapp.WebAppContext Set name=contextPath/QCsubmit/Set New id=DS_NAME class=org.mortbay.jetty.plus.naming.Resource Argjdbc/DS/Arg Arg New class=org.apache.commons.dbcp.BasicDataSource Set name=Urljdbc:mysql://server:3306/database/Set Set name=DriverClassNamecom.mysql.jdbc.Driver/Set Set name=Usernameusername/Set Set name=Passwordpassword/Set Set name=MaxActive30/Set Set name=MaxIdle10/Set Set name=MinIdle2/Set Set name=MaxWait5000/Set Set name=MinEvictableIdleTimeMillis25000/Set Set name=TimeBetweenEvictionRunsMillis3/Set /New /Arg /New /Configure And in your web.xml: resource-ref res-ref-namejdbc/DS/res-ref-name res-typejavax.sql.DataSource/res-type res-authContainer/res-auth /resource-ref This is for Jetty 6 -- Jetty 7 is a little different. Change DS_NAME and jdbc/DS, plus the connection information. Some things from the pom.xml you'll want: properties jetty.port8484/jetty.port jetty.max-idle-time6/jetty.max-idle-time jetty.version6.1.22/jetty.version tapestry.release-version5.1.0.5/tapestry.release-version /properties dependency !-- Used by mvn jetty:run to define JDNI data source -- groupIdcommons-dbcp/groupId artifactIdcommons-dbcp/artifactId version1.2.2/version scoperuntime/scope /dependency dependency groupIdorg.mortbay.jetty/groupId artifactIdjetty-plus/artifactId version${jetty.version}/version /dependency and in the build section, I have this plugin defined: !-- Run the application using mvn jetty:run -- plugin groupIdorg.mortbay.jetty/groupId artifactIdmaven-jetty-plugin/artifactId version${jetty.version}/version configuration connectors connector implementation=org.mortbay.jetty.nio.SelectChannelConnector port${jetty.port}/port maxIdleTime${jetty.max-idle-time}/maxIdleTime /connector /connectors dependencies dependency groupIdorg.mortbay.jetty/groupId artifactIdjetty-plus/artifactId version${jetty.version}/version /dependency /dependencies !-- Log to the console. -- requestLog implementation=org.mortbay.jetty.NCSARequestLog !-- This doesn't do anything for Jetty, but is a workaround for a Maven bug that prevents the requestLog from being set. -- appendtrue/append /requestLog /configuration /plugin mrg On Wed, Dec 15, 2010 at 4:32 AM, Jabbar aja...@gmail.com wrote: Hello all, I want to use JNDI to access my datasource and I also want to make use of tapestry class reloading. I don't know how to notify the maven jetty plugin of the JDBC drivers and setup JNDI. Is it any easier to configure the run jetty run eclipse plugin? -- Thanks A Jabbar Azam - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org -- Thanks A Jabbar Azam
Re: T5: Javascript problem
I dont like this way of refering to nodes ( document.entryForm.oosComment ) i'm not sure how many browsers fully support this but it looks like this can work when nodes have the name attribute set. If i remember correctly, T5.1 used to include a name in each form but this was removed in 5.2 - see https://issues.apache.org/jira/browse/TAP5-796 So, anyway, see if your nodes have id, and just reference them in that way using either document.getElementById or prototype's $$ On Thu, Dec 16, 2010 at 10:51, Newham, Cameron cameron.new...@bl.uk wrote: Hi! Another simple question. I had an application running under T5.1 and I've now moved to 5.2. I notice my Javascript is now broken. I have this function in my .tml file: SCRIPT type=text/JavaScript LANGUAGE=JavaScript function checkOOS(myCheck) { if(myCheck.checked) { document.entryForm.oosComment.disabled = false; document.entryForm.oosComment.focus(); } else { document.entryForm.oosComment.disabled = true; } } /SCRIPT Which turns a select on and off by clicking a checkbox via onclick. While the JavaScript function is called, it no longer updates the disabled attribute of oosComment. Should I be adding my JavaScript with JavaScriptSupport (and if so, where is documentation or an example? The only mention of JavaScript I can find is in the HOW-TOs which show it being added to the .tml file directly in a script block). Also, why is this now partially non-functioning in 5.2? It seems that document.entryForm.oosComment.disabled is incorrect for referring to component oosComment. Yet this works fine under 5.1. My Form is called entryForm and oosComment is inside that. The page hasn't changed since it worked under 5.1 but, in that case, it seems I've been doing something wrong all along even though it worked. c. -- Andreas Andreou - andy...@apache.org - http://blog.andyhot.gr Tapestry PMC / Tacos developer Open Source / JEE Consulting - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Advanced Grid
Hi Recently I had to a similar requirement. I created a new component, embedded a grid in it. It took filter block as a parameter. I extended GridDataSource to include filtering based on a filter object and this object was the bean for the filter block form Hope it helps regards taha On Wed, Dec 15, 2010 at 9:39 PM, Michael Gentry mgen...@masslight.netwrote: I'm not a Grid expert, but I really doubt you can intermix the two. mrg On Wed, Dec 15, 2010 at 10:09 AM, Wechsung, Wulf wulf.wechs...@sap.com wrote: Hello Michael, Great link, thanks a lot! Skimming over the documentation it should be possible to integrate this with Grid, perhaps even as a mixin. Kind Regards, Wulf -Ursprüngliche Nachricht- Von: Michael Gentry [mailto:mgen...@masslight.net] Gesendet: Mittwoch, 15. Dezember 2010 15:00 An: Tapestry users Betreff: Re: Advanced Grid If using a Grid isn't a requirement, take a look at this JavaScript/JQuery table component (there are many examples, but this one does per-column filtering): http://www.datatables.net/examples/api/multi_filter.html mrg On Wed, Dec 15, 2010 at 8:43 AM, Wechsung, Wulf wulf.wechs...@sap.com wrote: Hello Tapestry Users, I'm writing to you because I would like to add a filter functionality to the Grid component. In short, this filter consists of a text field per column in the header row. Text entered there should filter out all rows that don't match the text. To make clearer what I mean, I've attached a (hopefully small enough) picture of my current prototype implemented by giving a header block as param to the Grid component: Functionally, if the user enters i.e. *100* under Size Header the Grid should update and contain only the two matching rows. My question is this: Does anyone have any advice on what the smoothest way to add this (and maybe get the changes back into tapestry later, if my employer allows it) would be? My current plan is to simply copy the current Grid implementation and modify it to support the filter feature, creating a completely new component. Did I miss something obvious in tapestry that would allow me to this more easily? The route I took with the prototype doesn't get me father as I currently don't see how to supply the grid with these blocks both dynamically and generically. Thanks for the time you took to read this and thanks in advance for any response you send my way. Also thanks to HLS and all tapesty developer and testers for making a this framework. Kind Regards, *Wulf Wechsung * - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
RE: T5: Javascript problem
Thanks Andreas. Yes, name attribute was the problem. I've changed to using getElementById and it's working again. c. -Original Message- From: andre...@gmail.com [mailto:andre...@gmail.com] On Behalf Of Andreas Andreou Sent: 16 December 2010 10:12 To: Tapestry users Subject: Re: T5: Javascript problem I dont like this way of refering to nodes ( document.entryForm.oosComment ) i'm not sure how many browsers fully support this but it looks like this can work when nodes have the name attribute set. If i remember correctly, T5.1 used to include a name in each form but this was removed in 5.2 - see https://issues.apache.org/jira/browse/TAP5-796 So, anyway, see if your nodes have id, and just reference them in that way using either document.getElementById or prototype's $$ On Thu, Dec 16, 2010 at 10:51, Newham, Cameron cameron.new...@bl.uk wrote: Hi! Another simple question. I had an application running under T5.1 and I've now moved to 5.2. I notice my Javascript is now broken. I have this function in my .tml file: SCRIPT type=text/JavaScript LANGUAGE=JavaScript function checkOOS(myCheck) { if(myCheck.checked) { document.entryForm.oosComment.disabled = false; document.entryForm.oosComment.focus(); } else { document.entryForm.oosComment.disabled = true; } } /SCRIPT Which turns a select on and off by clicking a checkbox via onclick. While the JavaScript function is called, it no longer updates the disabled attribute of oosComment. Should I be adding my JavaScript with JavaScriptSupport (and if so, where is documentation or an example? The only mention of JavaScript I can find is in the HOW-TOs which show it being added to the .tml file directly in a script block). Also, why is this now partially non-functioning in 5.2? It seems that document.entryForm.oosComment.disabled is incorrect for referring to component oosComment. Yet this works fine under 5.1. My Form is called entryForm and oosComment is inside that. The page hasn't changed since it worked under 5.1 but, in that case, it seems I've been doing something wrong all along even though it worked. c. -- Andreas Andreou - andy...@apache.org - http://blog.andyhot.gr Tapestry PMC / Tacos developer Open Source / JEE Consulting - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: T5: Javascript problem
Hi Cameron, On Thu, Dec 16, 2010 at 8:03 AM, Newham, Cameron cameron.new...@bl.ukwrote: Should I be adding my JavaScript with JavaScriptSupport (and if so, where is documentation or an example? The only mention of JavaScript I can find is in the HOW-TOs which show it being added to the .tml file directly in a script block). I haven't read precisely your mail but I think I can answer that part... I 've been reading the mailing list for a while and I think adding javascript blocks is not recommended, instead you should write javascript in .js files and add them by means of annotations in the Java class. About t5/js documentation I can tell you about this link I found useful: http://wiki.apache.org/tapestry/Tapestry5AndJavaScriptExplained please take into account that annotation's names may vary between version 5.1.x.x and 5.2.x.x... I don't remember quite well about that. finally you can browse mailing list archives: http://tapestry.1045711.n5.nabble.com/Tapestry-User-f2375125.html hope that helps cheers. Nicolas.-
Form Inheritance
Hi, I am working with a form that is used in 3 different places, so I tried to create an abstract form and extends from it. The problem with this is that Is not working the submit now. Anyone had this problem? Thanks. P.S. I am usign Tapestry 5.1 - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Form Inheritance
Oh sorry, finally I found the problem after a day trying. It was a zone id problem. Nevermind. Thanks! On 12/16/2010 10:44 AM, Kado wrote: Hi, I am working with a form that is used in 3 different places, so I tried to create an abstract form and extends from it. The problem with this is that Is not working the submit now. Anyone had this problem? Thanks. P.S. I am usign Tapestry 5.1 - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: T5: Javascript problem
Yes, it's true it might not be the fastest or easiest way, but I think it's good that Tapestry forces you to things the right way. Nicolás.-
Re: T5: Javascript problem
One use case I have for putting javascript in .tml is to get a function to execute after a zone update. Due to Tapestry attaching onclick event handlers to actionlinks (as opposed to using onclick attribute), it's not that easy afaik to guarantee your own method will get called afterwards (the DOM standard does not specify in which order attached events should be fired). So at the bottom of my zone I have a scriptmyFunction();/script block. Seems to work, although is probably a horrible hack and not the right way to do things... :) R. On Thu, 2010-12-16 at 11:45 -0300, Nicolas Barrera wrote: Yes, it's true it might not be the fastest or easiest way, but I think it's good that Tapestry forces you to things the right way. Nicolás.- - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Problem for write actionLink with markup writer
Hi all ! I've a question : it is possible to write an actionLink with a MarkupWriter ? I've tried to do : In my component : writer.writeRaw(a id='delete' href='../view.delete/+childLevel.getId()+?t:ac=+childLevel.getOrganism().getId()+'); But when I click on it's doesn't work, the page respond : org.apache.tapestry5.ioc.internal.util.TapestryException: Component organism/department/View does not contain an embedded component with id 'delete'. Any ideas? Thanks in advance Ce message et les pi?ces jointes sont confidentiels et r?serv?s ? l'usage exclusif de ses destinataires. Il peut ?galement ?tre prot?g? par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir imm?diatement l'exp?diteur et de le d?truire. L'int?grit? du message ne pouvant ?tre assur?e sur Internet, la responsabilit? du groupe Atos Origin ne pourra ?tre recherch?e quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard et sa responsabilit? ne saurait ?tre recherch?e pour tout dommage r?sultant d'un virus transmis. This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
Re: Problem for write actionLink with markup writer
On Thu, 16 Dec 2010 13:05:31 -0200, Cucchietti Denis denis.cucchie...@atosorigin.com wrote: Hi all ! Hi! I've a question : it is possible to write an actionLink with a MarkupWriter ? Technically speaking, no, because you can only declare component instances in templates. In addition, you can't instantiate components yourself for use in other components or pages. On the other hand, you can get the URL genarated for an ActionLink or EventLink @Inject'ing ComponentResources and using it createEventLink(String eventType, Object... context) method. writer.writeRaw(a id='delete' href='../view.delete/+childLevel.getId()+?t:ac=+childLevel.getOrganism().getId()+'); Why are you using writeRaw() instead of element()? Anyway, using hardwired URLs is a very bad practice. What you're trying to accomplish? -- Thiago H. de Paula Figueiredo Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor Owner, Ars Machina Tecnologia da Informação Ltda. http://www.arsmachina.com.br - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
RE: Problem for write actionLink with markup writer
Thanks Thiago, Im trying to create a tree and for each node a menu. In this menu I have this action delete and I would like catch this event in order to delete the node from my page. -Message d'origine- De : Thiago H. de Paula Figueiredo [mailto:thiag...@gmail.com] Envoyé : jeudi 16 décembre 2010 16:32 À : Tapestry users Objet : Re: Problem for write actionLink with markup writer On Thu, 16 Dec 2010 13:05:31 -0200, Cucchietti Denis denis.cucchie...@atosorigin.com wrote: Hi all ! Hi! I've a question : it is possible to write an actionLink with a MarkupWriter ? Technically speaking, no, because you can only declare component instances in templates. In addition, you can't instantiate components yourself for use in other components or pages. On the other hand, you can get the URL genarated for an ActionLink or EventLink @Inject'ing ComponentResources and using it createEventLink(String eventType, Object... context) method. writer.writeRaw(a id='delete' href='../view.delete/+childLevel.getId()+?t:ac=+childLevel.getOrganism().getId()+'); Why are you using writeRaw() instead of element()? Anyway, using hardwired URLs is a very bad practice. What you're trying to accomplish? -- Thiago H. de Paula Figueiredo Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor Owner, Ars Machina Tecnologia da Informação Ltda. http://www.arsmachina.com.br - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité du groupe Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis. This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
Re: Problem for write actionLink with markup writer
On Thu, 16 Dec 2010 13:39:21 -0200, Cucchietti Denis denis.cucchie...@atosorigin.com wrote: Thanks Thiago, Im trying to create a tree and for each node a menu. In this menu I have this action delete and I would like catch this event in order to delete the node from my page. You need events for that, but not necessarily an EventLink or ActionLink. Do what I said: generate an URL @Inject'ing ComponentResources and using its createEventLink(String eventType, Object... context) method. Pass the object id as the context. If you use delete as your event name, you can handle the event using a onDelete(int id) method. And just use writeRaw() if you want to output HTML from other sources. You shoulde use element() in your scenario instead. -- Thiago H. de Paula Figueiredo Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor Owner, Ars Machina Tecnologia da Informação Ltda. http://www.arsmachina.com.br - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
RE: Problem for write actionLink with markup writer
Ok Thiago i will try it, thanks !! -Message d'origine- De : Thiago H. de Paula Figueiredo [mailto:thiag...@gmail.com] Envoyé : jeudi 16 décembre 2010 16:49 À : Tapestry users Objet : Re: Problem for write actionLink with markup writer On Thu, 16 Dec 2010 13:39:21 -0200, Cucchietti Denis denis.cucchie...@atosorigin.com wrote: Thanks Thiago, Im trying to create a tree and for each node a menu. In this menu I have this action delete and I would like catch this event in order to delete the node from my page. You need events for that, but not necessarily an EventLink or ActionLink. Do what I said: generate an URL @Inject'ing ComponentResources and using its createEventLink(String eventType, Object... context) method. Pass the object id as the context. If you use delete as your event name, you can handle the event using a onDelete(int id) method. And just use writeRaw() if you want to output HTML from other sources. You shoulde use element() in your scenario instead. -- Thiago H. de Paula Figueiredo Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor Owner, Ars Machina Tecnologia da Informação Ltda. http://www.arsmachina.com.br - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité du groupe Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis. This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
RE: Problem for write actionLink with markup writer
Thanks Thiago it's works !! Solution : writer.writeRaw(a id='delete' href=' + componentResources.createEventLink(delete, childLevel.getId()) + '); But use element() instead writeRaw ;-) -Message d'origine- De : Thiago H. de Paula Figueiredo [mailto:thiag...@gmail.com] Envoyé : jeudi 16 décembre 2010 16:49 À : Tapestry users Objet : Re: Problem for write actionLink with markup writer On Thu, 16 Dec 2010 13:39:21 -0200, Cucchietti Denis denis.cucchie...@atosorigin.com wrote: Thanks Thiago, Im trying to create a tree and for each node a menu. In this menu I have this action delete and I would like catch this event in order to delete the node from my page. You need events for that, but not necessarily an EventLink or ActionLink. Do what I said: generate an URL @Inject'ing ComponentResources and using its createEventLink(String eventType, Object... context) method. Pass the object id as the context. If you use delete as your event name, you can handle the event using a onDelete(int id) method. And just use writeRaw() if you want to output HTML from other sources. You shoulde use element() in your scenario instead. -- Thiago H. de Paula Figueiredo Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor Owner, Ars Machina Tecnologia da Informação Ltda. http://www.arsmachina.com.br - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité du groupe Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis. This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
Re: Problem for write actionLink with markup writer
On Thu, 16 Dec 2010 14:09:31 -0200, Cucchietti Denis denis.cucchie...@atosorigin.com wrote: Thanks Thiago it's works !! Yeah! Solution : writer.writeRaw(a id='delete' href=' + componentResources.createEventLink(delete, childLevel.getId()) + '); But use element() instead writeRaw ;-) writer.element(a, class, delete, href, componentResources.createEventLink(delete, childLevel.getId()); // anything you want to put inside the a element writer.write(Delete); // just an example writer.end(); // closes a There's no excuse to use writeRaw() here. Using element() frees you from using string concatenation or String.format(). By the way, your code generates multiple elements with the same id. That's why I've used class instead of id in my example. -- Thiago H. de Paula Figueiredo Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor Owner, Ars Machina Tecnologia da Informação Ltda. http://www.arsmachina.com.br - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
[Tapestry Central] Announcing Tapestry 5.2
I'm very proud to announce that the next major release of Tapestry, release 5.2, is now available as Tapestry version 5.2.4. This is the first stable release of Tapestry since 5.1.0.5 (back in April 2009), which is far too long a cycle. You might wonder: what's been the holdup? The answer, for myself personally, is that I've been using Tapestry on two very, very different applications for two very, very different clients and I've been updating Tapestry to embrace the real world concerns of both of them. At the same time, I've done about a dozen public and private Tapestry training sessions and gathered reams of input from my students. Let's talk about some of the major enhancements in this release: Removal of Page Pooling Prior versions of Tapestry used a page pool; for each page, Tapestry would track multiple instances of the page, binding one page instance to a particular request. This was an important part of Tapestry's appeal ... all the issues related to multi-threading were taken over by the framework, and you could code your pages and components as simple POJOs, without worrying about the threading issues caused by running inside a servlet container. Unfortunately pages are big: it's not just one object but instead the root of a large tree of objects: components and templates, bindings for component parameters, component resources, and all the extra infrastructure (lists and maps and such) to tie it together. Some of the largest Tapestry projects have hit memory problems when they combined deeply componentized pages with large numbers of parallel threads. Tapestry 5.2 rewrites the rules here; only a single page tree is now needed for each page; the page and component classes have an extra transformation step that moves per-request data out of the objects themselves and into a per-thread Map object. Now, any number of requests can operate at the same time, without requiring additional page instances. Even better, the old page pooling mechanism included some locking and blocking that also gets jettisoned in the new approach. It's just a big win all around. Live Service Reloading People love the ability to change page and component classes in a Tapestry application and see the changes immediately; prior to 5.2 the same people would be disappointed that they couldn't change their services and see changes just as immediately. Tapestry 5.2 eliminates that restriction in most cases. This is super handy for services such as DAOs (data access objects) where it is now possible to tweak a Hibernate query and see the results as immediately as changing some content in a template. This is another Tapestry feature that you'll find you can't live without once you use it the first time! ClassTransformation API Improvements At the heart of Tapestry is the Class Transformation API; the extensible pipeline that is the basis for how Tapestry transforms simple POJOs into working components. Prior to 5.2, if you wanted to do any interesting transformations, you had to master the Javassist psuedo-Java language. Tapestry 5.2 reworks the API; it is now possible to do all kinds of interesting transformations in strict Java code; Javassist has been walled off, with an eventual goal to eliminate it entirely. Query Parameter Support Tapestry traditionally has stored information in the HTTP request path. For example, a URL might be /viewaccount/12345; the viewaccount part of the URL is the name of a page, and the 12345 part is the ID of an Account object. Tapestry calls the latter part the page activation context (which can contain one or more values). That works well when the a page has a fixed set of values for the page activation context, but not so well when the values may vary. For instance, you may be doing a search and want to store optional query parameters to identify the query term or the page number. Tapestry 5.2 adds the @ActivationRequestParameter annotation that automates the process of gathering such data, encoding into URLs as query parameters, and making it available in subsequent requests. Testing A lot of work has gone into Tapestry's testing support, especially the base classes that support integration testing using Selenium. The new base classes make it easy to write test cases that work independently, or as part of a larger test, automatically starting and stopping Selenium and Jetty as appropriate. Further, Tapestry expands on Selenium's failure behavior, so that failures result in a capture of the page contents as both HTML and a PNG image file. It is simply much faster and much easier to write real, useful tests for Tapestry. JSR-303 Support Tapestry now supports the Bean Validation JSR, converting the standard validation annotations into client-side and server-side validations. Documentation Tapestry's documentation has always been a challenge; for Tapestry 5.2 we've been doing a massive rework; doing a better job of getting your started using Tapestry; it's still a work in progress, but since it's
Re: [Tapestry Central] Announcing Tapestry 5.2
With formatting: http://tapestryjava.blogspot.com/2010/12/announcing-tapestry-52.html On Thu, Dec 16, 2010 at 2:22 PM, Howard hls...@gmail.com wrote: I'm very proud to announce that the next major release of Tapestry, release 5.2, is now available as Tapestry version 5.2.4. This is the first stable release of Tapestry since 5.1.0.5 (back in April 2009), which is far too long a cycle. You might wonder: what's been the holdup? The answer, for myself personally, is that I've been using Tapestry on two very, very different applications for two very, very different clients and I've been updating Tapestry to embrace the real world concerns of both of them. At the same time, I've done about a dozen public and private Tapestry training sessions and gathered reams of input from my students. Let's talk about some of the major enhancements in this release: Removal of Page Pooling Prior versions of Tapestry used a page pool; for each page, Tapestry would track multiple instances of the page, binding one page instance to a particular request. This was an important part of Tapestry's appeal ... all the issues related to multi-threading were taken over by the framework, and you could code your pages and components as simple POJOs, without worrying about the threading issues caused by running inside a servlet container. Unfortunately pages are big: it's not just one object but instead the root of a large tree of objects: components and templates, bindings for component parameters, component resources, and all the extra infrastructure (lists and maps and such) to tie it together. Some of the largest Tapestry projects have hit memory problems when they combined deeply componentized pages with large numbers of parallel threads. Tapestry 5.2 rewrites the rules here; only a single page tree is now needed for each page; the page and component classes have an extra transformation step that moves per-request data out of the objects themselves and into a per-thread Map object. Now, any number of requests can operate at the same time, without requiring additional page instances. Even better, the old page pooling mechanism included some locking and blocking that also gets jettisoned in the new approach. It's just a big win all around. Live Service Reloading People love the ability to change page and component classes in a Tapestry application and see the changes immediately; prior to 5.2 the same people would be disappointed that they couldn't change their services and see changes just as immediately. Tapestry 5.2 eliminates that restriction in most cases. This is super handy for services such as DAOs (data access objects) where it is now possible to tweak a Hibernate query and see the results as immediately as changing some content in a template. This is another Tapestry feature that you'll find you can't live without once you use it the first time! ClassTransformation API Improvements At the heart of Tapestry is the Class Transformation API; the extensible pipeline that is the basis for how Tapestry transforms simple POJOs into working components. Prior to 5.2, if you wanted to do any interesting transformations, you had to master the Javassist psuedo-Java language. Tapestry 5.2 reworks the API; it is now possible to do all kinds of interesting transformations in strict Java code; Javassist has been walled off, with an eventual goal to eliminate it entirely. Query Parameter Support Tapestry traditionally has stored information in the HTTP request path. For example, a URL might be /viewaccount/12345; the viewaccount part of the URL is the name of a page, and the 12345 part is the ID of an Account object. Tapestry calls the latter part the page activation context (which can contain one or more values). That works well when the a page has a fixed set of values for the page activation context, but not so well when the values may vary. For instance, you may be doing a search and want to store optional query parameters to identify the query term or the page number. Tapestry 5.2 adds the @ActivationRequestParameter annotation that automates the process of gathering such data, encoding into URLs as query parameters, and making it available in subsequent requests. Testing A lot of work has gone into Tapestry's testing support, especially the base classes that support integration testing using Selenium. The new base classes make it easy to write test cases that work independently, or as part of a larger test, automatically starting and stopping Selenium and Jetty as appropriate. Further, Tapestry expands on Selenium's failure behavior, so that failures result in a capture of the page contents as both HTML and a PNG image file. It is simply much faster and much easier to write real, useful tests for Tapestry. JSR-303 Support Tapestry now supports the Bean Validation JSR, converting the standard validation annotations into client-side and server-side validations.
T5 Guide: Building T5.2.4 Application Using Netbeans 6.9.1
1. File-New Project 2. Choose-Maven-Maven Project 3. Maven Archetype-Click Add 4. Specify Archetype Detail a. group id: org.apache.tapestry b. artifact id: quickstart c. version: 5.2.4 d. repository: http://repo1.maven.org/maven2 5. Select your created Archetype-Next 6. Project Name-Finish. 7. Wait for the Application to be created. (Processing Archetype) Wait for the libraries to be downloaded. ^_^ You have a working Tapestry Application... Thank Guys GOOD JOB :) -- View this message in context: http://tapestry.1045711.n5.nabble.com/T5-Guide-Building-T5-2-4-Application-Using-Netbeans-6-9-1-tp3308754p3308754.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: [Tapestry Central] Announcing Tapestry 5.2
Congrats to the Tapestry 5 Team for a great job! now, how easy to upgrade from the 5.1 to 5.2? just replacing the version number? any upgrade guide? -- View this message in context: http://tapestry.1045711.n5.nabble.com/Tapestry-Central-Announcing-Tapestry-5-2-tp3308716p3308860.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: [Tapestry Central] Announcing Tapestry 5.2
For the most part, it is just changing the version number. See the release notes for a few additional details, if you are doing some more advanced things. Of course, you should do some testing after changing versions! On Thu, Dec 16, 2010 at 5:44 PM, Angelo C. angelochen...@gmail.com wrote: Congrats to the Tapestry 5 Team for a great job! now, how easy to upgrade from the 5.1 to 5.2? just replacing the version number? any upgrade guide? -- View this message in context: http://tapestry.1045711.n5.nabble.com/Tapestry-Central-Announcing-Tapestry-5-2-tp3308716p3308860.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org -- Howard M. Lewis Ship Creator of Apache Tapestry The source for Tapestry training, mentoring and support. Contact me to learn how I can get you up and productive in Tapestry fast! (971) 678-5210 http://howardlewisship.com
Re: [Tapestry Central] Announcing Tapestry 5.2
that's good, will try that. talking about test, is there any sample where you use Groovy to do the test? -- View this message in context: http://tapestry.1045711.n5.nabble.com/Tapestry-Central-Announcing-Tapestry-5-2-tp3308716p3308913.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: [Tapestry Central] Announcing Tapestry 5.2
Early Christmas! I'm curious to see how the page pooling changes work out. About six weeks ago one of our production apps blew up on us due to the page pool. We thought we had large enough sizes defined, but an external API we depended upon started responding very slowly (after months of responding quickly) and that led to our pages being checked out of the pool for minutes at a time, which quickly exhausted the pool. I think with the removal of the page pool, our app would've survived better (even though the portion using the external API would've still been crippled). I'm also going to see if I can treat my Cayenne DataObjects as a service for live class reloading now, too. Thanks Howard and everyone else who contributed! mrg On Thu, Dec 16, 2010 at 5:44 PM, Howard Lewis Ship hls...@gmail.com wrote: With formatting: http://tapestryjava.blogspot.com/2010/12/announcing-tapestry-52.html - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: [Tapestry Central] Announcing Tapestry 5.2
For me, replacing the version number on pom.xml is working. If you use tapestry-spring, u should change spring version from 2.5.6 to spring 3.0.0.RELEASE or later.. On Fri, Dec 17, 2010 at 8:44 AM, Angelo C. angelochen...@gmail.com wrote: Congrats to the Tapestry 5 Team for a great job! now, how easy to upgrade from the 5.1 to 5.2? just replacing the version number? any upgrade guide? -- View this message in context: http://tapestry.1045711.n5.nabble.com/Tapestry-Central-Announcing-Tapestry-5-2-tp3308716p3308860.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: [Tapestry Central] Announcing Tapestry 5.2
Not sure that the DataObjects will work... the live service class reloading basically works b/c there's the public interface, and the private implementation, and the only class that has a reference to the private implementation is the proxy. At least, that's how I understand it. ;) Not sure how that would fly with the data objects, unless you defined an interface on top of each of your data objects... which sounds kinda ugly... Robert On Dec 16, 2010, at 12/169:31 PM , Michael Gentry wrote: Early Christmas! I'm curious to see how the page pooling changes work out. About six weeks ago one of our production apps blew up on us due to the page pool. We thought we had large enough sizes defined, but an external API we depended upon started responding very slowly (after months of responding quickly) and that led to our pages being checked out of the pool for minutes at a time, which quickly exhausted the pool. I think with the removal of the page pool, our app would've survived better (even though the portion using the external API would've still been crippled). I'm also going to see if I can treat my Cayenne DataObjects as a service for live class reloading now, too. Thanks Howard and everyone else who contributed! mrg On Thu, Dec 16, 2010 at 5:44 PM, Howard Lewis Ship hls...@gmail.com wrote: With formatting: http://tapestryjava.blogspot.com/2010/12/announcing-tapestry-52.html - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org