src/Tools/jEdit/src/prover/Prover.scala
changeset 34370 e0679b361a0e
parent 34359 e4ca265c9c8b
child 34376 76435dd5183d
equal deleted inserted replaced
34369:b58404f41b68 34370:e0679b361a0e
    28   private var initialized = false
    28   private var initialized = false
    29     
    29     
    30   val activated = new EventSource[Unit]
    30   val activated = new EventSource[Unit]
    31   val commandInfo = new EventSource[CommandChangeInfo]
    31   val commandInfo = new EventSource[CommandChangeInfo]
    32   val outputInfo = new EventSource[String]
    32   val outputInfo = new EventSource[String]
       
    33   val allInfo = new EventSource[org.w3c.dom.Document]
    33   var document = null : Document
    34   var document = null : Document
    34   
    35   
    35   var workerThread = new Thread("isabelle.Prover: worker") {
    36   var workerThread = new Thread("isabelle.Prover: worker") {
    36     override def run() : Unit = {
    37     override def run() : Unit = {
    37       while (true) {
    38       while (true) {
    80   }
    81   }
    81   
    82   
    82   def handleResult(st : Command, r : Result, tree : XML.Tree) {
    83   def handleResult(st : Command, r : Result, tree : XML.Tree) {
    83     def fireChange() = 
    84     def fireChange() = 
    84       inUIThread(() => commandInfo.fire(new CommandChangeInfo(st)))
    85       inUIThread(() => commandInfo.fire(new CommandChangeInfo(st)))
       
    86     allInfo.fire(st.document)
    85     
    87     
    86     r.kind match {
    88     r.kind match {
    87       case IsabelleProcess.Kind.ERROR => 
    89       case IsabelleProcess.Kind.ERROR => 
    88         if (st.phase != Phase.REMOVED && st.phase != Phase.REMOVE)
    90         if (st.phase != Phase.REMOVED && st.phase != Phase.REMOVE)
    89           st.phase = Phase.FAILED
    91           st.phase = Phase.FAILED
    95         fireChange()
    97         fireChange()
    96         
    98         
    97       case IsabelleProcess.Kind.PRIORITY =>
    99       case IsabelleProcess.Kind.PRIORITY =>
    98         st.addResult(tree)
   100         st.addResult(tree)
    99         fireChange()
   101         fireChange()
   100               
   102 
   101       case IsabelleProcess.Kind.WARNING =>
   103       case IsabelleProcess.Kind.WARNING =>
   102         st.addResult(tree)
   104         st.addResult(tree)
   103         fireChange()
   105         fireChange()
   104               
   106               
   105       case IsabelleProcess.Kind.STATUS =>
   107       case IsabelleProcess.Kind.STATUS =>