Looks like a plausible solution, but I'm using the script resource for a custom component and I am hoping to contribute so using an outside dependency is out of the question for this case. Thanks for the info though! I will keep it in mind for future projects.
-----Original Message----- From: noah [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 23, 2007 1:27 PM To: MyFaces Discussion Subject: Re: [Trinidad] How to add a custom JavaScript resource script Since (as Adam already said) those Trinidad APIs are not for public consumption, you should look at Shale Remoting. It's pretty lightweight. For example, in your renderer you write: new XhtmlHelper().linkJavascript(context, component, context.getResponseWriter(), Mechanism.CLASS_RESOURCE, "/com/mycompany/path/to/script.js"); to link a classpath resource. Or new XhtmlHelper().linkJavascript(context, component, context.getResponseWriter(), Mechanism.WEBAPP_RESOURCE, "/js/script.js"); would write a link for /NameOfYourWebapp/js/script.js Javadoc: http://shale.apache.org/shale-remoting/apidocs/org/apache/shale/remoting/package-summary.html On 5/23/07, Adam Winer <[EMAIL PROTECTED]> wrote: > FYI, folks, all of those APIs are currently in the > private, internal package, which means they might > get changed/moved/etc. Just so ya know! (For > instance, we really should move META-INF/adf > to META-INF/trinidad). > > -- Adam > > > > On 5/23/07, William Hoover <[EMAIL PROTECTED]> wrote: > > > > > > Danny, > > > > Thanks for your help! I noticed that the new LibraryScriptlet(String > > libraryName, String[] functions) passes the script directly into the > > libraryName. Would I just replace "YourScript" with the actual js functions > > (i.e. "function(){...}") or would I use an identifier for the library name > > and pass in the function names as a String array? > > > > Thanks, > > Will > > > > > > -----Original Message----- > > From: Danny Robinson [mailto:[EMAIL PROTECTED] > > Sent: Wednesday, May 23, 2007 10:12 AM > > To: MyFaces Discussion > > Subject: Re: [Trinidad] How to add a custom JavaScript resource script > > > > The simplest route I found was the following: > > > > Copy your YourScript.js to META-INF/adf/jsLibs in your custom component jar. > > > > Then in your renderer add the following code. This will cause your script > > to be added only once the first time your component is used in a page. > > > > @Override > > protected void findTypeConstants(Type type) > > { > > > > super.findTypeConstants(type); > > scriptLib = new LibraryScriptlet("YourScript", null); > > > > } > > > > @Override > > protected void encodeAll(FacesContext context, RenderingContext arc, > > UIComponent component, FacesBean bean) throws IOException > > { > > > > // output the popup javascript library > > scriptLib.outputScriptlet(context, arc); > > > > ...do your encoding here > > > > } > > > > private Scriptlet scriptLib; > > > > Regards, > > > > Danny > > > > > > On 5/23/07, William Hoover <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > I was wondering if anyone knows how to add a js resource in Trinidad? I > > have a custom component that needs to render a script. I noticed that there > > is a > > org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.XhtmlUtils > > class that has the writeLibImport(FacesContext context, RenderingContext > > arc, Object libURL) and addLib(FacesContext context, RenderingContext arc, > > Object libKey) methods. Is this the correct approach? Is there a better way > > to add the script without referring to a implicit URL? Can the > > org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.jsLibs.AliasedScriptlet > > class be used to accomplish this? > > > > > > > > -- > > Chordiant Software Inc. > > www.chordiant.com >

