summaryrefslogblamecommitdiff
path: root/src/compiler/scala/tools/nsc/doc/html/page/ReferenceIndex.scala
blob: a76cc231b435816878c998ac8e6f21d4e4f3a779 (plain) (tree)
1
2
3
4
5
6
7
8
9
                            
                                






                            
                  
 
                                                                                           
 
                                                   









                                                                                                                    
                                                                                               
                
 























                                                                      
            



                                                         

 
/* NSC -- new Scala compiler
 * Copyright 2007-2011 LAMP/EPFL
 * @author  Pedro Furlanetto
 */

package scala.tools.nsc
package doc
package html
package page
import doc.model._

class ReferenceIndex(letter: Char, index: doc.Index, 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>


  private def entry(name: String, methods: Iterable[MemberEntity]) = {
    val occurrences = methods.map(method => {
      val html = templateToHtml(method.inDefinitionTemplates.head)
      if (method.deprecation.isDefined) {
        <strike>{ html }</strike>
      } else {
        html
      }
    })

    <div class="entry">
      <div class="name">{
        if (methods.find { ! _.deprecation.isDefined } != None)
          name
        else
          <strike>{ name }</strike>
      }</div>
      <div class="occurrences">{
        for (owner <- occurrences) yield owner ++ xml.Text(" ")
      }</div>
    </div>
  }

  def body =
    <body>{
      for(groups <- index.firstLetterIndex(letter)) yield
        entry(groups._1, groups._2.view)
    }</body>

}