summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/doc/html/page/ReferenceIndex.scala
diff options
context:
space:
mode:
authorPedro Furlanetto <pedrofurla@gmail.com>2010-09-16 04:55:45 +0000
committerPedro Furlanetto <pedrofurla@gmail.com>2010-09-16 04:55:45 +0000
commite57245492c143186033a7ffa9555988338f5f509 (patch)
tree65a0b93b97ceeef8abae2956aaded94ff27586de /src/compiler/scala/tools/nsc/doc/html/page/ReferenceIndex.scala
parent18a4de80a9f73b279528262e51f530d879efd5d9 (diff)
downloadscala-e57245492c143186033a7ffa9555988338f5f509.tar.gz
scala-e57245492c143186033a7ffa9555988338f5f509.tar.bz2
scala-e57245492c143186033a7ffa9555988338f5f509.zip
Adds a reference index to the documentation.
Currently there is no link from the main index but can be viewed by replacing 'index.html' with 'index/index-a.html' in the browser address bar. Review by dubochet.
Diffstat (limited to 'src/compiler/scala/tools/nsc/doc/html/page/ReferenceIndex.scala')
-rwxr-xr-xsrc/compiler/scala/tools/nsc/doc/html/page/ReferenceIndex.scala54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/doc/html/page/ReferenceIndex.scala b/src/compiler/scala/tools/nsc/doc/html/page/ReferenceIndex.scala
new file mode 100755
index 0000000000..124b6852ba
--- /dev/null
+++ b/src/compiler/scala/tools/nsc/doc/html/page/ReferenceIndex.scala
@@ -0,0 +1,54 @@
+/* NSC -- new Scala compiler
+ * Copyright 2007-2010 LAMP/EPFL
+ * @author Pedro Furlanetto
+ */
+
+package scala.tools.nsc
+package doc
+package html
+package page
+
+
+class ReferenceIndex(letter: Char, indexModel: model.IndexModelFactory#IndexModel, universe: Universe) extends HtmlPage {
+
+ def path = List("index-"+letter+".html","index")
+
+ def title = {
+ val s = universe.settings
+ ( if (!s.doctitle.isDefault) s.doctitle.value else "" ) +
+ ( if (!s.docversion.isDefault) (" " + s.docversion.value) else "" )
+ }
+
+ def headers =
+ <xml:group>
+ <link href={ relativeLinkTo(List("ref-index.css", "lib")) } media="screen" type="text/css" rel="stylesheet"/>
+ <script type="text/javascript" src={ relativeLinkTo{List("jquery.js", "lib")} }></script>
+ </xml:group>
+ val groupedMembers = indexModel(letter)
+ def indexLinks =
+ <div class="letters">
+ { for(l <- indexModel.keySet.toList.sortBy( _.toString )) yield { // TODO there should be a better way to do that
+ val ch = if(l=='#') "%23" else l // url encoding if needed
+ ( if(letter != l)
+ <span><a href={"index-"+ch+".html"}>{l.toUpper}</a></span>
+ else
+ xml.Text(l.toUpper.toString) ) ++ xml.Text(" | ")
+ } }
+ </div>
+
+ def body =
+ <body>
+ { indexLinks }
+ { for(groups <- groupedMembers) yield {
+ <div class="entry">
+ <div class="name">{ groups._1 }</div>
+ <div class="occurrences">
+ { for(owner <- groups._2.view) yield {
+ templateToHtml(owner) ++ xml.Text(" ")
+ } }
+ </div>
+ </div>
+ } }
+ </body>
+
+}