package org.scala_tools.vscaladoc
import scala.tools.nsc._
import java.io.{File, FileWriter}
import java.net.{URI, URLEncoder}
//import scala.collection.jcl
//import scala.compat.Platform.{EOL => LINE_SEPARATOR}
import scala.xml.{NodeSeq, Text, Unparsed, Utility}
//TODO : copy from source directory
/**
* @author David Bernard
*/
class HtmlRenderer(outputDir: File, fh: FileHelper) {
def render(allPackages: Iterable[ModelExtractor#Package], allClasses: Iterable[ModelExtractor#ClassOrObject]) {
copyResources()
val allPkgSorted = allPackages.toList.sort(_.name.toLowerCase < _.name.toLowerCase)
val page4overview = new Page4Overview(allPkgSorted)
page4overview.save(outputDir)
val page4allClasses = new Page4AllClasses(allPkgSorted, allClasses)
page4allClasses.save(outputDir)
val page4index = new Page4Index(page4allClasses, page4overview)
page4index.save(outputDir)
allClasses.foreach(cls => new Page4ClassOrObject(cls, allClasses).save(outputDir))
}
def copyResources() {
val loader = this.getClass().getClassLoader()
val buf = new Array[Byte](1024)
def copyResource(name: String) = fh.copyResource("org/scala_tools/vscaladoc/", name, outputDir, loader, buf)
copyResource("reset.css")
copyResource("jquery-1.2.3.js")
copyResource("all-classes.js")
copyResource("all-classes.css")
copyResource("content.js")
copyResource("content.css")
copyResource("_highlighter/clipboard.swf")
copyResource("_highlighter/shAll.js")
copyResource("_highlighter/SyntaxHighlighter.css")
copyResource("_images/class.png")
copyResource("_images/object.png")
copyResource("_images/trait.png")
}
}