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

package isabelle.jedit


import java.awt.GridLayout
import javax.swing.{ JPanel, JScrollPane }

import isabelle.IsabelleSystem.getenv

import org.w3c.dom.Document

import org.xhtmlrenderer.simple.XHTMLPanel
import org.xhtmlrenderer.context.AWTFontResolver

import org.gjt.sp.jedit.View

class StateViewDockable(view : View, position : String) extends JPanel {
  {
    val panel = new XHTMLPanel(new UserAgent())
    setLayout(new GridLayout(1, 1))
    add(new JScrollPane(panel))
    
    val fontResolver =
      panel.getSharedContext.getFontResolver.asInstanceOf[AWTFontResolver]
    if (Plugin.plugin.viewFont != null)
      fontResolver.setFontMapping("Isabelle", Plugin.plugin.viewFont)

    Plugin.plugin.viewFontChanged.add(font => {
      if (Plugin.plugin.viewFont != null)
        fontResolver.setFontMapping("Isabelle", Plugin.plugin.viewFont)
      
      panel.relayout()
    })
    
    Plugin.plugin.stateUpdate.add(state => {
      if (state == null)
        panel.setDocument(null : Document)
      else
        panel.setDocument(state.document, UserAgent.baseURL)
    })
  }
}