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

Reply via email to