blob: 5cc68cac28dd391074ab2908e3a9f5215ea38a23 [file] [log] [blame]
## Licensed to the Apache Software Foundation (ASF) under one
## or more contributor license agreements. See the NOTICE file
## distributed with this work for additional information
## regarding copyright ownership. The ASF licenses this file
## to you under the Apache License, Version 2.0 (the
## "License"); you may not use this file except in compliance
## with the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing,
## software distributed under the License is distributed on an
## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
## KIND, either express or implied. See the License for the
## specific language governing permissions and limitations
## under the License.
#**
* Sets the $page_title key, so if it ever changes,
* it need only be changed here.
*#
#macro( title $string )
#set( $page_title = $string )#end
#**
* Creates a link to the javadoc for the specified tool.
*#
#macro( doclink $toolname $generic )
#set( $doclink =
"http://velocity.apache.org/tools/devel/javadoc/org/apache/velocity/tools/##
#if( $generic )generic/#else#**#view/#end##
${toolname}.html"
)##
<a href="$doclink">$toolname</a>#end
#**
* Creates a list item for the toolmenu.
*#
#macro( toolMenuItem $menulink $tool )
<li><a href="$menulink.relative("${tool}.vm")">$text.tools.get($tool)</a></li>
#end
#**
* Creates a smart default value for a demo field.
*#
#macro( demoDefault $valuetype )
#if( $valuetype.simpleName )
#set( $valuetype = $valuetype.simpleName )
#end
#if( $valuetype eq 'String' )
'test'##
#elseif( $valuetype eq 'int' or $valuetype eq 'Integer'
or $valuetype eq 'long' or $valuetype eq 'Long' )
1##
#elseif( $valuetype eq 'double' or $valuetype eq 'Double'
or $valuetype eq 'float' or $valuetype eq 'Float' )
1.1##
#elseif( $valuetype eq 'boolean' or $valuetype eq 'Boolean' )
true##
#elseif( $valuetype eq 'Class' )
${esc.d}class.class##
#end##
#end
#**
* Creates the start tag and header row for a function demonstration table.
*#
#macro( demoTableStart )
#set( $demo = $text.demo )
<table border="1" cellspacing="0" cellpadding="3">
<tr>
<th>$demo.function</th>
<form method="get" action="$link.self">
<th nowrap="1">
$demo.result<br>
<input style="font-size: 8pt" type="submit" value="$demo.clear">
</th>
#if( $params.layout )
<input type="hidden" name="layout" value="$params.layout">
#end
</form>
<th>$demo.description</th>
</tr>
#end
#**
* Creates a demonstration row of a tool method that takes no parameters.
*#
#macro( demo $toolname $method $description )
<tr>
<td valign="top">${esc.d}${toolname}.${method}</td>
<td valign="top" id="${method}">$render.eval("${esc.d}${toolname}.${method}")</td>
<td valign="top">$description</td>
</tr>
#end
#**
* Creates a faux demonstration row of a tool method that takes no parameters.
*#
#macro( demoAlt $toolname $method $result $description )
<tr>
<td valign="top">${esc.d}${toolname}.${method}</td>
<td valign="top" id="alt${method}">$!result</td>
<td valign="top">$description</td>
</tr>
#end
#**
* Creates an interactive demonstration row for a tool method that takes one parameter.
*#
#macro( demo1 $toolname $method $size $description )
#if( !$quote )
#set( $quote = $esc.q )
#end
<tr>
<form name="${method}" method="get" action="$link.self.anchor($method)"> ## HttpUnit doesn't like anchor-only links
<td valign="top">
<a name="$method"><nobr>
${esc.d}${toolname}.$method(${quote}<input type="text" size="$size" name="$method" value="$!params.get($method)">${quote})
</nobr></a>
</td>
<td valign="top">
#if( $params.get($method) )
${esc.d}${toolname}.${method}(${quote}$params.get($method)${quote})
=
<div id="${method}">$render.eval("${esc.d}${toolname}.${method}(${quote}$params.get($method)${quote})")</div>
<input type="submit" value="$text.demo.try">
#else
<input type="submit" value="$text.demo.try">
#end
#foreach( $param in $request.parameterMap.keySet() )
#foreach( $value in $params.getStrings($param) )
#if( $param != $method )
<input type="hidden" name="$param" value="$esc.html($value)">
#end
#end
#end
</td>
<td valign="top">$description</td>
</form>
</tr>
#end
#**
* Creates an interactive demonstration row for a tool method that takes two parameters.
*#
#macro( demo2 $toolname $method $size $description )
#if( !$quote )
#set( $quote = $esc.q )
#end
#set( $method1 = "${method}1" )
#set( $method2 = "${method}2" )
<tr>
<form name="$method2" method="get" action="$link.self.anchor($method2)"> ## HttpUnit doesn't like anchor-only links
<td valign="top">
<a name="$method2"><nobr>${esc.d}${toolname}.$method(${quote}<input type="text" size="$size" name="${method1}" value="$!params.get("${method1}")">${quote},
${quote}<input type="text" size="$size" name="${method2}" value="$!params.get("${method2}")">${quote})</nobr></a>
</td>
<td valign="top">
#if( $params.get(${method1}) )
${esc.d}${toolname}.${method}(${quote}$!params.get(${method1})${quote}, ${quote}$!params.get(${method2})${quote})
=
<div id="$method2">$render.eval("${esc.d}${toolname}.${method}(${quote}$!params.get(${method1})${quote}, ${quote}$!params.get(${method2})${quote})")</div>
<input type="submit" value="$text.demo.tryAgain">
#else
<input type="submit" value="$text.demo.try">
#end
#foreach( $param in $request.parameterMap.keySet() )
#foreach( $value in $params.getStrings($param) )
#if( $param != $method1 && $param != $method2 )
<input type="hidden" name="$param" value="$esc.html($value)">
#end
#end
#end
</td>
<td valign="top">$description</td>
</form>
</tr>
#end
#**
* Creates an interactive demonstration row for a tool method that takes three parameters.
*#
#macro( demo3 $toolname $method $size $description )
#if( !$quote )
#set( $quote = $esc.q )
#end
#set( $method1 = "${method}A" )
#set( $method2 = "${method}B" )
#set( $method3 = "${method}C" )
<tr>
<form name="$method3" method="get" action="$link.self.anchor($method3)"> ## HttpUnit doesn't like anchor-only links
<td valign="top">
<a name="$method3"><nobr>${esc.d}${toolname}.$method(${quote}<input type="text" size="$size" name="${method1}" value="$!params.get("${method1}")">${quote},
${quote}<input type="text" size="$size" name="${method2}" value="$!params.get("${method2}")">${quote},
${quote}<input type="text" size="$size" name="${method3}" value="$!params.get("${method3}")">${quote})</nobr></a>
</td>
<td valign="top">
#if( $params.get(${method1}) )
${esc.d}${toolname}.${method}(${quote}$!params.get(${method1})${quote}, ${quote}$!params.get(${method2})${quote}, ${quote}$!params.get(${method3})${quote})
=
<div id="$method3">$render.eval("${esc.d}${toolname}.${method}(${quote}$!params.get(${method1})${quote}, ${quote}$!params.get(${method2})${quote}, ${quote}$!params.get(${method3})${quote})")</div>
<input type="submit" value="$text.demo.tryAgain">
#else
<input type="submit" value="$text.demo.try">
#end
#foreach( $param in $request.parameterMap.keySet() )
#foreach( $value in $params.getStrings($param) )
#if( $param != $method1 && $param != $method2 && $param != $method3 )
<input type="hidden" name="$param" value="$esc.html($value)">
#end
#end
#end
</td>
<td valign="top">$description</td>
</form>
</tr>
#end
#**
* Creates a free-form interactive demonstration row.
*#
#macro( demoCustom $toolname )
<tr>
<form method="get" action="$link.anchor('custom')">
<td valign="top">
<a name="custom">
<input type="text" size="30" name="custom" value="#if( $params.custom )$params.custom#else$esc.d$toolname#end">
</a>
</td>
<td valign="top">
#if( $params.custom )
$params.custom
=
$render.eval($params.custom)
<input type="submit" value="$text.demo.tryAgain">
#else
<input type="submit" value="$text.demo.try">
#end
#foreach( $param in $request.parameterMap.keySet() )
#foreach( $value in $params.getStrings($param) )
#if( $param != 'custom' )
<input type="hidden" name="$param" value="$esc.html($value)">
#end
#end
#end
</td>
<td>$text.demo.tryAnything</td>
</form>
</tr>
#end