summaryrefslogtreecommitdiff
path: root/src/scaladoc/scala/tools/nsc/doc/html/page/DeprecatedIndex.scala
blob: f257153bd7be2efd533a2ca86920aad9e93c48f7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/* NSC -- new Scala compiler
 * Copyright 2007-2013 LAMP/EPFL
 */

package scala
package tools
package nsc
package doc
package html
package page

import doc.model._

class DeprecatedIndex(universe: Universe, index: doc.Index) extends HtmlPage {

  def path = List("deprecated-list.html")

  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.filter(_.deprecation.isDefined).map(method =>
      templateToHtml(method.inDefinitionTemplates.head)
    ).toList.distinct

    <div class="entry">
      <div class="name">{ name }</div>
      <div class="occurrences">{
        for (owner <- occurrences) yield owner ++ scala.xml.Text(" ")
      }</div>
    </div>
  }

  def deprecatedEntries = {
    val available =  ('_' +: ('a' to 'z')).flatMap(index.firstLetterIndex.get)

    for (group <- available;
         value <- group if value._2.find(_.deprecation.isDefined).isDefined)
       yield value
  }

  def body =
    <body>{
      for(value <- deprecatedEntries) yield
        entry(value._1, value._2.view)
    }</body>

}