src/Tools/jEdit/src/jedit/UserAgent.scala
author immler@in.tum.de
Mon, 03 Nov 2008 16:57:32 +0100
changeset 34353 aa0d2f0bde83
child 34407 aad6834ba380
permissions -rw-r--r--
UserAgent as seperate class, moved stylesheets, baseURL to UserAgent

package isabelle.jedit

import java.io.ByteArrayInputStream
import org.xhtmlrenderer.swing.NaiveUserAgent
import org.xhtmlrenderer.resource.CSSResource
import isabelle.IsabelleSystem.getenv

object UserAgent {
  val baseURL = "file://localhost" + getenv("ISABELLE_HOME") + "/lib/html/"
  val userStylesheet =  "file://localhost" + getenv("ISABELLE_HOME_USER") + "/etc/user.css";
  val stylesheet = """

@import "isabelle.css";

@import '""" + userStylesheet + """';

messages, message {
  display: block;
  white-space: pre-wrap;
  font-family: Isabelle;
}
""" 
}

class UserAgent extends NaiveUserAgent {
  override def getCSSResource(uri : String) : CSSResource = {
    if (uri == UserAgent.baseURL + "style")
      new CSSResource(
        new ByteArrayInputStream(UserAgent.stylesheet.getBytes()))
    else {
      val stream = resolveAndOpenStream(uri)
      val resource = new CSSResource(stream)
      if (stream == null)
        resource.getResourceInputSource().setByteStream(
          new ByteArrayInputStream(new Array[Byte](0)))
      resource
    }
  }
}