equal
deleted
inserted
replaced
5 */ |
5 */ |
6 |
6 |
7 package isabelle.graphview |
7 package isabelle.graphview |
8 |
8 |
9 |
9 |
|
10 import isabelle._ |
|
11 |
|
12 import scala.collection.mutable |
|
13 |
10 import java.awt.Color |
14 import java.awt.Color |
11 |
15 |
12 |
16 |
13 object Mutator_Event |
17 object Mutator_Event |
14 { |
18 { |
15 type Mutator_Markup = (Boolean, Color, Mutator) |
19 type Mutator_Markup = (Boolean, Color, Mutator) |
16 |
20 |
17 sealed abstract class Message |
21 sealed abstract class Message |
18 case class Add(m: Mutator_Markup) extends Message |
22 case class Add(m: Mutator_Markup) extends Message |
19 case class NewList(m: List[Mutator_Markup]) extends Message |
23 case class NewList(m: List[Mutator_Markup]) extends Message |
|
24 |
|
25 type Receiver = PartialFunction[Message, Unit] |
|
26 |
|
27 class Bus |
|
28 { |
|
29 private val receivers = new mutable.ListBuffer[Receiver] |
|
30 |
|
31 def += (r: Receiver) { Swing_Thread.require(); receivers += r } |
|
32 def -= (r: Receiver) { Swing_Thread.require(); receivers -= r } |
|
33 def event(x: Message) { Swing_Thread.require(); receivers.foreach(r => r(x)) } |
|
34 } |
20 } |
35 } |