src/Tools/jEdit/src/simplifier_trace_dockable.scala
changeset 75853 f981111768ec
parent 75852 fcc25bb49def
child 75854 2163772eeaf2
equal deleted inserted replaced
75852:fcc25bb49def 75853:f981111768ec
     7 package isabelle.jedit
     7 package isabelle.jedit
     8 
     8 
     9 
     9 
    10 import isabelle._
    10 import isabelle._
    11 
    11 
    12 import scala.swing.{Button, Orientation, Separator}
    12 import scala.swing.{Orientation, Separator}
    13 import scala.swing.event.ButtonClicked
       
    14 
    13 
    15 import java.awt.BorderLayout
    14 import java.awt.BorderLayout
    16 import java.awt.event.{ComponentEvent, ComponentAdapter}
    15 import java.awt.event.{ComponentEvent, ComponentAdapter}
    17 
    16 
    18 import org.gjt.sp.jedit.View
    17 import org.gjt.sp.jedit.View
    43       case q :: _ =>
    42       case q :: _ =>
    44         val data = q.data
    43         val data = q.data
    45         val content = Pretty.separate(XML.Text(data.text) :: data.content)
    44         val content = Pretty.separate(XML.Text(data.text) :: data.content)
    46         text_area.update(snapshot, Command.Results.empty, content)
    45         text_area.update(snapshot, Command.Results.empty, content)
    47         q.answers.foreach { answer =>
    46         q.answers.foreach { answer =>
    48           answers.contents += new Button(answer.string) {
    47           answers.contents += new GUI.Button(answer.string) {
    49             reactions += {
    48             override def clicked(): Unit =
    50               case ButtonClicked(_) =>
    49               Simplifier_Trace.send_reply(PIDE.session, data.serial, answer)
    51                 Simplifier_Trace.send_reply(PIDE.session, data.serial, answer)
       
    52             }
       
    53           }
    50           }
    54         }
    51         }
    55       case Nil =>
    52       case Nil =>
    56         text_area.update(snapshot, Command.Results.empty, Nil)
    53         text_area.update(snapshot, Command.Results.empty, Nil)
    57     }
    54     }
   150           override def clicked(state: Boolean): Unit = {
   147           override def clicked(state: Boolean): Unit = {
   151             do_update = state
   148             do_update = state
   152             handle_update(do_update)
   149             handle_update(do_update)
   153           }
   150           }
   154         },
   151         },
   155         new Button("Update") {
   152         new GUI.Button("Update") { override def clicked(): Unit = handle_update(true) },
   156           reactions += { case ButtonClicked(_) => handle_update(true) }
       
   157         },
       
   158         new Separator(Orientation.Vertical),
   153         new Separator(Orientation.Vertical),
   159         new Button("Show trace") {
   154         new GUI.Button("Show trace") { override def clicked(): Unit = show_trace() },
   160           reactions += { case ButtonClicked(_) => show_trace() }
   155         new GUI.Button("Clear memory") {
   161         },
   156           override def clicked(): Unit = Simplifier_Trace.clear_memory(PIDE.session)
   162         new Button("Clear memory") {
       
   163           reactions += {
       
   164             case ButtonClicked(_) => Simplifier_Trace.clear_memory(PIDE.session)
       
   165           }
       
   166         }))
   157         }))
   167 
   158 
   168   private val answers = Wrap_Panel(Nil, Wrap_Panel.Alignment.Left)
   159   private val answers = Wrap_Panel(Nil, Wrap_Panel.Alignment.Left)
   169 
   160 
   170   add(controls.peer, BorderLayout.NORTH)
   161   add(controls.peer, BorderLayout.NORTH)