src/Tools/jEdit/src/jedit/ScrollerDockable.scala
changeset 34370 e0679b361a0e
parent 34369 b58404f41b68
child 34371 4a63526bead1
equal deleted inserted replaced
34369:b58404f41b68 34370:e0679b361a0e
     2  * ScrollerDockable.scala
     2  * ScrollerDockable.scala
     3  *
     3  *
     4  */
     4  */
     5 
     5 
     6 package isabelle.jedit
     6 package isabelle.jedit
       
     7 
       
     8 import isabelle.utils.EventSource
     7 
     9 
     8 import scala.collection.mutable.{ArrayBuffer, HashMap}
    10 import scala.collection.mutable.{ArrayBuffer, HashMap}
     9 
    11 
    10 import java.awt.{ BorderLayout, Adjustable }
    12 import java.awt.{ BorderLayout, Adjustable }
    11 import java.awt.event.{ ActionListener, ActionEvent, AdjustmentListener, AdjustmentEvent, ComponentListener, ComponentEvent }
    13 import java.awt.event.{ ActionListener, ActionEvent, AdjustmentListener, AdjustmentEvent, ComponentListener, ComponentEvent }
    94     val pixeloffset = if(panel != null) panel.getHeight*offset/100 else 0
    96     val pixeloffset = if(panel != null) panel.getHeight*offset/100 else 0
    95     var n = no
    97     var n = no
    96     var y:Int = getHeight + pixeloffset
    98     var y:Int = getHeight + pixeloffset
    97     while (y >= 0 && n >= 0){
    99     while (y >= 0 && n >= 0){
    98       val panel = place_message (n, y)
   100       val panel = place_message (n, y)
    99       panel.setBorder(javax.swing.border.LineBorder.createBlackLineBorder)
   101       if(panel != null) {
   100       y = y - panel.getHeight
   102         panel.setBorder(javax.swing.border.LineBorder.createBlackLineBorder)
       
   103         y = y - panel.getHeight
       
   104       }
   101       n = n - 1
   105       n = n - 1
   102     }
   106     }
   103   }  
   107   }  
   104 }
   108 }
   105 
   109 
   179       message_panel.invalidate
   183       message_panel.invalidate
   180     }
   184     }
   181   }
   185   }
   182 
   186 
   183   
   187   
   184   // TODO: register somewhere
   188   // TODO: register
   185   // here only 'emulation of message stream'
   189   Plugin.plugin.prover.allInfo.add(add_message(_))
   186   Plugin.plugin.stateUpdate.add(state => {
       
   187     var i = 0
       
   188     if(state != null) new Thread{
       
   189       override def run() {
       
   190         while (i < 10000) {
       
   191           add_message(state.document)
       
   192           i += 1
       
   193           /*try {Thread.sleep(3)}
       
   194           catch{case _ =>}*/
       
   195         }
       
   196       }
       
   197     }.start
       
   198   })
       
   199 }
   190 }
   200 
   191 
   201 
   192 
   202 
   193 
   203 //containing the unrendered messages
   194 //containing the unrendered messages