# HG changeset patch # User immler@in.tum.de # Date 1251384096 -7200 # Node ID f075ac82aae92da8f68ec484f75abd6cd38a114b # Parent 93f4978fe2a8e78964711050cbef36eb9a25e269 no busy waiting diff -r 93f4978fe2a8 -r f075ac82aae9 src/Tools/jEdit/src/jedit/BrowseVersionDockable.scala --- a/src/Tools/jEdit/src/jedit/BrowseVersionDockable.scala Thu Aug 27 16:41:33 2009 +0200 +++ b/src/Tools/jEdit/src/jedit/BrowseVersionDockable.scala Thu Aug 27 16:41:36 2009 +0200 @@ -16,24 +16,21 @@ import org.gjt.sp.jedit.gui.DockableWindowManager -class BrowseVersionDockable(view : View, position : String) extends FlowPanel { +class BrowseVersionDockable(view : View, position : String) extends FlowPanel +{ + + def get_versions() = + Isabelle.prover_setup(view.getBuffer).map(_.theory_view.changes).getOrElse(Nil) if (position == DockableWindowManager.FLOATING) preferredSize = new Dimension(500, 250) val list = new ListView[Change] list.fixedCellWidth = 500 + list.listData = get_versions() + contents += list - new javax.swing.Timer(1000, new java.awt.event.ActionListener { - override def actionPerformed(evt: java.awt.event.ActionEvent) { - list.listData = Isabelle.prover_setup(view.getBuffer).map(_. - theory_view.changes).getOrElse(Nil) - } - }).start() - - contents += list listenTo(list.selection) - reactions += { case ListSelectionChanged(source, range, false) => Swing_Thread.now { @@ -41,4 +38,10 @@ theory_view.set_version(list.listData(range.start))) } } + + private var num_changes = 0 + Isabelle.plugin.document_change += {_ => + list.listData = get_versions() + } + }