package org.scala_tools.vscaladoc
import scala.xml.{NodeSeq, Text}
import java.io.File
import scala.tools.nsc.Global
/**
* Singleton services Factory/locator use to access other services and components.
*
* @author David Bernard
*/
object Services {
//
// val stylesheetSetting = settings.stylesheetfile
//
// def pageHeader = load(settings.pageheader.value)
// def pageFooter = load(settings.pagefooter.value)
// def pageTop = load(settings.pagetop.value)
// def pageBottom = load(settings.pagebottom.value)
/**
* central configuration
*/
object cfg {
var encodingString = "UTF-8"
var versionString = "0.1-SNAPSHOT"
var pageHeader: NodeSeq = Text("header")
var pageFooter: NodeSeq = Text("footer")
var windowTitle = "API"
var overviewTitle: NodeSeq = Text("Overview")
var sourcedir = new File(".")
var outputdir = new File(".")
var htmlizeSource = true
var global: Global = _ //TODO: try to remove dependency to global
}
/** @codeAsDoc */
lazy val fileHelper = new FileHelper(cfg.sourcedir)
/** @codeAsDoc */
lazy val linkHelper = new LinkHelper(cfg.outputdir, fileHelper, cfg.global)
/** @codeAsDoc */
lazy val modelHelper = new ModelHelper()
lazy val sourceHtmlizer : SourceHtmlizer = {
if (cfg.htmlizeSource) {
new SourceHtmlizerOn(cfg.sourcedir, cfg.outputdir, fileHelper, linkHelper)
} else {
new SourceHtmlizerOff()
}
}
/** @codeAsDoc */
lazy val htmlRenderer = new HtmlRenderer(cfg.outputdir, fileHelper)
}