thirdparty/jsdoctoolkit/templates/jsdoc/class.tmpl
author Mario Ferraro <fadinlight@gmail.com>
Sun, 15 Nov 2009 22:12:20 +0100
changeset 3093 d1be59b6b627
parent 3041 c8f47f0b6697
permissions -rw-r--r--
GMaps related JS changed to use new google namespace. Google is going to change permanently in the future the way to load its services, so better stay safe. Also this commit shows uses of the new melange.js module. Fixes Issue 634.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
	<head>
		<meta http-equiv="content-type" content="text/html; charset={+IO.encoding+}" />
		<meta name="generator" content="JsDoc Toolkit" />
		{! Link.base = "../"; /* all generated links will be relative to this */ !}
		<title>JsDoc Reference - {+data.alias+}</title>

		<style type="text/css">
			{+include("static/default.css")+}
		</style>
	</head>

	<body>
<!-- ============================== header ================================= -->	
		<!-- begin static/header.html -->
		{+include("static/header.html")+}
		<!-- end static/header.html -->

<!-- ============================== classes index ============================ -->
		<div id="index">
			<!-- begin publish.classesIndex -->
			{+publish.classesIndex+}
			<!-- end publish.classesIndex -->
		</div>
		
		<div id="content">
<!-- ============================== class title ============================ -->
			<h1 class="classTitle">
				{!
					var classType = "";
					
					if (data.isBuiltin()) {
						classType += "Built-In ";
					}
					
					if (data.isNamespace) {
						if (data.is('FUNCTION')) {
							classType += "Function ";
						}
						classType += "Namespace ";
					}
					else {
						classType += "Class ";
					}
				!}
				{+classType+}{+data.alias+}
			</h1>

<!-- ============================== class summary ========================== -->			
			<p class="description">
				<if test="data.augments.length"><br />Extends
					{+
						data.augments
						.sort()
						.map(
							function($) { return new Link().toSymbol($); }
						)
						.join(", ")
					+}.<br />
				</if>
			
				{+resolveLinks(data.classDesc)+}
				
				<if test="!data.isBuiltin()">{# isn't defined in any file #}
					<br /><i>Defined in: </i> {+new Link().toSrc(data.srcFile)+}.
				</if>
			</p>

<!-- ============================== constructor summary ==================== -->			
			<if test="!data.isBuiltin() && (data.isNamespace || data.is('CONSTRUCTOR'))">
			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class {+data.alias+}.">
				<caption>{+classType+}Summary</caption>
				<thead>
					<tr>
						<th scope="col">Constructor Attributes</th>
						<th scope="col">Constructor Name and Description</th>
					</tr>
				</thead>
				<tbody>
					<tr>
						<td class="attributes">{!
							if (data.isPrivate) output += "&lt;private&gt; ";
							if (data.isInner) output += "&lt;inner&gt; ";
						!}&nbsp;</td>
						<td class="nameDescription" {!if (data.comment.getTag("hilited").length){output += 'style="color: red"'}!}>
							<div class="fixedFont">
								<b>{+ new Link().toSymbol(data.alias).inner('constructor')+}</b><if test="classType != 'Namespace '">{+ makeSignature(data.params) +}</if>
							</div>
							<div class="description">{+resolveLinks(summarize(data.desc))+}</div>
						</td>
					</tr>
				</tbody>
			</table>
			</if>

<!-- ============================== properties summary ===================== -->
			<if test="data.properties.length">
				{! var ownProperties = data.properties.filter(function($){return $.memberOf == data.alias && !$.isNamespace}).sort(makeSortby("name")); !}
				<if test="ownProperties.length">
				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class {+data.alias+}.">
					<caption>Field Summary</caption>
					<thead>
						<tr>
							<th scope="col">Field Attributes</th>
							<th scope="col">Field Name and Description</th>
						</tr>
					</thead>
					<tbody>
					<for each="member" in="ownProperties">
						<tr>
							<td class="attributes">{!
								if (member.isPrivate) output += "&lt;private&gt; ";
								if (member.isInner) output += "&lt;inner&gt; ";
								if (member.isStatic) output += "&lt;static&gt; ";
								if (member.isConstant) output += "&lt;constant&gt; ";
							!}&nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont">
								<if test="member.isStatic && member.memberOf != '_global_'">{+member.memberOf+}.</if><b>{+new Link().toSymbol(member.alias).withText(member.name)+}</b>
								</div>
								<div class="description">{+resolveLinks(summarize(member.desc))+}</div>
							</td>
						</tr>
					</for>
					</tbody>
				</table>
				</if>
				
				<if test="data.inheritsFrom.length">
				<dl class="inheritsList">
				{!
					var borrowedMembers = data.properties.filter(function($) {return $.memberOf != data.alias});
					
					var contributers = [];
					borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)});
					for (var i = 0, l = contributers.length; i < l; i++) {
						output +=
							"<dt>Fields borrowed from class "+new Link().toSymbol(contributers[i])+": </dt>"
							+
							"<dd>" +
							borrowedMembers
							.filter(
								function($) { return $.memberOf == contributers[i] }
							)
							.sort(makeSortby("name"))
							.map(
								function($) { return new Link().toSymbol($.alias).withText($.name) }
							)
							.join(", ")
							+
							"</dd>";
					}
				!}
				</dl>
				</if>
			</if>

