There you go, did it for fun :) One thing remaining: how to find out if asset exists without an exception being thrown?
public class IncludeJavascriptLibraryWithSameNameWorker extends AbstractIncludeAssetWorker { private final RenderSupport renderSupport; private final AssetSource assetSource2; public IncludeJavascriptLibraryWithSameNameWorker(AssetSource assetSource, RenderSupport renderSupport, SymbolSource symbolSource) { super(assetSource, symbolSource); this.assetSource2 = assetSource; this.renderSupport = renderSupport; } public void transform(ClassTransformation transformation, final MutableComponentModel model) { final Resource baseResource = model.getBaseResource(); String className = model.getComponentClassName(); String jsFileName = className.substring(className.lastIndexOf(".") + 1) + ".js"; try { Asset asset = assetSource2.getAsset(baseResource, jsFileName, null); if (asset != null) { addOperationForAssetPaths(transformation, model, new String[] { jsFileName }); } } catch (Exception e) { // No default JS asset found for this class. } } protected void handleAsset(Asset asset) { renderSupport.addScriptLink(asset); } On Fri, Feb 5, 2010 at 9:04 PM, Josh Canfield <joshcanfi...@gmail.com>wrote: > > But in the end, i realized that it's a silly idea that only leads to > other > > people having even more problems finding out what's going on in my code > :) > > If you organize things so that your js lives right next to your tml > then it shouldn't be so hard to handle. If you're looking at the > folder you should see all the files nicely sorted together: > > MyComponent.tml > MyComponent.js > MyComponent.properties > > At times I've wished that including that script was the default > behavior... I sometimes forget that with tapestry I can just make it > so! If anyones written the class transformer to do this and wants to > share I'd love to make use of it. > > Josh > > On Fri, Feb 5, 2010 at 10:44 AM, Inge Solvoll <inge.tapes...@gmail.com> > wrote: > > Thanks! > > > > I looked into this and it wasn't too hard to figure out (as usual). > > > > But in the end, i realized that it's a silly idea that only leads to > other > > people having even more problems finding out what's going on in my code > :) I > > can afford the typing required to include the javascript companion for my > > components :) > > > > On Fri, Feb 5, 2010 at 10:05 AM, cordenier christophe < > > christophe.corden...@gmail.com> wrote: > > > >> Hi, > >> > >> Your worker should use AssetSource and RenderSupport to automatically > add > >> the js file if it exists, have a look at IncludeJavaScriptLibraryWorker > >> source file to see an exemple of script injection. > >> BTW in my experience, the multiplication of JS/CSS files is not really > >> appreciated by IE, so if you decide to work this way i advise you to > also > >> turn on (default) combine-scripts feature. > >> > >> Regards, > >> Christophe Cordenier > >> > >> Developer of wooki @wookicentral.com > >> > >> 2010/2/5 Inge Solvoll <inge.tapes...@gmail.com> > >> > >> > Hi! > >> > > >> > I find myself repeating myself. Quite often when creating a page or a > >> > component, I create a companion javascript file with the same name as > my > >> > component class. I got the idea today to try to create some kind of > >> worker > >> > or service that automatically includes a javascript that has the same > >> name > >> > as the component class and exists in the same folder on the classpath. > >> > After > >> > all, this is how the tml and properties files are hooked up to > component > >> > classes, so why not do it for javascript as well? > >> > > >> > Any pointers to get me started? :) > >> > > >> > >> > >> > >> -- > >> Regards, > >> Christophe Cordenier. > >> > >> Developer of wooki @wookicentral.com > >> > > > > > > -- > -- > http://www.bodylabgym.com - a private, by appointment only, one-on-one > health and fitness facility. > -- > http://www.ectransition.com - Quality Electronic Cigarettes at a > reasonable price! > -- > TheDailyTube.com. Sign up and get the best new videos on the internet > delivered fresh to your inbox. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >