Re: Tapestry5 Grid Coloumn Bolded when sorted
Thanks for the pointer Thiago, Actually i wanted the entire coloumn to be bolded not only the header. The below css entry made it possible th.t-sort-column-ascending, th.t-sort-column-descending, td.t-sort-column-ascending, td.t-sort-column-descending,{ font-weight: bold; } Thiago H. de Paula Figueiredo wrote: > > Em Fri, 13 Nov 2009 10:09:31 -0200, sandeepraj singh > escreveu: > >> Hi, > > Hi! > >> I want to make Grid Columns bolded when they are sorted. > > Take a look at the generated HTML. Grid adds the "t-sort-column-ascending" > CSS class to a header cell when it's used for sorting ascending and > "t-sort-column-descending" when sorgin descending. All you need is to add > this to your CSS: > > th.t-sort-column-ascending, th.t-sort-column-descending { > font-weight: bold; > } > > -- > Thiago H. de Paula Figueiredo > Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, > and instructor > Owner, software architect and developer, 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 > > > -- View this message in context: http://old.nabble.com/Tapestry5-Grid-Coloumn-Bolded-when-sorted-tp26335659p26367325.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: Switching between Stage & Production DB with Tapestry5 & Hibernate3
Hi, we use our custom configuration file that reads everything from single file. The application reads a system property that defines the location of the conf file. This way, the jar and build process is the same for every environment and the deploy procedure is just to copy the war to the server (prod, pilot, internal test, demo etc..) Also, this enables us to run our software in the mode we choose in every environment: if we need to run in debug or development mode in production that we indeed can. Also the log4j conf is read from outside the war/exploded war, so that conf is also out of the build cycle. The only downside is that we have to define the single configuration key to catalina_opts or similar, but this setup has proven to be useful for us: even the new guy can deploy to any environment, as the procedure is always similar and there is no checklist ;) Quick solution is to determine the wished configuration from the production mode flag. - Ville Alessandro Bottoni-4 wrote: > > Hi All, > I'm almost completely new to Tapestry and Hibernate so, please, be > patient.. > > In your opinion, what's the best (simplest/most-maintainable) way to > deal with two different databases with T5 and H3? > > I have the classical stage/production environment with the same software > (and the same RDBMS) on the two machines but two different data sets and > I have to switch from the one to the other when deploying the T5 stuff. > > Is it better to rely on the mechanisms provided by Hibernate (loading > different configuration files, for example) or is it better to use some > Tapestry-specific trick? > > How do you do that, usually? > > Thanks in advance for your attention. > > -- > > Alessandro Bottoni > Website: http://www.alessandrobottoni.it/ > > "In mathematics you don't understand things. You just get used to them." > -- John von Neumann > > > > > - > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > -- View this message in context: http://old.nabble.com/Switching-between-Stage---Production-DB-with-Tapestry5---Hibernate3-tp26340524p26367152.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: Hibernate question
This also depends on your objectives. If you have a detached entity in your session, then you have the option to check for changes in the DB when you try to save, and then present some kind of conflict resolution screen, rather than blindly overwriting or accepting changes made in another session. Having said that, "blindly accepting / overwriting" is usually fine for my applications and I *usually* store the id. Jonathan On Fri, Nov 13, 2009 at 9:18 AM, Szemere Szemere < szemereszem...@googlemail.com> wrote: > Afaik any Hibernate object stored in the HTTPSession will be > Hibernate-detached between HTTP requests. It is not refreshed/merged > automatically on a new HTTP request, so it will be outside the Hibernate > session on the second request which is probably not what you want. > > It is generally a much better idea to store the object id in the session > and > recreate it at the beginning of each new HTTP request. Tapestry has some > features to make this easy for you, but that's beyond my expertise (search > the mailing list). > > Szemere > -- Jonathan Barker ITStrategic
Re: Tapestry Resources and Velocity Templates
On Sun, Nov 15, 2009 at 2:22 PM, Jonhy Pear wrote: > I have configured Spring Email to send emails to users. Spring email buys almost nothing, if that's the only thing you use Spring for, you could just as well use Velocity and plain javamail directly (or alternatively chenillekit-mail). > class="org.springframework.ui.velocity.VelocityEngineFactoryBean"> > > > class > > > org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader > > > > Do you have any hint on how to tell velocity to lookup in > src/main/resources/... ? Reading from src/main/resources is not what you want. Maven copies files in src/main/resources to classes/, so you want read the templates from your classpath. Here's my corresponding direct Velocity configuration (which works): Velocity.setProperty(Velocity.RESOURCE_LOADER, "classpath"); Velocity.addProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName()); Velocity.init(); So I assume the problem is simply that the value of resource.loader should be "classpath", not "class". Kalle - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Tapestry Resources and Velocity Templates
Hi! I have configured Spring Email to send emails to users. I want to use Velocity (not a requirement though, the only requirement is to have templating) to help me generate the body of the mail. I have a Tapestry service where I inject both VelocityEngine and MailSender services. Then, in the method sendRegistrationConfirmationEmail(User user) { ... String body = VelocityEngineUtils.mergeTemplateIntoString(this.velocityEngine, "UserRegistrationConfirm.vm", model); } I have my template UserRegistrationConfirm.vm in src/main/resources/ under the same package as my service from where I use velocity. However the template could not be found. I have in my applicationContext.xml the following configuration for Velocity: class org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader Do you have any hint on how to tell velocity to lookup in src/main/resources/... ? thank you,
What service will help me to wrap the rendering of every component on a page
For my testing enviroment I am looking for a way to wrap each component in two comments listing the type of the component and the full component id. This way I will be able to properly assert that the markup of each page contains the correct components. Digging in the api I can't directly find what service would be a good starting point. I would highly appreciate a pointer as to what service to use. Regards, Joost - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Tapestry-Spring in standalone mode
Joost! Thanks for ur help! I understand ur point of not missing Tapestry IoC and Spring, we wanted to take advantage of some of the existent code. We just didn't want to recreate the infrastructure to create the chains in Spring but well, i think it's worthy and safer :) On 11/15/09, Joost Schouten (ml) wrote: > I am not sure how to best expose such a chain to spring, maybe it is > possible but I don't know how. You can however quite easily port this to > spring though. Just have a ChainInterface > > void doSomeWork(); > > an implementation: > > public class FirstChainedImplementation implements ChainInterface{ > > private ChainInterface nextInChain; > > public FirstChanedImplementation(ChainInterface nextInChain) { >this.nextInChain = nextInChain; > } > > public void doSomeWork() { > >if(nextInChain != null) { > nextInChain.doSomeWork(); > } > > } > > Have a bunch of implementing serviceses and define them in your spring > as such: > > class="com.domain.yourFirstImplementingService"> > > > > class="com.domain.yourSecondImplementingService"> > > > > ... add as many as you need. Obviously you can clean this up making a > nice abstract class that does the chaining logic and leave the > implementations to just care about the work they should perform. > > I prefer doing it this way and use Tapetsry for all web tier related > issues. This allows me to port all my low level code to any application > which might not know anything about the web or tapestry. > > Hope it helps, > Joost > > Juan E. Maya wrote: >> Some chains defined by our self created using Tapestry IoC using >> http://tapestry.apache.org/tapestry5/tapestry-ioc/command.html >> >> This allows to have chains that can be contributed in any module >> making the application truly modular. Spring (as far as i know) >> doesn't have anything similar to this, am i wrong? >> >> The point is that we require to inject services defined by ourselves >> using tapestry IoC to Spring Beans. Tapestry-Spring allows this kind >> of integration in a web application, we want to have the same behavior >> a standalone application. >> >> On 11/14/09, Joost Schouten (ml) wrote: >> >>> What "Chains of Responsibilities" are you refering to? >>> >>> Juan E. Maya wrote: >>> Joost i am aware of Spring Integration with Quartz and we are using it. The problem is that we are using some Chains of Responsibilities defined in tapestry in our Spring beans (using the filter integration this is not a problem at all) however if we want to have the same functionality in a standalone mode we would not be able anything at all from tapestry ioc. I know it's a bit weird to mix IoC, sadly the decision was to use spring instead of Tapestry IoC and in a few cases make use of tapestry IoC (specially to make use of the distributed configuration). That's why we need to have Tapestry Services inside our Spring beans in stand alone mode. Thanks a lot for ur help On 11/14/09, Fernando Padilla wrote: > what do your "jobs" do? Why do they need anything from Tapestry? > > On 11/13/09 2:54 PM, Joost Schouten (ml) wrote: > > >> Do you mean timed java jobs (java equivalent of cron jobs)? If so, >> since you are already working with Spring, have a look at: >> http://static.springsource.org/spring/docs/2.5.x/reference/scheduling.html >> >> >> >> Not tapestry, but very simple too ;-) >> >> Good luck, >> Joost >> >> Juan E. Maya wrote: >> >> >>> Hi, We are using Tapestry-Spring integration in our web tear without >>> problems but we require to have a standalone application that will >>> take care of the job executions. Has anybody successfully created >>> such >>> integration ? I was checking the code of the Spring SpringModuleDef >>> and it's highly tied to the ServletContext. >>> >>> Any tips would be highly appreciated, right now i am thinking about >>> implementing my own SpringModuleDef but there might be a easier that >>> i am not aware of. >>> >>> Thanks a lot for your help >>> >>> - >>> 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: Netbeans 6.7 tapestry 5 plugin support
Ok, I'll try to do that as soon as I have the required time in my hands. - Ville Andreas Andreou-4 wrote: > > When was that? i think the T5related project used to be hosted at > google-code > but then was moved into https://nbtapestrysupport.dev.java.net/ > (where the t4project was) > > Just request for the developer role if you have a java.net account - or > add the > patches to an issue at > https://nbtapestrysupport.dev.java.net/servlets/ProjectIssues > > On Thu, Nov 12, 2009 at 10:00 PM, Ville Virtanen > wrote: >> >> We use it, but we have inhouse modified version of it due to problems in >> tml >> / java class change functionality. (The original version does not know >> how >> to resolve all possible template locations.) >> >> I contacted the author if he would like to get / review the changes, but >> I >> never got any reply back. >> >> Anyhow, it really is usefull, atleast the tml / java class switch >> functionality. >> >> - Ville >> >> >> Sergey Didenko wrote: >>> >>> Hi, >>> >>> does anybody uses this T5 plugin for Netbeans? ("nbtapestrysupport", >>> see below). Does it work all right? >>> >>> On Mon, Jun 15, 2009 at 9:07 AM, iberck wrote: Hi I'm developing a netbeans plugin for tapestry 5 tested on windows xp The supported features are: >>> Feel free to download from: https://nbtapestrysupport.dev.java.net/servlets/ProjectDocumentList View this message in context: http://www.nabble.com/Netbeans-6.7-tapestry-5-plugin-support-tp24029691p24029691.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 >>> >>> >>> >> >> -- >> View this message in context: >> http://old.nabble.com/Netbeans-6.7-tapestry-5-plugin-support-tp24029691p26325187.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 >> >> > > > > -- > Andreas Andreou - andy...@apache.org - http://blog.andyhot.gr > Tapestry / 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 > > > -- View this message in context: http://old.nabble.com/Netbeans-6.7-tapestry-5-plugin-support-tp24029691p26360217.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: javascript locale for numbers
Answering my own question, it seems "Tapestry.decimalFormatSymbols" should be usable for this, and I see this being used in tapestry.js However, I don't know where this comes from, as it does not seem to be included in my page (I cannot find the declaration). Joachim Joachim Van der Auwera wrote: I have component which does some javascript manipulation on a form field value which contains a double. Depending on the locale, this may use either a dot or a comma as decimal separator. Is there a way in which I can know client side (in the javascript code) what the current decimal separator is? Thanks for the help, Joachim -- Joachim Van der Auwera PROGS bvba, progs.be - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Tapestry-Spring in standalone mode
I am not sure how to best expose such a chain to spring, maybe it is possible but I don't know how. You can however quite easily port this to spring though. Just have a ChainInterface void doSomeWork(); an implementation: public class FirstChainedImplementation implements ChainInterface{ private ChainInterface nextInChain; public FirstChanedImplementation(ChainInterface nextInChain) { this.nextInChain = nextInChain; } public void doSomeWork() { if(nextInChain != null) { nextInChain.doSomeWork(); } } Have a bunch of implementing serviceses and define them in your spring as such: class="com.domain.yourFirstImplementingService"> class="com.domain.yourSecondImplementingService"> ... add as many as you need. Obviously you can clean this up making a nice abstract class that does the chaining logic and leave the implementations to just care about the work they should perform. I prefer doing it this way and use Tapetsry for all web tier related issues. This allows me to port all my low level code to any application which might not know anything about the web or tapestry. Hope it helps, Joost Juan E. Maya wrote: Some chains defined by our self created using Tapestry IoC using http://tapestry.apache.org/tapestry5/tapestry-ioc/command.html This allows to have chains that can be contributed in any module making the application truly modular. Spring (as far as i know) doesn't have anything similar to this, am i wrong? The point is that we require to inject services defined by ourselves using tapestry IoC to Spring Beans. Tapestry-Spring allows this kind of integration in a web application, we want to have the same behavior a standalone application. On 11/14/09, Joost Schouten (ml) wrote: What "Chains of Responsibilities" are you refering to? Juan E. Maya wrote: Joost i am aware of Spring Integration with Quartz and we are using it. The problem is that we are using some Chains of Responsibilities defined in tapestry in our Spring beans (using the filter integration this is not a problem at all) however if we want to have the same functionality in a standalone mode we would not be able anything at all from tapestry ioc. I know it's a bit weird to mix IoC, sadly the decision was to use spring instead of Tapestry IoC and in a few cases make use of tapestry IoC (specially to make use of the distributed configuration). That's why we need to have Tapestry Services inside our Spring beans in stand alone mode. Thanks a lot for ur help On 11/14/09, Fernando Padilla wrote: what do your "jobs" do? Why do they need anything from Tapestry? On 11/13/09 2:54 PM, Joost Schouten (ml) wrote: Do you mean timed java jobs (java equivalent of cron jobs)? If so, since you are already working with Spring, have a look at: http://static.springsource.org/spring/docs/2.5.x/reference/scheduling.html Not tapestry, but very simple too ;-) Good luck, Joost Juan E. Maya wrote: Hi, We are using Tapestry-Spring integration in our web tear without problems but we require to have a standalone application that will take care of the job executions. Has anybody successfully created such integration ? I was checking the code of the Spring SpringModuleDef and it's highly tied to the ServletContext. Any tips would be highly appreciated, right now i am thinking about implementing my own SpringModuleDef but there might be a easier that i am not aware of. Thanks a lot for your help - 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 - 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 - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: ActionLink context help
Looks good! It would be even safer to generate a link with placeholders, but your approach is probably safe enough. The thing we're really missing here is a hook in Tapestry.js that does something similar to the example code below. Tapestry.prototype.appendLinkContext = function(linkId, value) { var oldHref = $(linkId).href; return oldHref + '/' + encode(value); } On Sun, Nov 15, 2009 at 1:44 AM, Jonhy Pear wrote: > Thanks Magnus and Inge, > > Your really helped me to find a possible solution. > I created a mixin called InjectClientValue and used it like this: > > t:mixins="injectClientValue" > t:sourceElementId="login" > > > t:updateElementId="loginDuplicatedNotice">${message:verify-login-duplicated-link} > > sourceElementId is the id of the input from where I want to read the value > to send to the server. > > > In my tml I have a div: > > > > My InjectClientValue.js is as follows: > > InjectClientValue.prototype = { >initialize : function(sourceElement, eventElement, updateElement) { >this.sourceElement = $(sourceElement); >this.element = $(eventElement); >this.updateElement = $(updateElement) >this.element.observe('click', > this.onClick.bindAsEventListener(this)); >}, > >onClick : function(event) { >var currentInstance = this; >Tapestry.debug(this.sourceElement.value); >Tapestry.debug(this.element.href); > >if (this.sourceElement == null) { >Tapestry.error("Error: sourceElement is null"); >event.stop(); >return; >} >if (this.element == null) { >Tapestry.error("Error: element is null"); >event.stop(); >return; >} >if (this.updateElement == null) { >Tapestry.error("Error: updateElement is null"); >event.stop(); >return; >} >if (this.sourceElement.value == "") { > >Tapestry.warn("Error: sourceElement is empty"); >event.stop(); >return; >} > >new Ajax.Request(this.element.href + "/" + this.sourceElement.value, > { >method : 'get', >onSuccess : function(transport) { > currentInstance.updateElement >.update(transport.responseJSON.content); >} >}); >event.stop(); > >} > > } > > //End > > This is working now, but I would like you to comment. > > Thank you > > > On Thu, Nov 12, 2009 at 11:15 AM, Inge Solvoll >wrote: > > > See my blog for a relevant implementation that has (among other things) a > > possible pattern to solve your problem. The pattern is to generating the > > action link with placeholders on page setup, pass it to javascript, and > > create a javascript function that replaces the placeholders runtime on > > client. Then wrap it in a component or a mixin. > > > > > > > http://tinybits.blogspot.com/2009/05/update-zone-on-any-client-side-event.html > > > > You could vote for this JIRA-issue, which also is a suggestion for making > > these things easier to do: > > > > https://issues.apache.org/jira/browse/TAP5-521 > > > > Inge > > > > On Thu, Nov 12, 2009 at 9:41 AM, Magnus Rundberget > wrote: > > > > > Hi, > > > > > > > > > Others will surely correct me if I'm wrong... > > > - Ideally you should be able to create a mixin for the onclick event on > > the > > > actionlink that picks up the value of the textfield and sets the > context > > > before the tapestry actionlink event triggers. However since the > > actionlink > > > is tied to a zone this is not so trivial. Something to do with > > > indeterministic ordering of events in javascript i believe > > > > > > > > > I can see a couple of other alternatives; > > > 1. Event and a little javascript using prototype and its inbuildt > support > > > for ajax requests. Haven't tested the below so a big disclaimer here > :-) > > > > > > A) Sample Javascript - checkusername.js; > > > CheckUserNameLink.prototype = { > > >initialize: function(elementId, requestUrl) > > >{ > > >this.elementId = elementId; > > >this.requestUrl = requestUrl; > > > > > >Event.observe($(this.elementId), 'click', > > > this._click.bindAsEventListener(this)); > > >}, > > >_click: function(theEvent) > > >{ > > >var url = this.requestUrl + "/" + > > encodeURIComponent($('userName')); > > > // adding the username as a context param to event > > >new Ajax.Request(this.requestUrl, { > > >method: 'get', > > >onSuccess: function(transport) { > > > var isTaken = transport.responseJSON.isTaken; > > >if (isTaken === 'true') { > > > // javascript to tell user the username is take... > update > > a > > > div/span or whatever > > >} > > >} > > >}); > > >} > > > }; > > > > > > B) In your TML > > > remove the zone/rep