<!-- ============================== methods summary ======================== -->
			<if test="data.methods.length">
				{! var ownMethods = data.methods.filter(function($){return $.memberOf == data.alias  && !$.isNamespace}).sort(makeSortby("name")); !}
				<if test="ownMethods.length">
				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class {+data.alias+}.">
					<caption>Method Summary</caption>
					<thead>
						<tr>
							<th scope="col">Method Attributes</th>
							<th scope="col">Method Name and Description</th>
						</tr>
					</thead>
					<tbody>
					<for each="member" in="ownMethods">
						<tr>
							<td class="attributes">{!
								if (member.isPrivate) output += "&lt;private&gt; ";
								if (member.isInner) output += "&lt;inner&gt; ";
								if (member.isStatic) output += "&lt;static&gt; ";
							!}&nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont"><if test="member.isStatic && member.memberOf != '_global_'">{+member.memberOf+}.</if><b>{+new Link().toSymbol(member.alias).withText(member.name)+}</b>{+makeSignature(member.params)+}
								</div>
								<div class="description">{+resolveLinks(summarize(member.desc))+}</div>
							</td>
						</tr>
					</for>
					</tbody>
				</table>
				</if>
				
				<if test="data.inheritsFrom.length">
				<dl class="inheritsList">
				{!
					var borrowedMembers = data.methods.filter(function($) {return $.memberOf != data.alias});
					var contributers = [];
					borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)});
					for (var i = 0, l = contributers.length; i < l; i++) {
						output +=
							"<dt>Methods borrowed from class "+new Link().toSymbol(contributers[i])+": </dt>"
							+
							"<dd>" +
							borrowedMembers
							.filter(
								function($) { return $.memberOf == contributers[i] }
							)
							.sort(makeSortby("name"))
							.map(
								function($) { return new Link().toSymbol($.alias).withText($.name) }
							)
							.join(", ")
							+
							"</dd>";
					}
				
				!}
				</dl>
				</if>
			</if>
<!-- ============================== events summary ======================== -->
			<if test="data.events.length">
				{! var ownEvents = data.events.filter(function($){return $.memberOf == data.alias  && !$.isNamespace}).sort(makeSortby("name")); !}
				<if test="ownEvents.length">
				<table class="summaryTable" cellspacing="0" summary="A summary of the events documented in the class {+data.alias+}.">
					<caption>Event Summary</caption>
					<thead>
						<tr>
							<th scope="col">Event Attributes</th>
							<th scope="col">Event Name and Description</th>
						</tr>
					</thead>
					<tbody>
					<for each="member" in="ownEvents">
						<tr>
							<td class="attributes">{!
								if (member.isPrivate) output += "&lt;private&gt; ";
								if (member.isInner) output += "&lt;inner&gt; ";
								if (member.isStatic) output += "&lt;static&gt; ";
							!}&nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont"><if test="member.isStatic && member.memberOf != '_global_'">{+member.memberOf+}.</if><b>{+new Link().toSymbol(member.alias).withText(member.name)+}</b>{+makeSignature(member.params)+}
								</div>
								<div class="description">{+resolveLinks(summarize(member.desc))+}</div>
							</td>
						</tr>
					</for>
					</tbody>
				</table>
				</if>
				
				<if test="data.inheritsFrom.length">
				<dl class="inheritsList">
				{!
					var borrowedMembers = data.events.filter(function($) {return $.memberOf != data.alias});
					var contributers = [];
					borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)});
					for (var i = 0, l = contributers.length; i < l; i++) {
						output +=
							"<dt>Events borrowed from class "+new Link().toSymbol(contributers[i])+": </dt>"
							+
							"<dd>" +
							borrowedMembers
							.filter(
								function($) { return $.memberOf == contributers[i] }
							)
							.sort(makeSortby("name"))
							.map(
								function($) { return new Link().toSymbol($.alias).withText($.name) }
							)
							.join(", ")
							+
							"</dd>";
					}
				
				!}
				</dl>
				</if>
			</if>

