1/* Title: Tools/jEdit/src/syslog_dockable.scala 2 Author: Makarius 3 4Dockable window for syslog. 5*/ 6 7package isabelle.jedit 8 9 10import isabelle._ 11import isabelle.jedit_base.Dockable 12 13import scala.swing.{TextArea, ScrollPane} 14 15import org.gjt.sp.jedit.View 16 17 18class Syslog_Dockable(view: View, position: String) extends Dockable(view, position) 19{ 20 /* GUI components */ 21 22 private val syslog = new TextArea() 23 24 private def syslog_delay = GUI_Thread.delay_first(PIDE.options.seconds("editor_update_delay")) 25 { 26 val text = PIDE.session.syslog_content() 27 if (text != syslog.text) syslog.text = text 28 } 29 30 set_content(new ScrollPane(syslog)) 31 32 33 /* main */ 34 35 private val main = 36 Session.Consumer[Prover.Output](getClass.getName) { case _ => syslog_delay.invoke() } 37 38 override def init() 39 { 40 PIDE.session.syslog_messages += main 41 syslog_delay.invoke() 42 } 43 44 override def exit() 45 { 46 PIDE.session.syslog_messages -= main 47 } 48} 49