author | wenzelm |
Thu, 03 Apr 2014 13:46:18 +0200 | |
changeset 56385 | 76acce58aeab |
parent 55618 | 995162143ef4 |
child 56662 | f373fb77e0a4 |
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 |
|
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
12 |
import scala.actors.Actor._ |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
13 |
import scala.swing.TextArea |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
14 |
|
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
15 |
import org.gjt.sp.jedit.View |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
16 |
|
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
17 |
|
49559 | 18 |
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
|
19 |
{ |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
20 |
/* GUI components */ |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
21 |
|
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
22 |
private val syslog = new TextArea() |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
23 |
|
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
24 |
private def update_syslog() |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
25 |
{ |
53177
dcac8d837b9c
more uniform treatment of Swing_Thread context switch: prefer asynchronous Swing_Thread.later from actor;
wenzelm
parents:
50205
diff
changeset
|
26 |
Swing_Thread.require() |
dcac8d837b9c
more uniform treatment of Swing_Thread context switch: prefer asynchronous Swing_Thread.later from actor;
wenzelm
parents:
50205
diff
changeset
|
27 |
|
dcac8d837b9c
more uniform treatment of Swing_Thread context switch: prefer asynchronous Swing_Thread.later from actor;
wenzelm
parents:
50205
diff
changeset
|
28 |
val text = PIDE.session.current_syslog() |
dcac8d837b9c
more uniform treatment of Swing_Thread context switch: prefer asynchronous Swing_Thread.later from actor;
wenzelm
parents:
50205
diff
changeset
|
29 |
if (text != syslog.text) syslog.text = text |
48021
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
30 |
} |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
31 |
|
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
32 |
set_content(syslog) |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
33 |
|
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
34 |
|
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
35 |
/* main actor */ |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
36 |
|
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
37 |
private val main_actor = actor { |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
38 |
loop { |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
39 |
react { |
56385 | 40 |
case output: Prover.Output => |
53177
dcac8d837b9c
more uniform treatment of Swing_Thread context switch: prefer asynchronous Swing_Thread.later from actor;
wenzelm
parents:
50205
diff
changeset
|
41 |
if (output.is_syslog) Swing_Thread.later { update_syslog() } |
48021
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
42 |
|
55618 | 43 |
case bad => System.err.println("Syslog_Dockable: ignoring bad message " + bad) |
48021
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
44 |
} |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
45 |
} |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
46 |
} |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
47 |
|
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
48 |
override def init() |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
49 |
{ |
50205 | 50 |
PIDE.session.syslog_messages += main_actor |
48021
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
51 |
update_syslog() |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
52 |
} |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
53 |
|
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
54 |
override def exit() |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
55 |
{ |
50205 | 56 |
PIDE.session.syslog_messages -= main_actor |
48021
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
57 |
} |
d899be1cfe6d
separate syslog dockable -- discontinued tendency of sub-window management via tabs;
wenzelm
parents:
diff
changeset
|
58 |
} |