blob: 95a57f577257ef5ba234d924e156b794faa0bf35 [file] [log] [blame]
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" />
<xsl:strip-space elements="*" />
<xsl:key name="topicSearch" match="//topic" use="id" />
<xsl:param name="css" />
<xsl:param name="title" />
<xsl:template match="/">
@FILE
<xsl:apply-templates select="//topic" />
</xsl:template>
<xsl:template name="gen-side">
<div id="side">
<div id="menu">
<h4>
<a href="http://code.google.com/webtoolkit/">
<xsl:text>Google Web Toolkit</xsl:text>
</a>
</h4>
<ul>
<li>
<a href="http://code.google.com/webtoolkit/download.html">
<xsl:text>Download GWT</xsl:text>
</a>
</li>
</ul>
<!-- Section: Product Overview -->
<ul>
<li>
<a href="http://code.google.com/webtoolkit/overview.html">
<xsl:text>Product Overview</xsl:text>
</a>
</li>
<li>
<a
href="http://code.google.com/webtoolkit/gettingstarted.html">
<xsl:text>Getting Started Guide</xsl:text>
</a>
</li>
<li>
<a
href="http://code.google.com/webtoolkit/documentation/examples/">
<xsl:text>Example Projects</xsl:text>
</a>
</li>
</ul>
<!-- Section: Developer Guide -->
<ul>
<!-- If the page is inside the dev guide, show the link as selected -->
<li>
<xsl:element name="a">
<xsl:if test="contains(id, 'com.google.gwt.doc')">
<xsl:attribute name="class">
<xsl:text>selected</xsl:text>
</xsl:attribute>
</xsl:if>
<xsl:variable name="href">
./com.google.gwt.doc.DeveloperGuide.html
</xsl:variable>
<xsl:attribute name="href">
<xsl:value-of select="normalize-space($href)" />
</xsl:attribute>
<xsl:text>Developer Guide</xsl:text>
</xsl:element>
</li>
<!-- If the page is inside the GWT class ref, show the link as selected -->
<li>
<xsl:element name="a">
<xsl:if
test="not(contains(id, 'com.google.gwt.doc.')) and (contains(id, 'com.google.gwt.') or contains(id, 'java.') or id = 'gwt' or id = 'jre')">
<xsl:attribute name="class">
<xsl:text>selected</xsl:text>
</xsl:attribute>
</xsl:if>
<xsl:variable name="href">./gwt.html</xsl:variable>
<xsl:attribute name="href">
<xsl:value-of select="normalize-space($href)" />
</xsl:attribute>
<xsl:text>Class Reference</xsl:text>
</xsl:element>
</li>
<li>
<a href="http://code.google.com/webtoolkit/issues/">
<xsl:text>Issue Tracking</xsl:text>
</a>
</li>
<li>
<a
href="http://groups.google.com/group/Google-Web-Toolkit">
<xsl:text>Developer Forum</xsl:text>
</a>
</li>
</ul>
<!-- Section: Important uncategorized links -->
<ul>
<li>
<a href="http://googlewebtoolkit.blogspot.com/">
<xsl:text>GWT Blog</xsl:text>
</a>
</li>
<li>
<a href="http://code.google.com/webtoolkit/faq.html">
<xsl:text>GWT FAQ</xsl:text>
</a>
</li>
<li>
<a
href="http://code.google.com/webtoolkit/makinggwtbetter.html">
<xsl:text>Making GWT Better</xsl:text>
</a>
</li>
</ul>
<ul>
<li>
<a
href="http://code.google.com/webtoolkit/thirdparty.html">
<xsl:text>Third Party Tools</xsl:text>
</a>
</li>
</ul>
</div>
<div id="search">
<form action="http://www.google.com/search" method="get">
<div>
<input name="domains" value="code.google.com" type="hidden" />
<input name="sitesearch" value="code.google.com"
type="hidden" />
<div class="header">Search this site:</div>
<div class="input">
<input name="q" size="10" />
</div>
<div class="button">
<input value="Search" type="submit" />
</div>
</div>
</form>
</div>
</div>
</xsl:template>
<xsl:template name="gen-header">
<div id="gaia">&#160;</div>
<div id="header">
<div id="logo">
<a href="http://code.google.com/">
<img src="http://code.google.com/images/code_sm.png"
alt="Google" />
</a>
</div>
<!-- The title for the entire docset -->
<div id="title">
<xsl:value-of select="$title" />
</div>
<div id="breadcrumbs">
<div id="nextprev">
<xsl:call-template name="emitPrevTopic">
<xsl:with-param name="start" select="." />
</xsl:call-template>
<xsl:text></xsl:text>
<xsl:call-template name="emitNextTopic">
<xsl:with-param name="start" select="." />
</xsl:call-template>
</div>
<span class="item">
<a href="http://code.google.com/">
<xsl:text>Google Code Home</xsl:text>
</a>
</span>
&gt;
<span class="item">
<a href="http://code.google.com/webtoolkit/">
<xsl:text>Google Web Toolkit</xsl:text>
</a>
</span>
&gt;
<!-- The topic location -->
<xsl:if test="location">
<xsl:apply-templates select="location/@*|location/node()" />
</xsl:if>
</div>
</div>
</xsl:template>
<xsl:template name="emitPrevTopic">
<xsl:param name="start" />
<xsl:variable name="prev"
select="$start/preceding-sibling::topic[position()=1]" />
<xsl:variable name="parentLastChild" select="$prev" />
<xsl:variable name="parent" select="$start/parent::topic" />
<xsl:choose>
<!-- if there's a previous sibling, use "last deepest child" algorithm -->
<xsl:when test="$prev/topic">
<xsl:call-template name="emitDeepestPriorChild">
<xsl:with-param name="start" select="$prev" />
</xsl:call-template>
</xsl:when>
<!-- if there's a previous sibling without a child, use it -->
<xsl:when test="$prev">
<nobr>
<a href="{$prev/id}.html">&#171; prev</a>
</nobr>
</xsl:when>
<!-- if there's a parent, use it -->
<xsl:when test="$parent">
<nobr>
<a href="{$parent/id}.html">&#171; prev</a>
</nobr>
</xsl:when>
<xsl:otherwise>
<nobr style="visibility:hidden">&#171; prev</nobr>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="emitDeepestPriorChild">
<xsl:param name="start" />
<xsl:choose>
<xsl:when test="$start/topic">
<xsl:call-template name="emitDeepestPriorChild">
<xsl:with-param name="start"
select="$start/topic[position()=last()]" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<nobr>
<a href="{$start/id}.html">&#171; prev</a>
</nobr>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="emitNextTopic">
<xsl:param name="start" />
<xsl:variable name="child" select="$start/topic[position()=1]" />
<xsl:variable name="next"
select="$start/following-sibling::topic[position()=1]" />
<xsl:variable name="parentNext"
select="$start/ancestor::topic[following-sibling::topic]/following-sibling::topic" />
<xsl:choose>
<!-- if there's a first child, use it -->
<xsl:when test="$child">
<nobr>
<a href="{$child/id}.html">next &#187;</a>
</nobr>
</xsl:when>
<!-- if there's a next sibling, use it -->
<xsl:when test="$next">
<nobr>
<a href="{$next/id}.html">next &#187;</a>
</nobr>
</xsl:when>
<!-- find the first parent that has a next sibling -->
<xsl:when test="$parentNext">
<nobr>
<a href="{$parentNext/id}.html">next &#187;</a>
</nobr>
</xsl:when>
<xsl:otherwise>
<nobr style="visibility:hidden">next &#187;</nobr>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Only topics that have titles get pulled in -->
<xsl:template match="topic[title]">
<xsl:variable name="filedelim">
<xsl:text>&#10;</xsl:text>
<xsl:text>@FILE &#32;</xsl:text>
<xsl:value-of select="normalize-space(id)" />
<xsl:text>.html</xsl:text>
<xsl:text>&#10;</xsl:text>
</xsl:variable>
<xsl:value-of select="$filedelim" />
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
Google Web Toolkit
<xsl:if test="title">
-
<xsl:value-of select="title" />
</xsl:if>
</title>
<meta http-equiv="content-type"
content="text/html; charset=utf-8" />
<link href="../css/base.css" rel="stylesheet" type="text/css" />
<link href="./doc.css" rel="stylesheet" type="text/css" />
<link href="../css/print.css" rel="stylesheet" media="print"
type="text/css" />
</head>
<body>
<xsl:call-template name="gen-header" />
<xsl:call-template name="gen-side" />
<div id="body">
<!-- If there is a header, prefer it to the title -->
<xsl:choose>
<xsl:when test="header">
<xsl:apply-templates select="header/@*|header/node()" />
</xsl:when>
<xsl:otherwise>
<!-- The title for this topic -->
<h1>
<xsl:value-of select="title" />
</h1>
</xsl:otherwise>
</xsl:choose>
<!-- The topic body -->
<xsl:if test="body">
<xsl:apply-templates select="body/@*|body/node()" />
</xsl:if>
<!-- Tips -->
<xsl:for-each select="tip">
<div class="tipContainer">
<div class="tipCallout">Tip</div>
<div class="tipBody">
<xsl:apply-templates select="node()" />
</div>
</div>
</xsl:for-each>
<!-- Links to child topics -->
<xsl:if test="childIntro">
<xsl:if test="childIntro/text()">
<h2>
<xsl:value-of select="childIntro/text()" />
</h2>
</xsl:if>
<ul class="featurelist">
<xsl:for-each select="topic">
<li>
<div class="heading">
<xsl:call-template name="makeLink">
<xsl:with-param name="linkText"
select="title/node()" />
<xsl:with-param name="linkTarget" select="." />
</xsl:call-template>
</div>
<xsl:if test="synopsis">
<div>
<xsl:apply-templates select="synopsis" />
</div>
</xsl:if>
</li>
</xsl:for-each>
</ul>
</xsl:if>
<!-- See also links -->
<xsl:if test="seeAlso/link">
<div class="topicSeeAlso">
<h2>Related topics</h2>
<xsl:for-each select="seeAlso/link">
<xsl:apply-templates select="." />
<xsl:if test="position()!=last()">,</xsl:if>
</xsl:for-each>
</div>
</xsl:if>
</div>
<div id="footer">
&#169;2006 Google
<span class="noprint">
-
<a href="http://www.google.com/">
<xsl:text>Google Home</xsl:text>
</a>
-
<a href="http://www.google.com/jobs/">
<xsl:text>We're Hiring</xsl:text>
</a>
-
<a href="http://www.google.com/privacy.html">
<xsl:text>Privacy Policy</xsl:text>
</a>
-
<a href="http://www.google.com/terms_of_service.html">
<xsl:text>Terms of Service</xsl:text>
</a>
-
<a href="mailto:code@google.com">
<xsl:text>Contact Us</xsl:text>
</a>
</span>
<div id="license"
style="text-align: center; margin: 1em 0em 1em 0em">
Except as otherwise
<a
href="http://code.google.com/policies.html#restrictions">
<xsl:text>noted</xsl:text>
</a>
<xsl:text>, the content of this &#32;</xsl:text>
<xsl:text>page is licensed under the &#32;</xsl:text>
<a rel="license"
href="http://creativecommons.org/licenses/by/2.5/">
<xsl:variable name="cclicense">
Creative Commons Attribution 2.5 License
</xsl:variable>
<xsl:value-of select="normalize-space($cclicense)" />
</a>
<xsl:text>.</xsl:text>
<xsl:text disable-output-escaping="yes">
<![CDATA[<!--]]>
</xsl:text>
<rdf:RDF xmlns="http://web.resource.org/cc/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<Work rdf:about="">
<license
rdf:resource="http://creativecommons.org/licenses/by/2.5/" />
</Work>
<License
rdf:about="http://creativecommons.org/licenses/by/2.5/">
<permits
rdf:resource="http://web.resource.org/cc/Reproduction" />
<permits
rdf:resource="http://web.resource.org/cc/Distribution" />
<requires
rdf:resource="http://web.resource.org/cc/Notice" />
<requires
rdf:resource="http://web.resource.org/cc/Attribution" />
<permits
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
</License>
</rdf:RDF>
<xsl:text disable-output-escaping="yes">
<![CDATA[-->]]>
</xsl:text>
</div>
</div>
<!-- analytics -->
<script src="https://ssl.google-analytics.com/urchin.js"
type="text/javascript" />
<script type="text/javascript">
_uacct="UA-18071-1"; _uanchor=1; urchinTracker();
</script>
</body>
</html>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="link">
<xsl:variable name="testLinkBase"
select="substring-before(@ref, &quot;#&quot;)" />
<xsl:variable name="linkBase">
<xsl:if test="string-length($testLinkBase) != 0">
<xsl:value-of select="$testLinkBase" />
</xsl:if>
<xsl:if test="string-length($testLinkBase) = 0">
<xsl:value-of select="@ref" />
</xsl:if>
</xsl:variable>
<xsl:call-template name="makeLink">
<xsl:with-param name="linkRef" select="@ref" />
<xsl:with-param name="linkText" select="node()" />
<xsl:with-param name="linkTarget"
select="key('topicSearch', $linkBase)" />
</xsl:call-template>
</xsl:template>
<xsl:template name="makeLink">
<!-- This only becomes a hyperlink if the cross-ref can be resolved -->
<xsl:param name="linkRef" />
<xsl:param name="linkText" />
<xsl:param name="linkTarget" />
<xsl:choose>
<xsl:when test="$linkTarget">
<xsl:variable name="extra"
select="substring-after($linkRef, &quot;#&quot;)" />
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="$linkTarget/id" />
<xsl:text>.html</xsl:text>
<xsl:if test="string-length($extra) != 0">
<xsl:text>#</xsl:text>
<xsl:value-of select="$extra" />
</xsl:if>
</xsl:attribute>
<xsl:apply-templates select="$linkText" />
</xsl:element>
</xsl:when>
<xsl:otherwise>
<!-- plain text -->
<xsl:apply-templates select="$linkText" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>