<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- $Id$ --> 
<html>
<head>
<title>contrib:PopupLink</title>
<link rel="stylesheet" type="text/css" href="Tapestry.css" title="style">
</head>

<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
 <tr><!-- Previous component in alphabetical order. -->
  <td align="left"><A href="contrib.Otherwise.html"><IMG alt="contrib:Otherwise" src="common-images/prev.png"></a></td>  
  <td align="middle"><A href="index.html"><IMG alt="Component Index" src="common-images/home.png" ></a></td><!-- Next component in alphabetical order. -->
  <td align="right"><A href="contrib.Table.html"><IMG alt="contrib:Table" src="common-images/next.png"></a></td>  
 <tr>
 <tr>
  <td colspan="3"><hr></td>  
 </tr>
 <tr>
  <td colspan="3">
   <table border="0" cellpadding="4" cellspacing="4" width="100%">

<tr valign="top">
 <td>
  <table>
   <tr>
    <td><font size="+2"><b>contrib:PopupLink</b></font></td>
   </tr>
   <tr>
    <td>
     <A href="../api/org/apache/tapestry/contrib/popup/PopupLink.html">org.apache.tapestry.contrib.popup.PopupLink</a>
    </td>
   </tr>
  </table>
 </td>
 <td>
  <table align="right" valign="middle" bgcolor="#c0c0c0" cellpadding="8">
   <tr>
    <td><a href="contrib.PopupLink.html"><font color="blue">Popup Link</font></a></td>
   </tr>
  </table>
 </td>
</tr>

<tr valign="center">
 <td colspan="2">&nbsp;</td>
</tr>

<tr>
 <td colspan="2">
  <b>Description</b>
  <br>
  Creates a &lt;a&gt; popup link to launch a target window using the 
  javascript <tt>window.open(URL, windowName, windowFeatures)</tt> function. 
 </td>
</tr>

<tr>
 <td colspan="2">
  <b>See Also</b>
  <br>
  <A href="ExternalLink.html">ExternalLink</a>,
  <A href="PageLink.html">PageLink</a>
 </td>
</tr>

<tr>
 <td colspan="2">
  <b>Parameters</b>
  <br>
  <table border="1" cellpadding="4" cellspacing="4" class="parameters">
   <tr> 
    <th>Name</th>
    <th>Type</th>
    <th>Direction</th>
    <th>Required</th> 
    <th>Default</th>
    <th>Description</th>
   </tr>
   <tr>
    <td>href</td>
    <td>String</td>
    <td>in</td>
    <td>yes</td>
    <td>&nbsp;</td>
    <td>The URL of the window to open.</td>
   </tr>
   <tr>
    <td>features</td>
    <td>String</td>
    <td>in</td>
    <td>no</td>
    <td>&nbsp;</td>
    <td>
    The JavaScript features of the target window. Boolean features to include be 
    should be specified in comma delimited string. Integer features 
    (left, height, top, width) should be specified by assigning the feature 
    value as <tt>[feature name]=100</tt>. JavaScript 1.1 features include:<p>
    <tt>height, left, location, menubar, resizable, scrollbars, status, toolbar, top, width</tt>
    </td>
   </tr>
   <tr>
    <td>windowName</td>
    <td>String</td>
    <td>in</td>
    <td>no</td>
    <td>popuplink_window</td>
    <td>The name of the target window.</td>
   </tr>
  </table>
  <P>Body: <STRONG>rendered<BR>
  </STRONG>Informal parameters:<STRONG>allowed</STRONG><br>
  <!-- component-specification "reserved-parameter" -->
  Reserved parameters: none 
  </P>    
 </td>
</tr>

<tr>
 <td colspan="2">
  <b>Examples</b>
  <p>
  This example provides a context help popup link for an account number field. 
  <p>

<table class="examples" cellspacing="8">
<tr>
 <td>Account Number:</td>
 <td><input type="text"/></td>
 <td><a href="contrib.PopupLink.html"><font color="blue">Help</font></a></td>
</tr>
</table>
		
<pre>
&lt;tr&gt;
 &lt;td&gt; Account Number: &lt;/td&gt;
 &lt;td&gt; &lt;input jwcid="@<a href="TextField.html">TextField</a>" value='ognl:visit.accountNumber'/&gt; &lt;/td&gt;
 &lt;td&gt; &lt;a href="help/account-number-help.html" jwcid="@<a href="contrib.PopupLink.html">contrib:PopupLink</a>" features='ognl:"resizable,scrollbars,top=100,left=100,height=400,width=300"'&gt;Help&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;


</pre>
      

 </td></tr></table>
</td></tr>
<tr>
 <td colspan="3"><hr></td>  
</tr>
<tr><!-- Previous component in alphabetical order. -->
 <td align="left"><A href="contrib.Otherwise.html"><IMG alt="contrib:Otherwise" src="common-images/prev.png"></a></td>  
 <td align="middle"><A href="index.html"><IMG alt="Component Index" src="common-images/home.png" ></a></td><!-- Next component in alphabetical order. -->
  <td align="right"><A href="contrib.Table.html"><IMG alt="contrib:Table" src="common-images/next.png"></a></td>  
</tr>
</table>

</body>
</html>