Thanks Gary, 

your suggestion and my solution were remarkably similar, so I guess I'm
on the right track!

Cheers,
Ian.

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
> Sent: 10 July 2006 16:04
> To: [email protected]
> Subject: Re: Popup windows and Clay
> 
> >From: "Ian.Priest" <[EMAIL PROTECTED]>
> >
> > Hi,
> > 
> > I think this question is probably about 50% Clay and 50% 
> JSF, so I'll 
> > start by asking on it this list.
> > 
> > I have a requirement to open a link in a popup window. What 
> I'd like 
> > to do is have the link as a Clay component and open the 
> popup with the 
> > result of clicking on the link. I have an actionlink widget:
> > 
> 
> [snippet]
> 
> > 
> > 
> > Unfortunately I can't see a way of using this type of link 
> to open a 
> > popup as I'm not sure what url to provide to the 
> window.open() function. 
> > What I'd like to do in onclick is something like: 
> >
> 
> [snippet]
>  
> > 
> > Can anyone help me out with a solution? 
> > 
> 
>  
> I have a couple ideas for you. Both would use the shale view 
> controller for the event hook instead of the commandLink 
> action method binding. When you use a shale view controller, 
> you have hooks like the prerender that you could provide 
> staging logic before the page is rendered.   
> 
> I have two examples here but I can think of several others. 
> Hopefully this will give you some ideas.  
> 1) Use the XML config as a primary template.
> clay-config.xml
>    <component jsfid="popupOutputLink1" extends="outputLink" 
> allowBody="false">
>        <attributes>
>         <set name="value" value="#" />
>         <set name="onclick"
>          value="window.open('@popupHref', 'popup', 
> 'width=500,height=310,scrollbars=yes');" />
>        </attributes>
>         
>         <symbols>
>             <set name="popupHref"/>
>             <set name="popupLabel"/>            
>         </symbols>
>        <element renderId="1" jsfid="outputText">
>         <attributes>
>          <set name="value" value="@popupLabel" />
>         </attributes>
>        </element>
>         
>    </component>
> 
> Html template (home.html)
> <a jsfid="popupOutputLink1" 
> popupHref="viewsource.html?url=WEB-INF/clay-symbols-config.xml"
>    popupLabel="Test1" href="#">Testing</a><br/>
> 2) Use an html template in addition to the XML config.
> clay-config.xml
> 
>    <component jsfid="popupOutputLink2" extends="clay" 
> allowBody="false">
>        <attributes>
>         <set name="clayJsfid" value="/symbols/popupLink.html" />
>        </attributes>        
>        <symbols>
>             <set name="popupHref"/>
>             <set name="popupLabel"/>            
>        </symbols>
>    </component>
> /symbols/popupLink.html
> <a jsfid="outputLink" onclick="window.open('@popupHref', 
> 'popup', 'width=500,height=310,scrollbars=yes');" value="#" 
> href="#">@popupLabel</a>
> 
> Html template (home.html)
> 
> <a jsfid="popupOutputLink2" 
> popupHref="viewsource.html?url=WEB-INF/clay-symbols-config.xml"
>    popupLabel="Test2" href="#">Testing</a><br/> 
> 
> 
> > Cheers, 
> > Ian. 
> > 
> 
> Gary
> 
> > 
> > 
> > 
> 

Reply via email to