Re: T5: Using resources
Hi, I have that. Here is my code: props.setProperty(VelocityEngine.RESOURCE_LOADER, "classpath"); props.setProperty("classpath." + VelocityEngine.RESOURCE_LOADER + ".class",ClasspathResourceLoader.class.getName()); engine.init(props); Then I load my template with this: Template template = Velocity.getTemplate("src/main/resources/templates/description.vm"); But this location is not in my .war file. Is there maybe something like the Path Annotation for Assets to get a reliable path? Moritz Angelo Chen wrote: > > Hi, > > here is what I did: > > store it under resources, then add: > p.setProperty("resource.loader", "class"); > p.setProperty("class.resource.loader.class", > "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); > engine.init(p); > > > MoritzGilsdorf wrote: >> >> Hi, >> >> I'm trying to find a good place to store auxiliary files inside my >> project. I'm using velocity templates to generate simple text-files and >> in my development folder they are stored in >> CLASSPATH/src/main/resources/templates/. >> >> When I deploy my Project, the template directory is stored in my Projects >> .jar directly under templates and the app can't find them there. >> >> How can I store my templates so that find the with one command both in my >> dev-dir and in my deployed-dir? >> >> Thanks, >> >> Moritz >> >> > > -- View this message in context: http://www.nabble.com/T5%3A-Using-resources-tp15618690p15629016.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
t5: utf8(chinese) in form
Hi, I encoded some chinese in utf 8 and submit, the data saved to mysql is garbage, if I encode the data directly into mysql table using a native client, then display back in t5 app page, it shows correctly, i tried adding the wiki's approach: public RequestFilter buildUtf8Filter( @InjectService("RequestGlobals") final RequestGlobals requestGlobals) { return new RequestFilter() { public boolean service(Request request, Response response, RequestHandler handler) throws IOException { requestGlobals.getHTTPServletRequest().setCharacterEncoding("UTF-8"); return handler.service(request, response); } }; } any idea? thanks. A.C. -- View this message in context: http://www.nabble.com/t5%3A-utf8%28chinese%29-in-form-tp15628787p15628787.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: T5: Using resources
Hi, here is what I did: store it under resources, then add: p.setProperty("resource.loader", "class"); p.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); engine.init(p); MoritzGilsdorf wrote: > > Hi, > > I'm trying to find a good place to store auxiliary files inside my > project. I'm using velocity templates to generate simple text-files and in > my development folder they are stored in > CLASSPATH/src/main/resources/templates/. > > When I deploy my Project, the template directory is stored in my Projects > .jar directly under templates and the app can't find them there. > > How can I store my templates so that find the with one command both in my > dev-dir and in my deployed-dir? > > Thanks, > > Moritz > > -- View this message in context: http://www.nabble.com/T5%3A-Using-resources-tp15618690p15628784.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [T5] slashes in context parameters messing up
Wait.. so what is the expected/correct behavior?? the url coming in is /%2Fblah/ how should that be interpreted? and how can we make it so that it works on both jetty and tomcat? Do you not have any unit tests for funky looking context values? Howard Lewis Ship wrote: Ugh. Jetty and Tomcat often disagree. Jetty is always right, but that doesn't help ... we end up having to patch for one or the other. On Thu, Feb 21, 2008 at 7:10 PM, Fernando Padilla <[EMAIL PROTECTED]> wrote: So on further testing it looks like it works on production ( tomcat ), but doesn't work on dev ( jetty ). So sorry for the "fire alarm" tone; it doesn't look to be anything about tapestry. But I would still like some ideas to figure this out and make sure that it won't bite me/us later.. :) so it looks like if I include any slashes in a context parameter, it gets encoded properly, but then gets unencoded once too many times by jetty; thus interpreted as multiple context parameters.. totally messing it up. I am using Tapestry 5.0.11-SNAPSHOT (as of yesterday) Fernando Padilla wrote: > I have a url like this going into Tapestry. > > /fbracket/groups.canvaslayout.analyticsiframe:hbx/Groups/%2Ffbracket/M030 > > And it's parsing it into the EventContext as: > > groups.canvaslayout.analyticsiframe:hbx; [ Groups, , fbracket, M030 ]; [ > ] ) > > So it's for some reason double decoding the url, and pulling out 4 > parameters instead of 3. > > > Could someone please help? I discovered this on production.. a little > to late to pull it back out. :( > > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [T5] slashes in context parameters messing up
Ugh. Jetty and Tomcat often disagree. Jetty is always right, but that doesn't help ... we end up having to patch for one or the other. On Thu, Feb 21, 2008 at 7:10 PM, Fernando Padilla <[EMAIL PROTECTED]> wrote: > So on further testing it looks like it works on production ( tomcat ), > but doesn't work on dev ( jetty ). So sorry for the "fire alarm" tone; > it doesn't look to be anything about tapestry. > > But I would still like some ideas to figure this out and make sure that > it won't bite me/us later.. :) > > so it looks like if I include any slashes in a context parameter, it > gets encoded properly, but then gets unencoded once too many times by > jetty; thus interpreted as multiple context parameters.. totally messing > it up. > > I am using Tapestry 5.0.11-SNAPSHOT (as of yesterday) > > > > > > Fernando Padilla wrote: > > I have a url like this going into Tapestry. > > > > /fbracket/groups.canvaslayout.analyticsiframe:hbx/Groups/%2Ffbracket/M030 > > > > And it's parsing it into the EventContext as: > > > > groups.canvaslayout.analyticsiframe:hbx; [ Groups, , fbracket, M030 ]; [ > > ] ) > > > > So it's for some reason double decoding the url, and pulling out 4 > > parameters instead of 3. > > > > > > Could someone please help? I discovered this on production.. a little > > to late to pull it back out. :( > > > > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Howard M. Lewis Ship Creator Apache Tapestry and Apache HiveMind - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
T4 AutoCompleter onkeypress event never triggered
Hi all, I'm using the AutoCompleter component and noticed that hitting the enter key submits the form in IE. I've tried disabling keyCode 13 but since the component actually creates a select field, onkeypress, onkeydown and onkeyup are never triggered! Does anyone know of a way to disable enter key form submission on this component? Thanks, Paul. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [T5] slashes in context parameters messing up
So on further testing it looks like it works on production ( tomcat ), but doesn't work on dev ( jetty ). So sorry for the "fire alarm" tone; it doesn't look to be anything about tapestry. But I would still like some ideas to figure this out and make sure that it won't bite me/us later.. :) so it looks like if I include any slashes in a context parameter, it gets encoded properly, but then gets unencoded once too many times by jetty; thus interpreted as multiple context parameters.. totally messing it up. I am using Tapestry 5.0.11-SNAPSHOT (as of yesterday) Fernando Padilla wrote: I have a url like this going into Tapestry. /fbracket/groups.canvaslayout.analyticsiframe:hbx/Groups/%2Ffbracket/M030 And it's parsing it into the EventContext as: groups.canvaslayout.analyticsiframe:hbx; [ Groups, , fbracket, M030 ]; [ ] ) So it's for some reason double decoding the url, and pulling out 4 parameters instead of 3. Could someone please help? I discovered this on production.. a little to late to pull it back out. :( - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[T5] slashes in context parameters messing up
I have a url like this going into Tapestry. /fbracket/groups.canvaslayout.analyticsiframe:hbx/Groups/%2Ffbracket/M030 And it's parsing it into the EventContext as: groups.canvaslayout.analyticsiframe:hbx; [ Groups, , fbracket, M030 ]; [ ] ) So it's for some reason double decoding the url, and pulling out 4 parameters instead of 3. Could someone please help? I discovered this on production.. a little to late to pull it back out. :( - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [T4.1.*] Update of .script file only
Could someone please help me with this question Thank you so much! Pai911 wrote: > > Dear all: > > I was doing some async calls in T4. > > After the components is updated asynchronously, the javascript event > associated with it will by broken. > > Thus, I have to specify the "script" component in the "updateComponents" > attribute > > However, the script has two parts ---"body" & "initialization". > > My question is : > > 1. How can I resend just the content in to the client? (I > want to optimize the size of async calls) > > 2. If this is possible, will the javascript event be able to be bound to > the updated components again by resending the block > "only" ? > > The following is the script I'm using: > > > Specification 3.0//EN" > "http://jakarta.apache.org/tapestry/dtd/Script_3_0.dtd";> > >resource-path="/com/live/scriptLib/jQuery/jquery-1.2.2.pack.js"/> > > > > > > > /* Position the tooltip */ > var positionTooltip = function(event) { > var tPosX = event.pageX ${offsetx}; > var tPosY = event.pageY ${offsety}; > $('div.tooltip').css({top: tPosY, left: tPosX}); > }; > > /* Show (create) the tooltip */ > var showTooltip = function(event) { > $('div.tooltip').remove(); > var $detail = ${tooltipContent}.html( ); > $(' class="tooltip">'+$detail+'').appendTo('body'); > positionTooltip(event); > }; > > /* Hide (remove) the tooltip */ > var hideTooltip = function() { > $('div.tooltip').remove(); > }; > > ]]> > >> /*Attach the event */ >$(document).ready(function() { > $('${target}') > .hover(showTooltip, hideTooltip) > .mousemove(positionTooltip); >}) > ]]> > > > > > > -- View this message in context: http://www.nabble.com/-T4.1.*--Update-%3Cinitialization%3E-of-.script-file-only-tp15605738p15626124.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Tacos or equivalent for T5
Have a look at the tapestry home page http://tapestry.apache.org/tapestry5 , it contains a list of libraries Kind regards, Joachim Pablo Ruggia wrote: Hi! Are there any development efforts to create an library of ajax widgets/components for T5 ? It doesn't matter on which library (dojo, yui, extjs, jquery, etc). Thanks ! -- Joachim Van der Auwera PROGS bvba, progs.be - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Tacos or equivalent for T5
Here http://tapestry.apache.org/tapestry5/ are listed all know libs :) On Thu, Feb 21, 2008 at 11:03 PM, Pablo Ruggia <[EMAIL PROTECTED]> wrote: > Hi! > Are there any development efforts to create an library of ajax > widgets/components for T5 ? > It doesn't matter on which library (dojo, yui, extjs, jquery, etc). > Thanks ! > -- Best regards, Igor Drobiazko
Tacos or equivalent for T5
Hi! Are there any development efforts to create an library of ajax widgets/components for T5 ? It doesn't matter on which library (dojo, yui, extjs, jquery, etc). Thanks !
Re: NoClassDefFoundException
Not sure if nothing else was playing tricks with me, but removing tapestry-hibernate from the deployment seems to have fixed it (using 5.0.11-snapshot). Anyway, thanks for the help, Joachim Howard Lewis Ship wrote: That service was renamed between 5.0.9 and 5.0.10. Looks like you have a bit of a mismatch going on somewhere. As we ramp up towards a stable release, we're keeping more careful track of such changes. Once we hit a stable release, we'll be shackled somewhat to the existing APIs, to enable proper backwards compatibility. On Thu, Feb 21, 2008 at 8:12 AM, Joachim Van der Auwera <[EMAIL PROTECTED]> wrote: Once I added t5components in my projects, I get the following : java.lang.NoClassDefFoundError: org/apache/tapestry/ioc/services/ThreadCleanupHub at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2395) at java.lang.Class.privateGetPublicMethods(Class.java:2519) at java.lang.Class.getMethods(Class.java:1406) at org.apache.tapestry.ioc.internal.DefaultModuleDefImpl.grind(DefaultModuleDefImpl.java:137) at org.apache.tapestry.ioc.internal.DefaultModuleDefImpl.(DefaultModuleDefImpl.java:106) at org.apache.tapestry.ioc.RegistryBuilder.add(RegistryBuilder.java:100) at org.apache.tapestry.ioc.RegistryBuilder.add(RegistryBuilder.java:119) at org.apache.tapestry.ioc.IOCUtilities.addModulesInList(IOCUtilities.java:122) at org.apache.tapestry.ioc.IOCUtilities.addModulesInManifest(IOCUtilities.java:106) at org.apache.tapestry.ioc.IOCUtilities.addDefaultModules(IOCUtilities.java:78) at org.apache.tapestry.internal.TapestryAppInitializer.(TapestryAppInitializer.java:73) at org.apache.tapestry.TapestryFilter.init(TapestryFilter.java:67) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397) at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3722) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4367) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:790) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:770) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:553) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) -- Joachim Van der Auwera PROGS bvba, progs.be - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Joachim Van der Auwera PROGS bvba, progs.be - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
T4: example of using @EventListener to capture a javascript method call
using tap 4.1.3 I am trying to tie an arbitrary client side JS method call to a server side listener method as per "Accessing intercepted functions' parameters on the server-side" on the tap 4.1 event listener page (http://tapestry.apache.org/tapestry4.1/ajax/eventlistener.html) i can't get the client side JS method call to invoke the server side listener method. Since this is the first time i am using the @EventListener annotation I am sure that I am missing something simple. Does anyone know of a publicly available example of this functionality? that would probably be the fastest way to straighten myself out. Carlos -- View this message in context: http://www.nabble.com/T4%3A-example-of-using-%40EventListener-to-capture-a-javascript-method-call-tp15618713p15618713.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [T5] RuntimeException if extends pages/components
ted, you are the man, i ve fogotten to implement the Manifest.mf thanx 2008/2/21, Ted Steen <[EMAIL PROTECTED]>: > > It should be possible. > Make sure that the AbstractBasePage is controlled by Tapestry by > ensuring that the module for that library is loaded and that it > contains this contribution > public static void > contributeComponentClassResolver(Configuration > configuration) > { > configuration.add(new LibraryMapping("libname", > "de.hsofttec.tapestry")); > } > > > 2008/2/21, Sven Homburg <[EMAIL PROTECTED]>: > > > Hi there, > > > > do i understand that right, that i dont can extends pages/components > from > > other libraries? > > > > - > > Caused by: java.lang.RuntimeException: Base class > > de.hsofttec.tapestry.base.AbstractBasePage (super class of > > de.hsofttec.testapp.p > > ages.Start) is not in a controlled package and is therefore not valid. > You > > should try moving the class to package de.hsofttec.test > > app.base. > > > > -- > > with regards > > > > Sven Homburg > > > > > > -- > /ted > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- with regards Sven Homburg
T5: Using resources
Hi, I'm trying to find a good place to store auxiliary files inside my project. I'm using velocity templates to generate simple text-files and in my development folder they are stored in CLASSPATH/src/main/resources/templates/. When I deploy my Project, the template directory is stored in my Projects .jar directly under templates and the app can't find them there. How can I store my templates so that find the with one command both in my dev-dir and in my deployed-dir? Thanks, Moritz -- View this message in context: http://www.nabble.com/T5%3A-Using-resources-tp15618690p15618690.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [T4.1.5] Strange page within page rendering with only particular errors
http://issues.apache.org/jira/browse/TAPESTRY-1690 On Thu, Feb 21, 2008 at 11:43 AM, Anna Vo <[EMAIL PROTECTED]> wrote: > This is more of an irritation than a major issue, but I am curious to > know why it occurs. > > To reproduce, delete a script file that a page calls and forget to > remove the script call from the html. (
[T4.1.5] Strange page within page rendering with only particular errors
This is more of an irritation than a major issue, but I am curious to know why it occurs. To reproduce, delete a script file that a page calls and forget to remove the script call from the html. (). When you try to load the page, it starts rendering the html of that page and then begins rendering the error page within that page and causes page scrolling to stop. You can see this when viewing source. However, this page within page rendering doesn't occur with other ognl or java errors. The page source is just the error page source (with scrolling). Anyone know anything about this? Any thoughts are welcome. Thanks. Anna - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [T5] RuntimeException if extends pages/components
It should be possible. Make sure that the AbstractBasePage is controlled by Tapestry by ensuring that the module for that library is loaded and that it contains this contribution public static void contributeComponentClassResolver(Configuration configuration) { configuration.add(new LibraryMapping("libname", "de.hsofttec.tapestry")); } 2008/2/21, Sven Homburg <[EMAIL PROTECTED]>: > Hi there, > > do i understand that right, that i dont can extends pages/components from > other libraries? > > - > Caused by: java.lang.RuntimeException: Base class > de.hsofttec.tapestry.base.AbstractBasePage (super class of > de.hsofttec.testapp.p > ages.Start) is not in a controlled package and is therefore not valid. You > should try moving the class to package de.hsofttec.test > app.base. > > -- > with regards > > Sven Homburg > -- /ted - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: NoClassDefFoundException
That service was renamed between 5.0.9 and 5.0.10. Looks like you have a bit of a mismatch going on somewhere. As we ramp up towards a stable release, we're keeping more careful track of such changes. Once we hit a stable release, we'll be shackled somewhat to the existing APIs, to enable proper backwards compatibility. On Thu, Feb 21, 2008 at 8:12 AM, Joachim Van der Auwera <[EMAIL PROTECTED]> wrote: > Once I added t5components in my projects, I get the following : > > java.lang.NoClassDefFoundError: > org/apache/tapestry/ioc/services/ThreadCleanupHub > at java.lang.Class.getDeclaredMethods0(Native Method) > at java.lang.Class.privateGetDeclaredMethods(Class.java:2395) > at java.lang.Class.privateGetPublicMethods(Class.java:2519) > at java.lang.Class.getMethods(Class.java:1406) > at > > org.apache.tapestry.ioc.internal.DefaultModuleDefImpl.grind(DefaultModuleDefImpl.java:137) > at > > org.apache.tapestry.ioc.internal.DefaultModuleDefImpl.(DefaultModuleDefImpl.java:106) > at org.apache.tapestry.ioc.RegistryBuilder.add(RegistryBuilder.java:100) > at org.apache.tapestry.ioc.RegistryBuilder.add(RegistryBuilder.java:119) > at > org.apache.tapestry.ioc.IOCUtilities.addModulesInList(IOCUtilities.java:122) > at > > org.apache.tapestry.ioc.IOCUtilities.addModulesInManifest(IOCUtilities.java:106) > at > org.apache.tapestry.ioc.IOCUtilities.addDefaultModules(IOCUtilities.java:78) > at > > org.apache.tapestry.internal.TapestryAppInitializer.(TapestryAppInitializer.java:73) > at org.apache.tapestry.TapestryFilter.init(TapestryFilter.java:67) > at > > org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275) > at > > org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397) > at > > org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108) > at > > org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3722) > at > org.apache.catalina.core.StandardContext.start(StandardContext.java:4367) > at > > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:790) > at > org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:770) > at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:553) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > -- > Joachim Van der Auwera > PROGS bvba, progs.be > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Howard M. Lewis Ship Creator Apache Tapestry and Apache HiveMind - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[T5] RuntimeException if extends pages/components
Hi there, do i understand that right, that i dont can extends pages/components from other libraries? - Caused by: java.lang.RuntimeException: Base class de.hsofttec.tapestry.base.AbstractBasePage (super class of de.hsofttec.testapp.p ages.Start) is not in a controlled package and is therefore not valid. You should try moving the class to package de.hsofttec.test app.base. -- with regards Sven Homburg
Re: t5components InPlaceEditor for GridData
snapshots now availble 0.5.11-SNAPSHOT based on tapestry daily checked out trunk 2008/2/20, Sven Homburg <[EMAIL PROTECTED]>: > > please add an issue in > http://code.google.com/p/tapestry5-components/issues/list > > 2008/2/20, Andreas Pursian <[EMAIL PROTECTED]>: > > > > -BEGIN PGP SIGNED MESSAGE- > > Hash: SHA1 > > > > Hi Sven (all), > > > > at first, i would like to thank you and the other people behind > > t5components for your great work! I guess my issue is quite similar to > > the one mentioned by Moritz. I use the fieldset component inside of a > > loop with the side effect that every fieldset gets the same id > > (fieldset). Thats why the nice fade in/out functionality is broken. Is > > there an way to solve this? > > > > Thanks > > > > Andreas > > > > > > Sven Homburg wrote: > > | FYI > > | > > | http://code.google.com/p/tapestry5-components/issues/detail?id=20 > > | > > | 2008/2/19, Moritz Gmelin <[EMAIL PROTECTED]>: > > |> Hi (Sven), > > |> > > |> I just tried to use your InPlaceEditorComponent for data in a grid. > > |> But since the cells are generated automatically, they all get the > > same > > |> id (inplaceeditor). This confuses the javascript that cannot > > |> differentiate between the cells it should enhance and will put 20 > > text > > |> fields and submit & cancel buttons inside the first span it finds. > > |> Is there some known workaround to this? Any other way to use > > |> InPlaceEditor inside a Grid? > > |> > > |> Thanks > > |> > > |> Moritz > > |> > > |> - > > |> To unsubscribe, e-mail: [EMAIL PROTECTED] > > |> For additional commands, e-mail: [EMAIL PROTECTED] > > |> > > |> > > | > > | > > -BEGIN PGP SIGNATURE- > > Version: GnuPG v1.4.7 (Darwin) > > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > > > iD8DBQFHu4qxM14O/Esx/74RAiEyAJ96bNpmJCxeToAdccSbbHBvB1EpFgCgryTB > > 0kN9a0yQqgv4udvA1HCe1+A= > > =0kii > > -END PGP SIGNATURE- > > > > - > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > -- > with regards > Sven Homburg -- with regards Sven Homburg
NoClassDefFoundException
Once I added t5components in my projects, I get the following : java.lang.NoClassDefFoundError: org/apache/tapestry/ioc/services/ThreadCleanupHub at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2395) at java.lang.Class.privateGetPublicMethods(Class.java:2519) at java.lang.Class.getMethods(Class.java:1406) at org.apache.tapestry.ioc.internal.DefaultModuleDefImpl.grind(DefaultModuleDefImpl.java:137) at org.apache.tapestry.ioc.internal.DefaultModuleDefImpl.(DefaultModuleDefImpl.java:106) at org.apache.tapestry.ioc.RegistryBuilder.add(RegistryBuilder.java:100) at org.apache.tapestry.ioc.RegistryBuilder.add(RegistryBuilder.java:119) at org.apache.tapestry.ioc.IOCUtilities.addModulesInList(IOCUtilities.java:122) at org.apache.tapestry.ioc.IOCUtilities.addModulesInManifest(IOCUtilities.java:106) at org.apache.tapestry.ioc.IOCUtilities.addDefaultModules(IOCUtilities.java:78) at org.apache.tapestry.internal.TapestryAppInitializer.(TapestryAppInitializer.java:73) at org.apache.tapestry.TapestryFilter.init(TapestryFilter.java:67) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397) at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3722) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4367) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:790) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:770) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:553) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) -- Joachim Van der Auwera PROGS bvba, progs.be - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: T5: Multiple File Upload
So, does this mean it's working for you now? If so, would you mind sharing? :) -Filip Michael Lake skrev: Filip - You are exactly right. The session id wasn't being passed - and shame on me for not actually comparing the "t:formdata" values because they are indeed the same even when using the normal multiple times. Thank you and thanks to Francois Armand for showing me how to tease the session id out of tapestry. -mike Filip S. Adamsen wrote: Hi, Are you sure that using the same t:formdata is what's causing the issue? There seems to be a Flash bug that causes SwfUpload to send the wrong session id with the request. Could this be why your session persisted list isn't behaving as expected? -Filip Michael Lake skrev: I'm working on a project where I need multiple files (40 - 50) to be uploaded from a single page. The "tapestry-upload" module is unsuitable because the "t:upload" component only allows you to select one file at a time. Selecting 50 files from the "browse for file" dialog one at a time would be quite frustrating for the user. Doing a bit of searching, I found that the open source project SwfUpload ( http://swfupload.org ) is an ideal utility for uploading multiple files because it allows you to select multiple files (using shift/ctrl) in the "browse for file" dialog. There's a demo here: http://demo.swfupload.org/v102demo/ The way it works is by separately submitting a POST request for each of the queued files to a server-side location *using flash*. To have a server-side location to post the file to, I've got an invisible with a inside. When tapestry outputs a t:form to the client side it also adds a hidden form field called "t:formdata" which looks something like this: value="H4sIAJXOsU4CQRAG4JGAjVQk...KKhooYk9PazO0Nx5K922Vn1sOGR+EJ"> Tapestry pukes without it, but fortunately swfupload allows us to tack on extra POST params via javascript. For testing purposes, i'm grabbing this "t:formdata" value from the DOM to send with each request made by swfupload. On the server side, for each file upload request, i'm adding the file to an ArrayList object which is annotated @Persist("session") I can successfully add files to that arraylist by making my invisible form visible again - submitting one file at a time, my onSuccess returning null to bring me back to the same page for another upload. However, when I mimic the form submission using swfupload, and use the same "t:formdata" value with each request, my arraylist object forgets any previous uploads. I'm somehow not surprised - it seems I need to have a new "t:formdata" value for each file uploaded by swfupload. Now I'm stuck. perhaps I could do something stupid like refresh my invisible form using the zone component after each file gets uploaded by swfupload so I could perhaps get a new t:formdata value. I don't think I could bring myself to do that. Should I even be bothering with trying to piggyback off the component? Does anyone have an ideas? Or does someone already have a tapestry component to handle selecting multiple files in one go? I know I can't be the only person who needs this utility. Thanks, Mike - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: T5: Multiple File Upload
Filip - You are exactly right. The session id wasn't being passed - and shame on me for not actually comparing the "t:formdata" values because they are indeed the same even when using the normal multiple times. Thank you and thanks to Francois Armand for showing me how to tease the session id out of tapestry. -mike Filip S. Adamsen wrote: Hi, Are you sure that using the same t:formdata is what's causing the issue? There seems to be a Flash bug that causes SwfUpload to send the wrong session id with the request. Could this be why your session persisted list isn't behaving as expected? -Filip Michael Lake skrev: I'm working on a project where I need multiple files (40 - 50) to be uploaded from a single page. The "tapestry-upload" module is unsuitable because the "t:upload" component only allows you to select one file at a time. Selecting 50 files from the "browse for file" dialog one at a time would be quite frustrating for the user. Doing a bit of searching, I found that the open source project SwfUpload ( http://swfupload.org ) is an ideal utility for uploading multiple files because it allows you to select multiple files (using shift/ctrl) in the "browse for file" dialog. There's a demo here: http://demo.swfupload.org/v102demo/ The way it works is by separately submitting a POST request for each of the queued files to a server-side location *using flash*. To have a server-side location to post the file to, I've got an invisible with a inside. When tapestry outputs a t:form to the client side it also adds a hidden form field called "t:formdata" which looks something like this: value="H4sIAJXOsU4CQRAG4JGAjVQk...KKhooYk9PazO0Nx5K922Vn1sOGR+EJ"> Tapestry pukes without it, but fortunately swfupload allows us to tack on extra POST params via javascript. For testing purposes, i'm grabbing this "t:formdata" value from the DOM to send with each request made by swfupload. On the server side, for each file upload request, i'm adding the file to an ArrayList object which is annotated @Persist("session") I can successfully add files to that arraylist by making my invisible form visible again - submitting one file at a time, my onSuccess returning null to bring me back to the same page for another upload. However, when I mimic the form submission using swfupload, and use the same "t:formdata" value with each request, my arraylist object forgets any previous uploads. I'm somehow not surprised - it seems I need to have a new "t:formdata" value for each file uploaded by swfupload. Now I'm stuck. perhaps I could do something stupid like refresh my invisible form using the zone component after each file gets uploaded by swfupload so I could perhaps get a new t:formdata value. I don't think I could bring myself to do that. Should I even be bothering with trying to piggyback off the component? Does anyone have an ideas? Or does someone already have a tapestry component to handle selecting multiple files in one go? I know I can't be the only person who needs this utility. Thanks, Mike - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [4.1.5] Suggest component
The display:none style is removed as soon as you enter something into the input field or change something there. It becomes hidden again when the input field loses focus for example because you activated the DOM inspector which explains why you always see display:none when you inspect it. As for your different behaviour in different browsers: I've got IE6 and FF2 here and with both it works. Uli Andy Pahne schrieb: Ulrich Stärk schrieb: Correct - everything. And it works here... I don't get it. It might be possible that your browser can't find ../css/demo.css depending on your path layout but that would make it just look different. The suggest list should still be rendered if you enter something into the input field. I can't see why it works for me but not for you. Do you have any entries in your info log? Mine is full of entries like listSource was called List contains 3 items, filter is 'de' The CSS is found, because the page looks just like the TimeTracker demo. For each request there are those entries in the log: 2008-02-21 16:05:35,937 INFO [http-8080-Processor25] (AjaxTest.java:170) - Suggest Listener was called. Filter is 'e' 2008-02-21 16:05:35,953 INFO [http-8080-Processor25] (AjaxTest.java:133) - listSource was called 2008-02-21 16:05:35,968 INFO [http-8080-Processor25] (AjaxTest.java:158) - List contains 36 items, filter is 'e' 2008-02-21 16:05:35,984 INFO [http-8080-Processor25] (AjaxTest.java:133) - listSource was called 2008-02-21 16:05:36,000 INFO [http-8080-Processor25] (AjaxTest.java:158) - List contains 36 items, filter is 'e' 2008-02-21 16:05:36,000 INFO [http-8080-Processor25] (AjaxTest.java:133) - listSource was called 2008-02-21 16:05:36,015 INFO [http-8080-Processor25] (AjaxTest.java:158) - List contains 36 items, filter is 'e' I don't have any idea why the "List contains 36 items, filter is 'e'" entry appears three times. As I wrote in my fist post, after the asynchronous page update the div with the suggestions looks like that: class="autocomplete">... So, the div is there, it contains all the expected entries, but it is hidden (display: none;). My first thought was that the AJAX request does not work but a quick DOM inspection and a look into the logfile revealed that the AJAX part works perfectly. I have no idea... Andy - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [4.1.5] Suggest component
Damn, just found out that it works in IE 7, but not in FF 2. But that's not the case with with the demo which is available at http://opencomponentry.com:8080/timetracker/LocaleSuggest.html That demo wors nicely in both browsers... Andy - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [4.1.5] Suggest component
Ulrich Stärk schrieb: Correct - everything. And it works here... I don't get it. It might be possible that your browser can't find ../css/demo.css depending on your path layout but that would make it just look different. The suggest list should still be rendered if you enter something into the input field. I can't see why it works for me but not for you. Do you have any entries in your info log? Mine is full of entries like listSource was called List contains 3 items, filter is 'de' The CSS is found, because the page looks just like the TimeTracker demo. For each request there are those entries in the log: 2008-02-21 16:05:35,937 INFO [http-8080-Processor25] (AjaxTest.java:170) - Suggest Listener was called. Filter is 'e' 2008-02-21 16:05:35,953 INFO [http-8080-Processor25] (AjaxTest.java:133) - listSource was called 2008-02-21 16:05:35,968 INFO [http-8080-Processor25] (AjaxTest.java:158) - List contains 36 items, filter is 'e' 2008-02-21 16:05:35,984 INFO [http-8080-Processor25] (AjaxTest.java:133) - listSource was called 2008-02-21 16:05:36,000 INFO [http-8080-Processor25] (AjaxTest.java:158) - List contains 36 items, filter is 'e' 2008-02-21 16:05:36,000 INFO [http-8080-Processor25] (AjaxTest.java:133) - listSource was called 2008-02-21 16:05:36,015 INFO [http-8080-Processor25] (AjaxTest.java:158) - List contains 36 items, filter is 'e' I don't have any idea why the "List contains 36 items, filter is 'e'" entry appears three times. As I wrote in my fist post, after the asynchronous page update the div with the suggestions looks like that: class="autocomplete">... So, the div is there, it contains all the expected entries, but it is hidden (display: none;). My first thought was that the AJAX request does not work but a quick DOM inspection and a look into the logfile revealed that the AJAX part works perfectly. I have no idea... Andy - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [4.1.5] Suggest component
Correct - everything. And it works here... I don't get it. It might be possible that your browser can't find ../css/demo.css depending on your path layout but that would make it just look different. The suggest list should still be rendered if you enter something into the input field. I can't see why it works for me but not for you. Do you have any entries in your info log? Mine is full of entries like listSource was called List contains 3 items, filter is 'de' Uli Andy Pahne schrieb: Ulrich Stärk schrieb: > Almost no is not none :) > > Your code is absolutely correct and works perfectly. Please make sure > that you have a Shell and a Body component on your page. In your case > those would be included with your DemoBorder component, so have a look > at that template. Also make sure that you don't include some css or > javascript somewhere that might interfere with the suggest component. If > you do include something try leaving it out. > > Uli my Border: AJAX-Demos It's copied from the TimeTracker demo. Only the header section is modified. I even use the same CSS, as demo.css is just a copy of timetracker.css. A. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [4.1.5] Suggest component
Ulrich Stärk schrieb: > Almost no is not none :) > > Your code is absolutely correct and works perfectly. Please make sure > that you have a Shell and a Body component on your page. In your case > those would be included with your DemoBorder component, so have a look > at that template. Also make sure that you don't include some css or > javascript somewhere that might interfere with the suggest component. If > you do include something try leaving it out. > > Uli my Border: AJAX-Demos It's copied from the TimeTracker demo. Only the header section is modified. I even use the same CSS, as demo.css is just a copy of timetracker.css. A. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [4.1.5] Suggest component
Almost no is not none :) Your code is absolutely correct and works perfectly. Please make sure that you have a Shell and a Body component on your page. In your case those would be included with your DemoBorder component, so have a look at that template. Also make sure that you don't include some css or javascript somewhere that might interfere with the suggest component. If you do include something try leaving it out. Uli Andy Pahne schrieb: Ulrich Stärk schrieb: > This is the rendered code, could you please provide the corresponding > template and page class code? > There's almost no difference beetwenn the source of the TimeTracker demo and mine: div.autocomplete { position:absolute; width:250px; background-color:white; border:1px solid #888; margin:0px; padding:0px; } div.autocomplete ul { list-style-type:none; margin:0px; padding:0px; } div.autocomplete ul li.selected { background-color: #ffb;} div.autocomplete ul li { list-style-type:none; display:block; margin:0; padding:4px 0 4px 4px; cursor:pointer; }div.autocomplete ul li img { border:none; margin-right: 10px; vertical-align:middle;}Suggest Demo (Script.aculo.us) /> @Component(bindings = {"value=inputLocale", "displayName=literal:Locale", "listSource=localeList", "listener=listener:suggestLocale", "listItemRenderer=itemRenderer"}) public abstract Suggest getSuggest(); /** * listSource */ public List getLocaleList() { LOG.info("listSource was called"); String filter = getFilterString(); Locale[] locales = Locale.getAvailableLocales(); if (filter == null || filter.length() < 1) { return Arrays.asList(locales); } filter = filter.toUpperCase(); List ret = new ArrayList(); // used to ensure no duplicates are stored in the list as // java.util.Locale doesn't // provde an equals() method. List temp = new ArrayList(); for (Locale locale : locales) { if (locale.getDisplayCountry().toUpperCase().indexOf(filter) > -1 && !temp.contains(locale.getDisplayCountry())) { ret.add(locale); temp.add(locale.getDisplayCountry()); } } LOG.info("List contains " + ret.size() + " items, filter is '" + getFilterString() + "'"); return ret; } /** * listener * * Invoked dynamically via XHR whenever input changes in the form input field. The method above - getLocaleList() - * is what actually filters the list of suggested options displayed based on the characters they typed in to the input field. */ public void suggestLocale(String filter) { LOG.info("Suggest Listener was called. Filter is '"+filter+"'"); setFilterString(filter); } /** value */ public abstract String getInputLocale(); public abstract String getFilterString(); public abstract void setFilterString(String filter); static ListItemRenderer ITEM_RENDERER = new LocaleListItemRenderer(); public ListItemRenderer getItemRenderer() { return ITEM_RENDERER; } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: T5: Stream Text File with StreamResponse
Thanks a lot! There's just a little typo: OutputStreamWriter osw = new OutputStreamWriter(out); Davor Hrg wrote: > > ByteArrayOutputStream out = new ByteArrayOutputStream(); > OutputStreamWriter osw = new OutputStreamWriter(System.out); > velocityContext.put("desc", this.description); > template.merge(velocityContext, osw); > osw.flush(); > osw.close(); > return new ByteArrayInputStream(out.toByteArray()); > > > > On Thu, Feb 21, 2008 at 2:55 PM, MoritzGilsdorf <[EMAIL PROTECTED]> > wrote: >> >> The thing is that I don't know how to get my OutputStreamWriter into >> InputStream so that StreamResponse is able to stream it to the user. >> This is >> probably a very basic problem but I'm not very experienced with that. >> Right now there is nothing streaming but writing to System.out. But I >> want >> to do something like this: >> >> StreamResponse onSubmitFromDescription() { >> InputMaker iMaker = new InputMaker(description); >> InputStream is = iMaker.makeDescription(); >> return TextStreamResponse(is,"Description"); >> } >> >> Then, this method should return, of course, an InputStream: >> >> public void makeDescription(){ >> try { >> configure(engine); >> } catch (Exception e) {} >> try { >> Template template = >> Velocity.getTemplate("src/main/resources/templates/description.vm"); >> VelocityContext velocityContext = new >> VelocityContext(); >> OutputStreamWriter osw = new >> OutputStreamWriter(System.out); >> velocityContext.put("desc", this.description); >> template.merge(velocityContext, osw); >> osw.flush(); >> osw.close(); >> } catch (Exception e) {} >> } >> >> And, to be complete, my TextStreamResponse Class: >> >> public class TextStreamResponse implements StreamResponse { >> private InputStream is; >> private String filename = "default"; >> >> public TextStreamResponse(InputStream is, String filename){ >> this.is = is; >> this.filename = filename; >> } >> public String getContentType() { >> return "text/plain"; >> } >> public InputStream getStream() throws IOException { >> return is; >> } >> public void prepareResponse(Response arg0) { >> arg0.setHeader("Content-Disposition", "attachment; >> filename=" + filename + >> ".txt"); >> } >> } >> >> Thanks a lot for helping me with that! >> >> Moritz >> >> >> >> >> Christian Gorbach wrote: >> > >> > sure. if you post your streaming snippet we can take a look... >> >> Hello, >> >> >> >> I'm trying to stream a text file I created with Velocity very similar >> to >> >> the >> >> way it is done >> >> http://wiki.apache.org/tapestry/Tapestry5HowToCreateADynamicPDF here >> but >> >> it >> >> doesn't work. The text is stored in a OutputStreamWriter object. >> >> Is it possible to stream something else than binary data with >> tapestry? >> >> >> >> Thanks, >> >> >> >> Moritz >> >> >> > >> > >> > - >> > To unsubscribe, e-mail: [EMAIL PROTECTED] >> > For additional commands, e-mail: [EMAIL PROTECTED] >> > >> > >> > >> >> -- >> View this message in context: >> http://www.nabble.com/T5%3A-Stream-Text-File-with-StreamResponse-tp15611200p15611835.html >> >> Sent from the Tapestry - User mailing list archive at Nabble.com. >> >> >> - >> >> >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > -- View this message in context: http://www.nabble.com/T5%3A-Stream-Text-File-with-StreamResponse-tp15611200p15612489.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: T5: Stream Text File with StreamResponse
ok, what you will need is a datapump which converts an output stream to an input stream. See: http://ostermiller.org/convert_java_outputstream_inputstream.html Method 1 is the simplest: let velocity write to abytearrayoutputstream and use the byte array to construct an input stream object. voila. regards c)hristian The thing is that I don't know how to get my OutputStreamWriter into InputStream so that StreamResponse is able to stream it to the user. This is probably a very basic problem but I'm not very experienced with that. Right now there is nothing streaming but writing to System.out. But I want to do something like this: StreamResponse onSubmitFromDescription() { InputMaker iMaker = new InputMaker(description); InputStream is = iMaker.makeDescription(); return TextStreamResponse(is,"Description"); } Then, this method should return, of course, an InputStream: public void makeDescription(){ try { configure(engine); } catch (Exception e) {} try { Template template = Velocity.getTemplate("src/main/resources/templates/description.vm"); VelocityContext velocityContext = new VelocityContext(); OutputStreamWriter osw = new OutputStreamWriter(System.out); velocityContext.put("desc", this.description); template.merge(velocityContext, osw); osw.flush(); osw.close(); } catch (Exception e) {} } And, to be complete, my TextStreamResponse Class: public class TextStreamResponse implements StreamResponse { private InputStream is; private String filename = "default"; public TextStreamResponse(InputStream is, String filename){ this.is = is; this.filename = filename; } public String getContentType() { return "text/plain"; } public InputStream getStream() throws IOException { return is; } public void prepareResponse(Response arg0) { arg0.setHeader("Content-Disposition", "attachment; filename=" + filename + ".txt"); } } Thanks a lot for helping me with that! Moritz Christian Gorbach wrote: sure. if you post your streaming snippet we can take a look... Hello, I'm trying to stream a text file I created with Velocity very similar to the way it is done http://wiki.apache.org/tapestry/Tapestry5HowToCreateADynamicPDF here but it doesn't work. The text is stored in a OutputStreamWriter object. Is it possible to stream something else than binary data with tapestry? Thanks, Moritz - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: T5: Stream Text File with StreamResponse
ByteArrayOutputStream out = new ByteArrayOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(System.out); velocityContext.put("desc", this.description); template.merge(velocityContext, osw); osw.flush(); osw.close(); return new ByteArrayInputStream(out.toByteArray()); On Thu, Feb 21, 2008 at 2:55 PM, MoritzGilsdorf <[EMAIL PROTECTED]> wrote: > > The thing is that I don't know how to get my OutputStreamWriter into > InputStream so that StreamResponse is able to stream it to the user. This is > probably a very basic problem but I'm not very experienced with that. > Right now there is nothing streaming but writing to System.out. But I want > to do something like this: > > StreamResponse onSubmitFromDescription() { > InputMaker iMaker = new InputMaker(description); > InputStream is = iMaker.makeDescription(); > return TextStreamResponse(is,"Description"); > } > > Then, this method should return, of course, an InputStream: > > public void makeDescription(){ > try { > configure(engine); > } catch (Exception e) {} > try { > Template template = > Velocity.getTemplate("src/main/resources/templates/description.vm"); > VelocityContext velocityContext = new VelocityContext(); > OutputStreamWriter osw = new > OutputStreamWriter(System.out); > velocityContext.put("desc", this.description); > template.merge(velocityContext, osw); > osw.flush(); > osw.close(); > } catch (Exception e) {} > } > > And, to be complete, my TextStreamResponse Class: > > public class TextStreamResponse implements StreamResponse { > private InputStream is; > private String filename = "default"; > > public TextStreamResponse(InputStream is, String filename){ > this.is = is; > this.filename = filename; > } > public String getContentType() { > return "text/plain"; > } > public InputStream getStream() throws IOException { > return is; > } > public void prepareResponse(Response arg0) { > arg0.setHeader("Content-Disposition", "attachment; filename=" > + filename + > ".txt"); > } > } > > Thanks a lot for helping me with that! > > Moritz > > > > > Christian Gorbach wrote: > > > > sure. if you post your streaming snippet we can take a look... > >> Hello, > >> > >> I'm trying to stream a text file I created with Velocity very similar to > >> the > >> way it is done > >> http://wiki.apache.org/tapestry/Tapestry5HowToCreateADynamicPDF here but > >> it > >> doesn't work. The text is stored in a OutputStreamWriter object. > >> Is it possible to stream something else than binary data with tapestry? > >> > >> Thanks, > >> > >> Moritz > >> > > > > > > - > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > -- > View this message in context: > http://www.nabble.com/T5%3A-Stream-Text-File-with-StreamResponse-tp15611200p15611835.html > > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > - > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: T5: Stream Text File with StreamResponse
The thing is that I don't know how to get my OutputStreamWriter into InputStream so that StreamResponse is able to stream it to the user. This is probably a very basic problem but I'm not very experienced with that. Right now there is nothing streaming but writing to System.out. But I want to do something like this: StreamResponse onSubmitFromDescription() { InputMaker iMaker = new InputMaker(description); InputStream is = iMaker.makeDescription(); return TextStreamResponse(is,"Description"); } Then, this method should return, of course, an InputStream: public void makeDescription(){ try { configure(engine); } catch (Exception e) {} try { Template template = Velocity.getTemplate("src/main/resources/templates/description.vm"); VelocityContext velocityContext = new VelocityContext(); OutputStreamWriter osw = new OutputStreamWriter(System.out); velocityContext.put("desc", this.description); template.merge(velocityContext, osw); osw.flush(); osw.close(); } catch (Exception e) {} } And, to be complete, my TextStreamResponse Class: public class TextStreamResponse implements StreamResponse { private InputStream is; private String filename = "default"; public TextStreamResponse(InputStream is, String filename){ this.is = is; this.filename = filename; } public String getContentType() { return "text/plain"; } public InputStream getStream() throws IOException { return is; } public void prepareResponse(Response arg0) { arg0.setHeader("Content-Disposition", "attachment; filename=" + filename + ".txt"); } } Thanks a lot for helping me with that! Moritz Christian Gorbach wrote: > > sure. if you post your streaming snippet we can take a look... >> Hello, >> >> I'm trying to stream a text file I created with Velocity very similar to >> the >> way it is done >> http://wiki.apache.org/tapestry/Tapestry5HowToCreateADynamicPDF here but >> it >> doesn't work. The text is stored in a OutputStreamWriter object. >> Is it possible to stream something else than binary data with tapestry? >> >> Thanks, >> >> Moritz >> > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > -- View this message in context: http://www.nabble.com/T5%3A-Stream-Text-File-with-StreamResponse-tp15611200p15611835.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Grid in form and pager
Adriaan Joubert wrote: Hi, Hello [...] Is there an easy way to force a submit with the page navigation? Seems to me that it is going to be tricky to both navigate and submit data in the same request? Only solution I could think of up to now is to use javascript on the fields to force a submit when fields are modified, but this is not ideal. I had the kind of issue in a rather similar context : a composed form where some fields may be add or deleted while other have been edited but not yet commited. I believe there is no other way to handle the problem that submitting the form and perhaps chain this validation with an other action (in my case add/delete a field, in your case : change the grip current page). So, the javascript solution seems to be the way to go if the action is done by a link, what is the case in the grid's pager, but well, it's not really "beautifull degradation friendly" (no javascript => no submit). In my case, I choose to do action with a submit button + a context value passed thanks to an hidden field. It's a lot heavier to implement, and I'm not quite satisfied with it. Nonetheless, if you want to see how it works, here is the "submit with context" component : http://svn.forge.objectweb.org/cgi-bin/viewcvs.cgi/interldap/interldap-wui-common/trunk/src/main/java/org/interldap/wui/t5lib/components/SubmitContext.java?rev=672&view=markup and an example of use is here : http://svn.forge.objectweb.org/cgi-bin/viewcvs.cgi/interldap/interldap-wui-common/trunk/src/main/resources/org/interldap/wui/t5lib/components/ListEditor.tml?rev=547&view=markup Note : I will be very happy with other solution to this very problem :) -- Francois Armand Etudes & Développements J2EE Groupe Linagora - http://www.linagora.com Tél.: +33 (0)1 58 18 68 28 --- InterLDAP - http://interldap.org FederID - http://www.federid.org/ Open Source identities management and federation - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: T5: Stream Text File with StreamResponse
sure. if you post your streaming snippet we can take a look... Hello, I'm trying to stream a text file I created with Velocity very similar to the way it is done http://wiki.apache.org/tapestry/Tapestry5HowToCreateADynamicPDF here but it doesn't work. The text is stored in a OutputStreamWriter object. Is it possible to stream something else than binary data with tapestry? Thanks, Moritz - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [t5] NPE in createActionLink
Thanks for the help. That is exactly what I am doing now. Joachim Ted Steen wrote: Try to create the action link in setupRender(). I remember having trouble creating the actionlink too early (onActivate) after upgrading from 5.0.6. I'm looking it to it this weekend. 2008/2/20, Joachim Van der Auwera <[EMAIL PROTECTED]>: Does anybody have an idea what I am doing wrong? Using the latest snapshot of tapestry5. In the following code : @Inject private ComponentResources resources; /** * Act upon the "link" */ void onSelected() { Link link = resources.createActionLink( "action", false, contextArray ); } I get a NPE with the following stack trace * org.apache.tapestry.internal.services.LinkFactoryImpl.collectActivationContextForPage(LinkFactoryImpl.java:217) * org.apache.tapestry.internal.services.LinkFactoryImpl.createActionLink(LinkFactoryImpl.java:129) * org.apache.tapestry.internal.structure.PageImpl.createActionLink(PageImpl.java:156) * org.apache.tapestry.internal.structure.InternalComponentResourcesImpl.createActionLink(InternalComponentResourcesImpl.java:123) * org.equanda.tapestry5.components.FormActionLink.onSelected(FormActionLink.java:64) * org.equanda.tapestry5.components.FormActionLink.dispatchComponentEvent(FormActionLink.java) * org.apache.tapestry.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:843) * org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1004) * org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerEvent(ComponentPageElementImpl.java:934) * org.apache.tapestry.internal.structure.InternalComponentResourcesImpl.triggerEvent(InternalComponentResourcesImpl.java:154) * org.apache.tapestry.corelib.components.Submit$1.run(Submit.java:93) * org.apache.tapestry.corelib.internal.FormSupportImpl.executeDeferred(FormSupportImpl.java:114) * org.apache.tapestry.corelib.components.Form.onAction(Form.java:396) * org.apache.tapestry.corelib.components.Form.dispatchComponentEvent(Form.java) * org.equanda.tapestry5.components.Form.dispatchComponentEvent(Form.java) * org.apache.tapestry.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:851) * org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1004) * org.apache.tapestry.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:67) * org.apache.tapestry.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:42) * org.apache.tapestry.internal.services.AjaxFilter.handle(AjaxFilter.java:42) * org.apache.tapestry.services.TapestryModule$39.handle(TapestryModule.java:2077) * org.apache.tapestry.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:131) * org.apache.tapestry.services.TapestryModule$13.service(TapestryModule.java:914) * be.synergetics.ca.gui.services.AppModule$2.service(AppModule.java:175) * be.synergetics.ca.gui.services.AppModule$1.service(AppModule.java:102) * org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:43) * org.apache.tapestry.services.TapestryModule$3.service(TapestryModule.java:530) * org.apache.tapestry.services.TapestryModule$2.service(TapestryModule.java:505) * org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:79) * org.equanda.t5gui.services.AppModule$7.service(AppModule.java:175) * org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93) * org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84) * org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77) * org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106) * org.apache.tapestry.services.TapestryModule$12.service(TapestryModule.java:894) * org.apache.tapestry.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) * org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:164) * org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) * org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) * org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) * org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) * org.apache.c
Re: [t5] NPE in createActionLink
Unfortunately even that won't work as the onSelected() cannot return anything itself. No big deal, it is working now with the (flash) persisted info. The component is available now as part of equanda-tapestry5, see http://equanda.org/equanda-tapestry5/ Thanks for the help. Joachim Davor Hrg wrote: if the event can return a value add a handler as the last parameter instead of null resources.triggerEvent("action",contextArray,null); Davor Hrg On Thu, Feb 21, 2008 at 10:25 AM, Joachim Van der Auwera <[EMAIL PROTECTED]> wrote: Tried that, it doesn't work, gives Event 'action' from ObjectEdit:edit.organizations.add received an event handler method return value of [EMAIL PROTECTED] This type of event does not support return values from event handler methods. Robert Zeigler wrote: > In that case, why not just trigger the action yourself? > > void onSelected() { > resources.triggerEvent("action",contextArray,null); > } > > Robert > > On Feb 20, 2008, at 2/203:24 PM , Joachim Van der Auwera wrote: -- Joachim Van der Auwera PROGS bvba, progs.be - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Stream Text File with StreamResponse
Hello, I'm trying to stream a text file I created with Velocity very similar to the way it is done http://wiki.apache.org/tapestry/Tapestry5HowToCreateADynamicPDF here but it doesn't work. The text is stored in a OutputStreamWriter object. Is it possible to stream something else than binary data with tapestry? Thanks, Moritz -- View this message in context: http://www.nabble.com/Stream-Text-File-with-StreamResponse-tp15611200p15611200.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [4.1.5] Suggest component
Ulrich Stärk schrieb: > This is the rendered code, could you please provide the corresponding > template and page class code? > There's almost no difference beetwenn the source of the TimeTracker demo and mine: div.autocomplete { position:absolute; width:250px; background-color:white; border:1px solid #888; margin:0px; padding:0px; } div.autocomplete ul { list-style-type:none; margin:0px; padding:0px; } div.autocomplete ul li.selected { background-color: #ffb;} div.autocomplete ul li { list-style-type:none; display:block; margin:0; padding:4px 0 4px 4px; cursor:pointer; }div.autocomplete ul li img { border:none; margin-right: 10px; vertical-align:middle;}Suggest Demo (Script.aculo.us) field="component:suggest" /> @Component(bindings = {"value=inputLocale", "displayName=literal:Locale", "listSource=localeList", "listener=listener:suggestLocale", "listItemRenderer=itemRenderer"}) public abstract Suggest getSuggest(); /** * listSource */ public List getLocaleList() { LOG.info("listSource was called"); String filter = getFilterString(); Locale[] locales = Locale.getAvailableLocales(); if (filter == null || filter.length() < 1) { return Arrays.asList(locales); } filter = filter.toUpperCase(); List ret = new ArrayList(); // used to ensure no duplicates are stored in the list as // java.util.Locale doesn't // provde an equals() method. List temp = new ArrayList(); for (Locale locale : locales) { if (locale.getDisplayCountry().toUpperCase().indexOf(filter) > -1 && !temp.contains(locale.getDisplayCountry())) { ret.add(locale); temp.add(locale.getDisplayCountry()); } } LOG.info("List contains " + ret.size() + " items, filter is '" + getFilterString() + "'"); return ret; } /** * listener * * Invoked dynamically via XHR whenever input changes in the form input field. The method above - getLocaleList() - * is what actually filters the list of suggested options displayed based on the characters they typed in to the input field. */ public void suggestLocale(String filter) { LOG.info("Suggest Listener was called. Filter is '"+filter+"'"); setFilterString(filter); } /** value */ public abstract String getInputLocale(); public abstract String getFilterString(); public abstract void setFilterString(String filter); static ListItemRenderer ITEM_RENDERER = new LocaleListItemRenderer(); public ListItemRenderer getItemRenderer() { return ITEM_RENDERER; } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [4.1.5] Suggest component
This is the rendered code, could you please provide the corresponding template and page class code? Uli Am Do, 21.02.2008, 13:28, schrieb Andy Pahne: > Hi, > > I try to imlement a suggest feature with the Suggest component. > Unfortunatly the suggestions do not render properly. I had a look at the > TimeTracker demo and copied all relevant parts into my test application, > but the generated result looks different and the suggestions are not > visible. > > My code and templates are copied from the TimeTracker demo (incl. CSS, > Border component and everything else). But if I inspect the DOM after > the suggestions should have been rendered, the result looks different. > It's no surprise that no suggestions are rendered at all because of > style="display: none;" > in the output of my test... > > > > from the TimeTracker demo: > > ... > value="" type="text"> > class="selected"> src="http://setiathome.free.fr/images/flags/ye.gif";>Yemen > ... > > > > ... > > > from my appilication: > > ... > type="text"> class="autocomplete"> > // dojo.require("tapestry.event"); > //]]> > > // tapestry.cleanConnect("eventListenerDemo", "onmouseover", > "event1975610136"); > tapestry.event1975610136=function(e){ > var content={beventname:"onmouseover"}; > tapestry.event.buildEventProperties(e, content, > arguments); > if (!content["beventtarget.id"]) > content["beventtarget.id"]="eventListenerDemo"; > > tapestry.bind("/oos/directevent.svc?page=test%2FAjaxTest&session=T", > content); > }; > tapestry.connect("eventListenerDemo", "onmouseover", > "event1975610136"); > //]]> > src="http://setiathome.free.fr/images/flags/si.gif";>Slovenia > ... > > > ... > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: T5: Multiple File Upload
Hi, Are you sure that using the same t:formdata is what's causing the issue? There seems to be a Flash bug that causes SwfUpload to send the wrong session id with the request. Could this be why your session persisted list isn't behaving as expected? -Filip Michael Lake skrev: I'm working on a project where I need multiple files (40 - 50) to be uploaded from a single page. The "tapestry-upload" module is unsuitable because the "t:upload" component only allows you to select one file at a time. Selecting 50 files from the "browse for file" dialog one at a time would be quite frustrating for the user. Doing a bit of searching, I found that the open source project SwfUpload ( http://swfupload.org ) is an ideal utility for uploading multiple files because it allows you to select multiple files (using shift/ctrl) in the "browse for file" dialog. There's a demo here: http://demo.swfupload.org/v102demo/ The way it works is by separately submitting a POST request for each of the queued files to a server-side location *using flash*. To have a server-side location to post the file to, I've got an invisible with a inside. When tapestry outputs a t:form to the client side it also adds a hidden form field called "t:formdata" which looks something like this: value="H4sIAJXOsU4CQRAG4JGAjVQk...KKhooYk9PazO0Nx5K922Vn1sOGR+EJ"> Tapestry pukes without it, but fortunately swfupload allows us to tack on extra POST params via javascript. For testing purposes, i'm grabbing this "t:formdata" value from the DOM to send with each request made by swfupload. On the server side, for each file upload request, i'm adding the file to an ArrayList object which is annotated @Persist("session") I can successfully add files to that arraylist by making my invisible form visible again - submitting one file at a time, my onSuccess returning null to bring me back to the same page for another upload. However, when I mimic the form submission using swfupload, and use the same "t:formdata" value with each request, my arraylist object forgets any previous uploads. I'm somehow not surprised - it seems I need to have a new "t:formdata" value for each file uploaded by swfupload. Now I'm stuck. perhaps I could do something stupid like refresh my invisible form using the zone component after each file gets uploaded by swfupload so I could perhaps get a new t:formdata value. I don't think I could bring myself to do that. Should I even be bothering with trying to piggyback off the component? Does anyone have an ideas? Or does someone already have a tapestry component to handle selecting multiple files in one go? I know I can't be the only person who needs this utility. Thanks, Mike - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[4.1.5] Suggest component
Hi, I try to imlement a suggest feature with the Suggest component. Unfortunatly the suggestions do not render properly. I had a look at the TimeTracker demo and copied all relevant parts into my test application, but the generated result looks different and the suggestions are not visible. My code and templates are copied from the TimeTracker demo (incl. CSS, Border component and everything else). But if I inspect the DOM after the suggestions should have been rendered, the result looks different. It's no surprise that no suggestions are rendered at all because of style="display: none;" in the output of my test... from the TimeTracker demo: ... class="selected">src="http://setiathome.free.fr/images/flags/ye.gif";>Yemen ... ... from my appilication: ... type="text">class="autocomplete">// //tapestry.cleanConnect("eventListenerDemo", "onmouseover", "event1975610136");tapestry.event1975610136=function(e){ var content={beventname:"onmouseover"};tapestry.event.buildEventProperties(e, content, arguments); if (!content["beventtarget.id"]) content["beventtarget.id"]="eventListenerDemo";tapestry.bind("/oos/directevent.svc?page=test%2FAjaxTest&session=T", content);};tapestry.connect("eventListenerDemo", "onmouseover", "event1975610136");//]]>src="http://setiathome.free.fr/images/flags/si.gif";>Slovenia ... ... - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [t5] NPE in createActionLink
Try to create the action link in setupRender(). I remember having trouble creating the actionlink too early (onActivate) after upgrading from 5.0.6. I'm looking it to it this weekend. 2008/2/20, Joachim Van der Auwera <[EMAIL PROTECTED]>: > Does anybody have an idea what I am doing wrong? > > Using the latest snapshot of tapestry5. > > In the following code : > > @Inject > private ComponentResources resources; > > /** > * Act upon the "link" > */ > void onSelected() > { > Link link = resources.createActionLink( "action", false, > contextArray ); > } > > I get a NPE with the following stack trace > > * > org.apache.tapestry.internal.services.LinkFactoryImpl.collectActivationContextForPage(LinkFactoryImpl.java:217) > * > org.apache.tapestry.internal.services.LinkFactoryImpl.createActionLink(LinkFactoryImpl.java:129) > * > org.apache.tapestry.internal.structure.PageImpl.createActionLink(PageImpl.java:156) > * > org.apache.tapestry.internal.structure.InternalComponentResourcesImpl.createActionLink(InternalComponentResourcesImpl.java:123) > * > org.equanda.tapestry5.components.FormActionLink.onSelected(FormActionLink.java:64) > * > org.equanda.tapestry5.components.FormActionLink.dispatchComponentEvent(FormActionLink.java) > * > org.apache.tapestry.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:843) > * > org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1004) > * > org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerEvent(ComponentPageElementImpl.java:934) > * > org.apache.tapestry.internal.structure.InternalComponentResourcesImpl.triggerEvent(InternalComponentResourcesImpl.java:154) > * org.apache.tapestry.corelib.components.Submit$1.run(Submit.java:93) > * > org.apache.tapestry.corelib.internal.FormSupportImpl.executeDeferred(FormSupportImpl.java:114) > * org.apache.tapestry.corelib.components.Form.onAction(Form.java:396) > * > org.apache.tapestry.corelib.components.Form.dispatchComponentEvent(Form.java) > * > org.equanda.tapestry5.components.Form.dispatchComponentEvent(Form.java) > * > org.apache.tapestry.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:851) > * > org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1004) > * > org.apache.tapestry.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:67) > * > org.apache.tapestry.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:42) > * > org.apache.tapestry.internal.services.AjaxFilter.handle(AjaxFilter.java:42) > * > org.apache.tapestry.services.TapestryModule$39.handle(TapestryModule.java:2077) > * > org.apache.tapestry.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:131) > * > org.apache.tapestry.services.TapestryModule$13.service(TapestryModule.java:914) > * > be.synergetics.ca.gui.services.AppModule$2.service(AppModule.java:175) > * > be.synergetics.ca.gui.services.AppModule$1.service(AppModule.java:102) > * > org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:43) > * > org.apache.tapestry.services.TapestryModule$3.service(TapestryModule.java:530) > * > org.apache.tapestry.services.TapestryModule$2.service(TapestryModule.java:505) > * > org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:79) > * org.equanda.t5gui.services.AppModule$7.service(AppModule.java:175) > * > org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93) > * > org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84) > * > org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77) > * > org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106) > * > org.apache.tapestry.services.TapestryModule$12.service(TapestryModule.java:894) > * > org.apache.tapestry.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) > * org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:164) > * > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > * > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > * > org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) > * > org.apache.catalina.
Re: [t5] NPE in createActionLink
if the event can return a value add a handler as the last parameter instead of null resources.triggerEvent("action",contextArray,null); Davor Hrg On Thu, Feb 21, 2008 at 10:25 AM, Joachim Van der Auwera <[EMAIL PROTECTED]> wrote: > Tried that, it doesn't work, gives > > Event 'action' from ObjectEdit:edit.organizations.add received an event > handler method return value of > [EMAIL PROTECTED] This type of event > does not support return values from event handler methods. > > > > Robert Zeigler wrote: > > In that case, why not just trigger the action yourself? > > > > void onSelected() { > > resources.triggerEvent("action",contextArray,null); > > } > > > > Robert > > > > On Feb 20, 2008, at 2/203:24 PM , Joachim Van der Auwera wrote: > > > >> I am creating a component which behaves like an ActionLink but is > >> form aware in the sense that the form is submitted and then the > >> actionlink is called. > >> > >> It all works fine when I persist the link (building it in the render > >> phase). But was hoping to not need the persit. Then again, it should > >> not be too bad as it is using flash persistence. > >> > >> Joachim > >> > >> Joachim > >> > >> Robert Zeigler wrote: > >>> What is it you're trying to accomplish? > >>> > >>> Robert > >>> > >>> On Feb 20, 2008, at 2/202:31 PM , Joachim Van der Auwera wrote: > >>> > Indeed. Problem is that I don't need it until the button is > clicked. Then in the onSelected() I build the "Link" to redirect to. > It seems a bit backward (and waste of data in the session) if I > have to build this link during render and persist it until the > button is clicked (if it is). > > Any ideas how to fix this? > > THanks for the help, > Joachim > > Robert Zeigler wrote: > > getting a NPE trying to access the page's root element (page is > > null). > > Page is obtained from the active page from the page render queue. > > So, it looks like you're trying to create an action link while no > > page is rendering. > > Cheers. > > > > Robert > > > > On Feb 20, 2008, at 2/202:03 PM , Joachim Van der Auwera wrote: > > > >> Does anybody have an idea what I am doing wrong? > >> > >> Using the latest snapshot of tapestry5. > >> > >> In the following code : > >> > >> @Inject > >> private ComponentResources resources; > >> > >> /** > >> * Act upon the "link" > >> */ > >> void onSelected() > >> { > >> Link link = resources.createActionLink( "action", false, > >> contextArray ); > >> } > >> > >> I get a NPE with the following stack trace > >> > >> * > >> > org.apache.tapestry.internal.services.LinkFactoryImpl.collectActivationContextForPage(LinkFactoryImpl.java:217) > >> > >> * > >> > org.apache.tapestry.internal.services.LinkFactoryImpl.createActionLink(LinkFactoryImpl.java:129) > >> > >> * > >> > org.apache.tapestry.internal.structure.PageImpl.createActionLink(PageImpl.java:156) > >> > >> * > >> > org.apache.tapestry.internal.structure.InternalComponentResourcesImpl.createActionLink(InternalComponentResourcesImpl.java:123) > >> > >> * > >> > org.equanda.tapestry5.components.FormActionLink.onSelected(FormActionLink.java:64) > >> > >> * > >> > org.equanda.tapestry5.components.FormActionLink.dispatchComponentEvent(FormActionLink.java) > >> > >> * > >> > org.apache.tapestry.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:843) > >> > >> * > >> > org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1004) > >> > >> * > >> > org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerEvent(ComponentPageElementImpl.java:934) > >> > >> * > >> > org.apache.tapestry.internal.structure.InternalComponentResourcesImpl.triggerEvent(InternalComponentResourcesImpl.java:154) > >> > >> * > >> org.apache.tapestry.corelib.components.Submit$1.run(Submit.java:93) > >> * > >> > org.apache.tapestry.corelib.internal.FormSupportImpl.executeDeferred(FormSupportImpl.java:114) > >> > >> * > >> org.apache.tapestry.corelib.components.Form.onAction(Form.java:396) > >> * > >> > org.apache.tapestry.corelib.components.Form.dispatchComponentEvent(Form.java) > >> > >> * > >> > org.equanda.tapestry5.components.Form.dispatchComponentEvent(Form.java) > >> > >> * > >> > org.apache.tapestry.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:851) > >> > >> * > >> > org.apache.tapestry.internal.structure.Compone
Re: updateComponent from JavaScript
Thanks Andreas, that works great on Firefox, not sure why but not working with ie. The listener method is being called, but the component (contrib:TableView) is not its self does not change as it should. Your ClientLink is working perfectly though, I've tried the same thing using a button and an @EventListener and that doesn't work either. Andreas Andreou wrote: Hi - the 'traditional' way (without digging into internals) was to have an invisible DirectLink and trigger that with js. Recently, Igor added ClientLink to tacos latest snapshot ( http://tacos.sourceforge.net/tacos4.1/tacos-core/tapdocs/net.sf.tacos.Tacos/ClientLink/index.html ) which adds a js function (named anyway you declare) that does the ajax call - you then just call it whenever you like... On 2/20/08, Paul Stanton <[EMAIL PROTECTED]> wrote: Hi all, Is there something in the dojo library that i can call (in javascript) to request a component to update? I need to trigger this on a tapestry component, but the code must be called from the client side, ie not in java. Suggestions? Thanks, P. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [t5] NPE in createActionLink
Tried that, it doesn't work, gives Event 'action' from ObjectEdit:edit.organizations.add received an event handler method return value of [EMAIL PROTECTED] This type of event does not support return values from event handler methods. Robert Zeigler wrote: In that case, why not just trigger the action yourself? void onSelected() { resources.triggerEvent("action",contextArray,null); } Robert On Feb 20, 2008, at 2/203:24 PM , Joachim Van der Auwera wrote: I am creating a component which behaves like an ActionLink but is form aware in the sense that the form is submitted and then the actionlink is called. It all works fine when I persist the link (building it in the render phase). But was hoping to not need the persit. Then again, it should not be too bad as it is using flash persistence. Joachim Joachim Robert Zeigler wrote: What is it you're trying to accomplish? Robert On Feb 20, 2008, at 2/202:31 PM , Joachim Van der Auwera wrote: Indeed. Problem is that I don't need it until the button is clicked. Then in the onSelected() I build the "Link" to redirect to. It seems a bit backward (and waste of data in the session) if I have to build this link during render and persist it until the button is clicked (if it is). Any ideas how to fix this? THanks for the help, Joachim Robert Zeigler wrote: getting a NPE trying to access the page's root element (page is null). Page is obtained from the active page from the page render queue. So, it looks like you're trying to create an action link while no page is rendering. Cheers. Robert On Feb 20, 2008, at 2/202:03 PM , Joachim Van der Auwera wrote: Does anybody have an idea what I am doing wrong? Using the latest snapshot of tapestry5. In the following code : @Inject private ComponentResources resources; /** * Act upon the "link" */ void onSelected() { Link link = resources.createActionLink( "action", false, contextArray ); } I get a NPE with the following stack trace * org.apache.tapestry.internal.services.LinkFactoryImpl.collectActivationContextForPage(LinkFactoryImpl.java:217) * org.apache.tapestry.internal.services.LinkFactoryImpl.createActionLink(LinkFactoryImpl.java:129) * org.apache.tapestry.internal.structure.PageImpl.createActionLink(PageImpl.java:156) * org.apache.tapestry.internal.structure.InternalComponentResourcesImpl.createActionLink(InternalComponentResourcesImpl.java:123) * org.equanda.tapestry5.components.FormActionLink.onSelected(FormActionLink.java:64) * org.equanda.tapestry5.components.FormActionLink.dispatchComponentEvent(FormActionLink.java) * org.apache.tapestry.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:843) * org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1004) * org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerEvent(ComponentPageElementImpl.java:934) * org.apache.tapestry.internal.structure.InternalComponentResourcesImpl.triggerEvent(InternalComponentResourcesImpl.java:154) * org.apache.tapestry.corelib.components.Submit$1.run(Submit.java:93) * org.apache.tapestry.corelib.internal.FormSupportImpl.executeDeferred(FormSupportImpl.java:114) * org.apache.tapestry.corelib.components.Form.onAction(Form.java:396) * org.apache.tapestry.corelib.components.Form.dispatchComponentEvent(Form.java) * org.equanda.tapestry5.components.Form.dispatchComponentEvent(Form.java) * org.apache.tapestry.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:851) * org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1004) * org.apache.tapestry.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:67) * org.apache.tapestry.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:42) * org.apache.tapestry.internal.services.AjaxFilter.handle(AjaxFilter.java:42) * org.apache.tapestry.services.TapestryModule$39.handle(TapestryModule.java:2077) * org.apache.tapestry.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:131) * org.apache.tapestry.services.TapestryModule$13.service(TapestryModule.java:914) * be.synergetics.ca.gui.services.AppModule$2.service(AppModule.java:175) * be.synergetics.ca.gui.services.AppModule$1.service(AppModule.java:102) * org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:43) * org.apache.tapestry.services.TapestryModule$3.service(TapestryModule.java:530) * org.apache.tapestry.services.TapestryModule$2.service(TapestryModule.java:505) * org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:79)
Re: T5: Accessing entities/services in another app
one way is to separate the central part into sa different project C so A depends on C and B depends on C Davor Hrg On Thu, Feb 21, 2008 at 9:43 AM, Angelo Chen <[EMAIL PROTECTED]> wrote: > > Hi Davor, > > I'm thinking of jar file dependency, say, entities and t5 > services(interfaces and implementations) packaged into a jar file, so app B > can declare it as dependency in the maven, of course app B has to bind those > services in appModule, just not figure out how to structure app A in such a > way that it can generate a jar file for app B, same time it can have its own > war file, ideas? Thanks. > > A.C. > > > > Davor Hrg wrote: > > > > web services, > > XMLRPC, > > some other coom api... > > > > > > -- > View this message in context: > http://www.nabble.com/T5%3A-Accessing-entities-services-in-another-app-tp15602225p15606776.html > > > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: T5: Accessing entities/services in another app
Hi Davor, I'm thinking of jar file dependency, say, entities and t5 services(interfaces and implementations) packaged into a jar file, so app B can declare it as dependency in the maven, of course app B has to bind those services in appModule, just not figure out how to structure app A in such a way that it can generate a jar file for app B, same time it can have its own war file, ideas? Thanks. A.C. Davor Hrg wrote: > > web services, > XMLRPC, > some other coom api... > > -- View this message in context: http://www.nabble.com/T5%3A-Accessing-entities-services-in-another-app-tp15602225p15606776.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: T5 5.0.10: ComponentResources.createActionLink broke after upgrade from 5.0.6 to 5.0.10
i post a jira for this: https://issues.apache.org/jira/browse/TAPESTRY-2184 https://issues.apache.org/jira/browse/TAPESTRY-2184 Davor Hrg wrote: > > plese post a JIRA issue > > > -- View this message in context: http://www.nabble.com/T5-5.0.10%3A---ComponentResources.createActionLink-broke-after-upgrade-from-5.0.6-to-5.0.10-tp15562416p15606735.html Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]