| <?xml version="1.0"?> |
| |
| <!-- |
| Copyright 2007 Google Inc. |
| |
| Licensed 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. |
| --> |
| <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="./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 id="searchbox_015986126177484454297:pfmwlvdl42y" action="http://www.google.com/cse"> |
| <input type="hidden" name="cx" value="015986126177484454297:pfmwlvdl42y" /> |
| <input type="hidden" name="cof" value="FORID:0" /> |
| <div class="header">Search Google Code:</div> |
| <input name="q" type="text" size="20" /> |
| <input type="submit" name="sa" value="Search" /><br/> |
| </form> |
| <script type="text/javascript" src="http://google.com/coop/cse/brand?form=searchbox_015986126177484454297:pfmwlvdl42y"></script> |
| </div> |
| |
| </div> |
| </xsl:template> |
| |
| <xsl:template name="gen-header"> |
| <div id="gaia"> </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> |
| > |
| <span class="item"> |
| <a href="http://code.google.com/webtoolkit/"> |
| <xsl:text>Google Web Toolkit</xsl:text> |
| </a> |
| </span> |
| > |
| <!-- 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">« prev</a> |
| </nobr> |
| </xsl:when> |
| <!-- if there's a parent, use it --> |
| <xsl:when test="$parent"> |
| <nobr> |
| <a href="{$parent/id}.html">« prev</a> |
| </nobr> |
| </xsl:when> |
| <xsl:otherwise> |
| <nobr style="visibility:hidden">« 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">« 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 »</a> |
| </nobr> |
| </xsl:when> |
| <!-- if there's a next sibling, use it --> |
| <xsl:when test="$next"> |
| <nobr> |
| <a href="{$next/id}.html">next »</a> |
| </nobr> |
| </xsl:when> |
| <!-- find the first parent that has a next sibling --> |
| <xsl:when test="$parentNext"> |
| <nobr> |
| <a href="{$parentNext/id}.html">next »</a> |
| </nobr> |
| </xsl:when> |
| <xsl:otherwise> |
| <nobr style="visibility:hidden">next »</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> </xsl:text> |
| <xsl:text>@FILE  </xsl:text> |
| <xsl:value-of select="normalize-space(id)" /> |
| <xsl:text>.html</xsl:text> |
| <xsl:text> </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> |
| |
| <xsl:if test="topic"> |
| <ul class="childToc"> |
| <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 class="synopsis"> |
| <xsl:apply-templates select="synopsis/node()" /> |
| </div> |
| </xsl:if> |
| |
| <xsl:if test="topic"> |
| <ul> |
| <xsl:for-each select="topic"> |
| <li> |
| <xsl:call-template name="makeLink"> |
| <xsl:with-param name="linkText" |
| select="title/node()" /> |
| <xsl:with-param name="linkTarget" select="." /> |
| </xsl:call-template> |
| <xsl:if test="position() != last()">,</xsl:if> |
| </li> |
| </xsl:for-each> |
| </ul> |
| </xsl:if> |
| |
| </li> |
| |
| </xsl:for-each> |
| </ul> |
| </xsl:if> |
| </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"> |
| ©2007 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  </xsl:text> |
| |
| <xsl:text>page is licensed under the  </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, "#")" /> |
| <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, "#")" /> |
| <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> |