summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/doc/html/page/Template.scala
diff options
context:
space:
mode:
authorGilles Dubochet <gilles.dubochet@epfl.ch>2010-08-19 14:04:09 +0000
committerGilles Dubochet <gilles.dubochet@epfl.ch>2010-08-19 14:04:09 +0000
commit16adcd1fa8abcdf8e5767d42f5b52409e3a5e294 (patch)
tree2a66cd04cadead8499281e102f04962eaf10785b /src/compiler/scala/tools/nsc/doc/html/page/Template.scala
parent1ededc1ab0be9565ab75f971cba7604ce977803c (diff)
downloadscala-16adcd1fa8abcdf8e5767d42f5b52409e3a5e294.tar.gz
scala-16adcd1fa8abcdf8e5767d42f5b52409e3a5e294.tar.bz2
scala-16adcd1fa8abcdf8e5767d42f5b52409e3a5e294.zip
[scaladoc] Merges Petr's change to Scaladoc fro...
[scaladoc] Merges Petr's change to Scaladoc from the Colladoc branch: bugfixes, improvements and refactorings that make it possible to extends Scaladoc into Colladoc. - Layout of index uses jQuery UI panel instead of frameset. - Search boxes have correct width on Firefox. - Scaladoc models the original, untransformed source. - Various internal bugfixes & refactorings. Review by dubochet.
Diffstat (limited to 'src/compiler/scala/tools/nsc/doc/html/page/Template.scala')
-rw-r--r--src/compiler/scala/tools/nsc/doc/html/page/Template.scala69
1 files changed, 39 insertions, 30 deletions
diff --git a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala
index a4c100884b..3001a1dc5a 100644
--- a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala
+++ b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala
@@ -18,14 +18,16 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage {
val path =
templateToPath(tpl)
- val title = tpl.universe.settings.doctitle.value + " (" + tpl.universe.settings.docversion.value + ") — " + tpl.qualifiedName
+ val title =
+ tpl.qualifiedName
val headers =
<xml:group>
- <link href={ relativeLinkTo(List("template.css", "lib")) } media="screen" type="text/css" rel="stylesheet"/>
- <script type="text/javascript" src={ relativeLinkTo{List("jquery.js", "lib")} }></script>
- <script type="text/javascript" src={ relativeLinkTo{List("tools.tooltip.js", "lib")} }></script>
+ <link href={ relativeLinkTo{List("template.css", "lib")} } media="screen" type="text/css" rel="stylesheet"/>
+ <script type="text/javascript" src={ relativeLinkTo{List("jquery.js", "lib")} }></script>
+ <script type="text/javascript" src={ relativeLinkTo{List("jquery-ui.js", "lib")} }></script>
<script type="text/javascript" src={ relativeLinkTo{List("template.js", "lib")} }></script>
+ <script type="text/javascript" src={ relativeLinkTo{List("tools.tooltip.js", "lib")} }></script>
</xml:group>
val valueMembers =
@@ -62,7 +64,7 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage {
<div id="template">
<div id="mbrsel">
- <div id='textfilter'><span class='pre'/><input type='text' accesskey='/'/><span class='post'/></div>
+ <div id='textfilter'><span class='pre'/><span class='input'><input type='text' accesskey='/'/></span><span class='post'/></div>
{ if (tpl.linearization.isEmpty) NodeSeq.Empty else
<div id="order">
<span class="filtertype">Ordering</span>
@@ -174,19 +176,14 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage {
</li>
}
- def memberToCommentHtml(mbr: MemberEntity, isSelf: Boolean): NodeSeq = {
- val useCaseCommentHtml = mbr match {
- case nte: NonTemplateMemberEntity if nte.isUseCase =>
- inlineToHtml(comment.Text("[use case] "))
- case _ => NodeSeq.Empty
- }
+ def memberToCommentHtml(mbr: MemberEntity, isSelf: Boolean): NodeSeq =
mbr match {
case dte: DocTemplateEntity if isSelf =>
// comment of class itself
<div id="comment" class="fullcomment">{ memberToCommentBodyHtml(mbr, isSelf = true) }</div>
case dte: DocTemplateEntity if mbr.comment.isDefined =>
// comment of inner, documented class (only short comment, full comment is on the class' own page)
- <p class="comment cmt">{ inlineToHtml(mbr.comment.get.short) }</p>
+ memberToInlineCommentHtml(mbr, isSelf)
case _ =>
// comment of non-class member or non-documentented inner class
val commentBody = memberToCommentBodyHtml(mbr, isSelf = false)
@@ -194,17 +191,29 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage {
NodeSeq.Empty
else {
<xml:group>
- { if (mbr.comment.isEmpty) NodeSeq.Empty else {
- <p class="shortcomment cmt">{ useCaseCommentHtml }{ inlineToHtml(mbr.comment.get.short) }</p>
- }
- }
- <div class="fullcomment">{ useCaseCommentHtml }{ memberToCommentBodyHtml(mbr, isSelf) }</div>
+ { memberToShortCommentHtml(mbr, isSelf) }
+ <div class="fullcomment">{ memberToUseCaseCommentHtml(mbr, isSelf) }{ memberToCommentBodyHtml(mbr, isSelf) }</div>
</xml:group>
}
}
- }
- def memberToCommentBodyHtml(mbr: MemberEntity, isSelf: Boolean): NodeSeq =
+ def memberToUseCaseCommentHtml(mbr: MemberEntity, isSelf: Boolean): NodeSeq =
+ mbr match {
+ case nte: NonTemplateMemberEntity if nte.isUseCase =>
+ inlineToHtml(comment.Text("[use case] "))
+ case _ => NodeSeq.Empty
+ }
+
+ def memberToShortCommentHtml(mbr: MemberEntity, isSelf: Boolean): NodeSeq =
+ if (mbr.comment.isEmpty)
+ NodeSeq.Empty
+ else
+ <p class="shortcomment cmt">{ memberToUseCaseCommentHtml(mbr, isSelf) }{ inlineToHtml(mbr.comment.get.short) }</p>
+
+ def memberToInlineCommentHtml(mbr: MemberEntity, isSelf: Boolean): NodeSeq =
+ <p class="comment cmt">{ inlineToHtml(mbr.comment.get.short) }</p>
+
+ def memberToCommentBodyHtml(mbr: MemberEntity, isSelf: Boolean, isReduced: Boolean = false): NodeSeq =
NodeSeq.Empty ++
{ if (mbr.comment.isEmpty) NodeSeq.Empty else
<div class="comment cmt">{ commentToHtml(mbr.comment) }</div>
@@ -250,13 +259,13 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage {
}
} ++
{ val fvs: List[comment.Paragraph] = visibility(mbr).toList ::: mbr.flags
- if (fvs.isEmpty) NodeSeq.Empty else
+ if (fvs.isEmpty || isReduced) NodeSeq.Empty else
<div class="block">
attributes: { fvs map { fv => { inlineToHtml(fv.text) ++ xml.Text(" ") } } }
</div>
} ++
{ tpl.companion match {
- case Some(companion) if isSelf =>
+ case Some(companion) if (isSelf && !isReduced) =>
<div class="block">
go to: <a href={relativeLinkTo(companion)}>companion</a>
</div>
@@ -265,14 +274,14 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage {
}
} ++
{ val inDefTpls = mbr.inDefinitionTemplates
- if (inDefTpls.tail.isEmpty && (inDefTpls.head == mbr.inTemplate)) NodeSeq.Empty else {
+ if ((inDefTpls.tail.isEmpty && (inDefTpls.head == mbr.inTemplate)) || isReduced) NodeSeq.Empty else {
<div class="block">
definition classes: { templatesToHtml(inDefTpls, xml.Text(" → ")) }
</div>
}
} ++
{ mbr match {
- case dtpl: DocTemplateEntity if (isSelf && !dtpl.linearization.isEmpty) =>
+ case dtpl: DocTemplateEntity if (isSelf && !dtpl.linearization.isEmpty && !isReduced) =>
<div class="block">
linear super types: { typesToHtml(dtpl.linearizationTypes, hasLinks = true, sep = xml.Text(", ")) }
</div>
@@ -280,7 +289,7 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage {
}
} ++
{ mbr match {
- case dtpl: DocTemplateEntity if (isSelf && !dtpl.subClasses.isEmpty) =>
+ case dtpl: DocTemplateEntity if (isSelf && !dtpl.subClasses.isEmpty && !isReduced) =>
<div class="block">
known subclasses: { templatesToHtml(dtpl.subClasses, xml.Text(", ")) }
</div>
@@ -288,7 +297,7 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage {
}
} ++
{ mbr match {
- case dtpl: DocTemplateEntity if (isSelf && !dtpl.selfType.isEmpty) =>
+ case dtpl: DocTemplateEntity if (isSelf && !dtpl.selfType.isEmpty && !isReduced) =>
<div class="block">
self type: { typeToHtml(dtpl.selfType.get, hasLinks = true) }
</div>
@@ -296,7 +305,7 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage {
}
} ++
{ mbr match {
- case dtpl: DocTemplateEntity if (isSelf && dtpl.sourceUrl.isDefined && dtpl.inSource.isDefined) =>
+ case dtpl: DocTemplateEntity if (isSelf && dtpl.sourceUrl.isDefined && dtpl.inSource.isDefined && !isReduced) =>
val (absFile, line) = dtpl.inSource.get
<div class="block">
source: { <a href={ dtpl.sourceUrl.get.toString }>{ Text(absFile.file.getName) }</a> }
@@ -304,7 +313,7 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage {
case _ => NodeSeq.Empty
}
} ++
- { if (mbr.deprecation.isEmpty) NodeSeq.Empty else
+ { if (mbr.deprecation.isEmpty || isReduced) NodeSeq.Empty else
<div class="block"><ol>deprecated:
{ <li>{ bodyToHtml(mbr.deprecation.get) }</li> }
</ol></div>
@@ -312,19 +321,19 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage {
{ mbr.comment match {
case Some(comment) =>
<xml:group>
- { if(!comment.version.isEmpty)
+ { if(!comment.version.isEmpty && !isReduced)
<div class="block"><ol>version
{ for(body <- comment.version.toList) yield <li>{bodyToHtml(body)}</li> }
</ol></div>
else NodeSeq.Empty
}
- { if(!comment.since.isEmpty)
+ { if(!comment.since.isEmpty && !isReduced)
<div class="block"><ol>since
{ for(body <- comment.since.toList) yield <li>{bodyToHtml(body)}</li> }
</ol></div>
else NodeSeq.Empty
}
- { if(!comment.see.isEmpty)
+ { if(!comment.see.isEmpty && !isReduced)
<div class="block"><ol>see also:
{ val seeXml:List[scala.xml.NodeSeq]=(for(see <- comment.see ) yield <li>{bodyToHtml(see)}</li> )
seeXml.reduceLeft(_ ++ Text(", ") ++ _)