author | paulson <lp15@cam.ac.uk> |
Mon, 22 Jul 2024 22:55:19 +0100 | |
changeset 80611 | fbc859ccdaf3 |
parent 76610 | 6e2383488a55 |
permissions | -rw-r--r-- |
48021
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
1 |
/* Title: Tools/jEdit/src/syslog_dockable.scala |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
2 |
Author: Makarius |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
3 |
|
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
4 |
Dockable window for syslog. |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
5 |
*/ |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
6 |
|
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
7 |
package isabelle.jedit |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
8 |
|
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
9 |
|
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
10 |
import isabelle._ |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
11 |
|
56775
59f70b89e5fd
improved syslog performance -- avoid denial-of-service e.g. with threads_trace = 5 and active Syslog dockable;
wenzelm
parents:
56715
diff
changeset
|
12 |
import scala.swing.{TextArea, ScrollPane} |
48021
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
13 |
|
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
14 |
import org.gjt.sp.jedit.View |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
15 |
|
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
16 |
|
75393 | 17 |
class Syslog_Dockable(view: View, position: String) extends Dockable(view, position) { |
48021
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
18 |
/* GUI components */ |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
19 |
|
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
20 |
private val syslog = new TextArea() |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
21 |
|
76610 | 22 |
private def syslog_delay = |
23 |
Delay.first(PIDE.session.update_delay, gui = true) { |
|
24 |
val text = PIDE.session.syslog.content() |
|
25 |
if (text != syslog.text) syslog.text = text |
|
26 |
} |
|
48021
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
27 |
|
56775
59f70b89e5fd
improved syslog performance -- avoid denial-of-service e.g. with threads_trace = 5 and active Syslog dockable;
wenzelm
parents:
56715
diff
changeset
|
28 |
set_content(new ScrollPane(syslog)) |
48021
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
29 |
|
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
30 |
|
56715
52125652e82a
clarified Session.Consumer, with Session.Outlet managed by dispatcher thread;
wenzelm
parents:
56662
diff
changeset
|
31 |
/* main */ |
48021
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
32 |
|
56715
52125652e82a
clarified Session.Consumer, with Session.Outlet managed by dispatcher thread;
wenzelm
parents:
56662
diff
changeset
|
33 |
private val main = |
56775
59f70b89e5fd
improved syslog performance -- avoid denial-of-service e.g. with threads_trace = 5 and active Syslog dockable;
wenzelm
parents:
56715
diff
changeset
|
34 |
Session.Consumer[Prover.Output](getClass.getName) { case _ => syslog_delay.invoke() } |
48021
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
35 |
|
75393 | 36 |
override def init(): Unit = { |
56715
52125652e82a
clarified Session.Consumer, with Session.Outlet managed by dispatcher thread;
wenzelm
parents:
56662
diff
changeset
|
37 |
PIDE.session.syslog_messages += main |
56775
59f70b89e5fd
improved syslog performance -- avoid denial-of-service e.g. with threads_trace = 5 and active Syslog dockable;
wenzelm
parents:
56715
diff
changeset
|
38 |
syslog_delay.invoke() |
48021
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
39 |
} |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
40 |
|
75393 | 41 |
override def exit(): Unit = { |
56715
52125652e82a
clarified Session.Consumer, with Session.Outlet managed by dispatcher thread;
wenzelm
parents:
56662
diff
changeset
|
42 |
PIDE.session.syslog_messages -= main |
48021
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
43 |
} |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
44 |
} |