equal
deleted
inserted
replaced
8 package isabelle.jedit |
8 package isabelle.jedit |
9 |
9 |
10 |
10 |
11 import isabelle._ |
11 import isabelle._ |
12 |
12 |
13 import java.util.concurrent.{Future => JFuture} |
|
14 import java.awt.{Color, Font, Toolkit, Window} |
13 import java.awt.{Color, Font, Toolkit, Window} |
15 import java.awt.event.KeyEvent |
14 import java.awt.event.KeyEvent |
16 import javax.swing.JTextField |
15 import javax.swing.JTextField |
17 import javax.swing.event.{DocumentListener, DocumentEvent} |
16 import javax.swing.event.{DocumentListener, DocumentEvent} |
18 |
17 |
73 private var current_body: XML.Body = Nil |
72 private var current_body: XML.Body = Nil |
74 private var current_base_snapshot = Document.Snapshot.init |
73 private var current_base_snapshot = Document.Snapshot.init |
75 private var current_base_results = Command.Results.empty |
74 private var current_base_results = Command.Results.empty |
76 private var current_rendering: Rendering = |
75 private var current_rendering: Rendering = |
77 Pretty_Text_Area.text_rendering(current_base_snapshot, current_base_results, Nil)._2 |
76 Pretty_Text_Area.text_rendering(current_base_snapshot, current_base_results, Nil)._2 |
78 private var future_refresh: Option[JFuture[Unit]] = None |
77 private var future_refresh: Option[Future[Unit]] = None |
79 |
78 |
80 private val rich_text_area = |
79 private val rich_text_area = |
81 new Rich_Text_Area(view, text_area, () => current_rendering, close_action, |
80 new Rich_Text_Area(view, text_area, () => current_rendering, close_action, |
82 get_search_pattern _, caret_visible = false, enable_hovering = true) |
81 get_search_pattern _, caret_visible = false, enable_hovering = true) |
83 |
82 |
126 |
125 |
127 val base_snapshot = current_base_snapshot |
126 val base_snapshot = current_base_snapshot |
128 val base_results = current_base_results |
127 val base_results = current_base_results |
129 val formatted_body = Pretty.formatted(current_body, margin, metric) |
128 val formatted_body = Pretty.formatted(current_body, margin, metric) |
130 |
129 |
131 future_refresh.map(_.cancel(true)) |
130 future_refresh.map(_.cancel) |
132 future_refresh = |
131 future_refresh = |
133 Some(Standard_Thread.submit_task { |
132 Some(Future.fork { |
134 val (text, rendering) = |
133 val (text, rendering) = |
135 try { Pretty_Text_Area.text_rendering(base_snapshot, base_results, formatted_body) } |
134 try { Pretty_Text_Area.text_rendering(base_snapshot, base_results, formatted_body) } |
136 catch { case exn: Throwable => Log.log(Log.ERROR, this, exn); throw exn } |
135 catch { case exn: Throwable => Log.log(Log.ERROR, this, exn); throw exn } |
137 Exn.Interrupt.expose() |
136 Exn.Interrupt.expose() |
138 |
137 |