<!-- ============================== constructor details ==================== -->		
			<if test="!data.isBuiltin() && (data.isNamespace || data.is('CONSTRUCTOR'))">
			<div class="details"><a name="constructor"> </a>
				<div class="sectionTitle">
					{+classType+}Detail
				</div>
				
				<div class="fixedFont">{!
					if (data.isPrivate) output += "&lt;private&gt; ";
					if (data.isInner) output += "&lt;inner&gt; ";
				!}
						<b>{+ data.alias +}</b><if test="classType != 'Namespace '">{+ makeSignature(data.params) +}</if>
				</div>
				
				<div class="description">
					{+resolveLinks(data.desc)+}
					<if test="data.author"><br /><i>Author: </i>{+data.author+}.</if>
				</div>
				
				<if test="data.example.length">
				<for each="example" in="data.example">
				<pre class="code">{+example+}</pre>
				</for>
				</if>
				
				
					<if test="data.params.length">
						<dl class="detailList">
						<dt class="heading">Parameters:</dt>
						<for each="item" in="data.params">
							<dt>
								{+((item.type)?""+("<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type)+"}</span> ")) : "")+} <b>{+item.name+}</b>
								<if test="item.isOptional"><i>Optional<if test="item.defaultValue">, Default: {+item.defaultValue+}</if></i></if>
							</dt>
								<dd>{+resolveLinks(item.desc)+}</dd>
						</for>
						</dl>
					</if>
					<if test="data.deprecated">
						<dl class="detailList">
						<dt class="heading">Deprecated:</dt>
						<dt>
							{+resolveLinks(data.deprecated)+}
						</dt>
						</dl>
					</if>
					<if test="data.since">
						<dl class="detailList">
						<dt class="heading">Since:</dt>
							<dd>{+ data.since +}</dd>
						</dl>
					</if>
					<if test="data.exceptions.length">
						<dl class="detailList">
						<dt class="heading">Throws:</dt>
						<for each="item" in="data.exceptions">
							<dt>
								{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+} <b>{+item.name+}</b>
							</dt>
								<dd>{+resolveLinks(item.desc)+}</dd>
						</for>
						</dl>
					</if>
					<if test="data.returns.length">
						<dl class="detailList">
						<dt class="heading">Returns:</dt>
						<for each="item" in="data.returns">
								<dd>{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}{+resolveLinks(item.desc)+}</dd>
						</for>
						</dl>
					</if>
					<if test="data.requires.length">
						<dl class="detailList">
						<dt class="heading">Requires:</dt>
						<for each="item" in="data.requires">
							<dd>{+ resolveLinks(item) +}</dd>
						</for>
						</dl>
					</if>
					<if test="data.see.length">
						<dl class="detailList">
						<dt class="heading">See:</dt>
						<for each="item" in="data.see">
							<dd>{+ new Link().toSymbol(item) +}</dd>
						</for>
						</dl>
					</if>

			</div>
			</if>

<!-- ============================== field details ========================== -->		
			<if test="defined(ownProperties) && ownProperties.length">
				<div class="sectionTitle">
					Field Detail
				</div>
				<for each="member" in="ownProperties">
					<a name="{+Link.symbolNameToLinkName(member)+}"> </a>
					<div class="fixedFont">{!
						if (member.isPrivate) output += "&lt;private&gt; ";
						if (member.isInner) output += "&lt;inner&gt; ";
						if (member.isStatic) output += "&lt;static&gt; ";
						if (member.isConstant) output += "&lt;constant&gt; ";
					!}
					
					<if test="member.type"><span class="light">{{+new Link().toSymbol(member.type)+}}</span></if>
					<if test="member.isStatic && member.memberOf != '_global_'"><span class="light">{+member.memberOf+}.</span></if><b>{+member.name+}</b>
					
					</div>
					<div class="description">
						{+resolveLinks(member.desc)+}
						<if test="member.srcFile != data.srcFile">
							<br />
							<i>Defined in: </i> {+new Link().toSrc(member.srcFile)+}.
						</if>
						<if test="member.author"><br /><i>Author: </i>{+member.author+}.</if>
					</div>
					
					<if test="member.example.length">
					<for each="example" in="member.example">
					<pre class="code">{+example+}</pre>
					</for>
					</if>

						<if test="member.deprecated">
							<dl class="detailList">
							<dt class="heading">Deprecated:</dt>
							<dt>
								{+ resolveLinks(member.deprecated) +}
							</dt>
							</dl>
						</if>
						<if test="member.since">
							<dl class="detailList">
							<dt class="heading">Since:</dt>
								<dd>{+ member.since +}</dd>
							</dl>
						</if>
						<if test="member.see.length">
							<dl class="detailList">
							<dt class="heading">See:</dt>
							<for each="item" in="member.see">
							<dd>{+ new Link().toSymbol(item) +}</dd>
							</for>
							</dl>
						</if>
						<if test="member.defaultValue">
							<dl class="detailList">
							<dt class="heading">Default Value:</dt>
							<dd>
								{+resolveLinks(member.defaultValue)+}
							</dd>
							</dl>
						</if>

					<if test="!$member_last"><hr /></if>
				</for>
			</if>

<!-- ============================== method details ========================= -->		
			<if test="defined(ownMethods) && ownMethods.length">
				<div class="sectionTitle">
					Method Detail
				</div>
				<for each="member" in="ownMethods">
					<a name="{+Link.symbolNameToLinkName(member)+}"> </a>
					<div class="fixedFont">{!
						if (member.isPrivate) output += "&lt;private&gt; ";
						if (member.isInner) output += "&lt;inner&gt; ";
						if (member.isStatic) output += "&lt;static&gt; ";
					!}
					
					<if test="member.type"><span class="light">{{+new Link().toSymbol(member.type)+}}</span></if>
					<if test="member.isStatic && member.memberOf != '_global_'"><span class="light">{+member.memberOf+}.</span></if><b>{+member.name+}</b>{+makeSignature(member.params)+}
					
					</div>
					<div class="description">
						{+resolveLinks(member.desc)+}
						<if test="member.srcFile != data.srcFile">
							<br />
							<i>Defined in: </i> {+new Link().toSrc(member.srcFile)+}.
						</if>
						<if test="member.author"><br /><i>Author: </i>{+member.author+}.</if>
					</div>
					
					<if test="member.example.length">
					<for each="example" in="member.example">
					<pre class="code">{+example+}</pre>
					</for>
					</if>
					
						<if test="member.params.length">
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
							<for each="item" in="member.params">
								<dt>
									{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}<b>{+item.name+}</b>
									<if test="item.isOptional"><i>Optional<if test="item.defaultValue">, Default: {+item.defaultValue+}</if></i></if>
								</dt>
								<dd>{+resolveLinks(item.desc)+}</dd>
							</for>
							</dl>
						</if>
						<if test="member.deprecated">
							<dl class="detailList">
							<dt class="heading">Deprecated:</dt>
							<dt>
								{+ resolveLinks(member.deprecated) +}
							</dt>
							</dl>
						</if>
						<if test="member.since">
							<dl class="detailList">
							<dt class="heading">Since:</dt>
								<dd>{+ member.since +}</dd>
							</dl>
							</dl>
						</if>
						<if test="member.exceptions.length">
							<dl class="detailList">
							<dt class="heading">Throws:</dt>
							<for each="item" in="member.exceptions">
								<dt>
									{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+} <b>{+item.name+}</b>
								</dt>
								<dd>{+resolveLinks(item.desc)+}</dd>
							</for>
							</dl>
						</if>
						<if test="member.returns.length">
							<dl class="detailList">
							<dt class="heading">Returns:</dt>
							<for each="item" in="member.returns">
								<dd>{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}{+resolveLinks(item.desc)+}</dd>
							</for>
							</dl>
						</if>
						<if test="member.requires.length">
							<dl class="detailList">
							<dt class="heading">Requires:</dt>
							<for each="item" in="member.requires">
								<dd>{+ resolveLinks(item) +}</dd>
							</for>
							</dl>
						</if>
						<if test="member.see.length">
							<dl class="detailList">
							<dt class="heading">See:</dt>
							<for each="item" in="member.see">
								<dd>{+ new Link().toSymbol(item) +}</dd>
							</for>
							</dl>
						</if>

					<if test="!$member_last"><hr /></if>
				</for>
			</if>
			
<!-- ============================== event details ========================= -->		
			<if test="defined(ownEvents) && ownEvents.length">
				<div class="sectionTitle">
					Event Detail
				</div>
				<for each="member" in="ownEvents">
					<a name="event:{+Link.symbolNameToLinkName(member)+}"> </a>
					<div class="fixedFont">{!
						if (member.isPrivate) output += "&lt;private&gt; ";
						if (member.isInner) output += "&lt;inner&gt; ";
						if (member.isStatic) output += "&lt;static&gt; ";
					!}
					
					<if test="member.type"><span class="light">{{+new Link().toSymbol(member.type)+}}</span></if>
					<if test="member.isStatic && member.memberOf != '_global_'"><span class="light">{+member.memberOf+}.</span></if><b>{+member.name+}</b>{+makeSignature(member.params)+}
					
					</div>
					<div class="description">
						{+resolveLinks(member.desc)+}
						<if test="member.srcFile != data.srcFile">
							<br />
							<i>Defined in: </i> {+new Link().toSrc(member.srcFile)+}.
						</if>
						<if test="member.author"><br /><i>Author: </i>{+member.author+}.</if>
					</div>
					
					<if test="member.example.length">
					<for each="example" in="member.example">
					<pre class="code">{+example+}</pre>
					</for>
					</if>
					
						<if test="member.params.length">
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
							<for each="item" in="member.params">
								<dt>
									{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}<b>{+item.name+}</b>
									<if test="item.isOptional"><i>Optional<if test="item.defaultValue">, Default: {+item.defaultValue+}</if></i></if>
								</dt>
								<dd>{+ resolveLinks(item.desc) +}</dd>
							</for>
							</dl>
						</if>
						<if test="member.deprecated">
							<dl class="detailList">
							<dt class="heading">Deprecated:</dt>
							<dt>
								{+ resolveLinks(member.deprecated) +}
							</dt>
							</dl>
						</if>
						<if test="member.since">
							<dl class="detailList">
							<dt class="heading">Since:</dt>
								<dd>{+ member.since +}</dd>
							</dl>
							</dl>
						</if>
						<if test="member.exceptions.length">
							<dl class="detailList">
							<dt class="heading">Throws:</dt>
							<for each="item" in="member.exceptions">
								<dt>
									{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+} <b>{+item.name+}</b>
								</dt>
								<dd>{+ resolveLinks(item.desc) +}</dd>
							</for>
							</dl>
						</if>
						<if test="member.returns.length">
							<dl class="detailList">
							<dt class="heading">Returns:</dt>
							<for each="item" in="member.returns">
								<dd>{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}{+resolveLinks(item.desc)+}</dd>
							</for>
							</dl>
						</if>
						<if test="member.requires.length">
							<dl class="detailList">
							<dt class="heading">Requires:</dt>
							<for each="item" in="member.requires">
								<dd>{+ resolveLinks(item) +}</dd>
							</for>
							</dl>
						</if>
						<if test="member.see.length">
							<dl class="detailList">
							<dt class="heading">See:</dt>
							<for each="item" in="member.see">
								<dd>{+ new Link().toSymbol(item) +}</dd>
							</for>
							</dl>
						</if>

					<if test="!$member_last"><hr /></if>
				</for>
			</if>
			
			<hr />
		</div>

		
<!-- ============================== footer ================================= -->
		<div class="fineprint" style="clear:both">
			<if test="JSDOC.opt.D.copyright">&copy;{+JSDOC.opt.D.copyright+}<br /></if>
			Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> {+JSDOC.VERSION+} on {+new Date()+}
		</div>
	</body>
</html>