equal
deleted
inserted
replaced
4 Generic event bus. |
4 Generic event bus. |
5 */ |
5 */ |
6 |
6 |
7 package isabelle |
7 package isabelle |
8 |
8 |
9 import scala.collection.jcl.LinkedList |
9 import scala.collection.mutable.ListBuffer |
10 |
10 |
11 |
11 |
12 class EventBus[Event] { |
12 class EventBus[Event] { |
13 type Handler = Event => Unit |
13 type Handler = Event => Unit |
14 private val handlers = new LinkedList[Handler] |
14 private val handlers = new ListBuffer[Handler] |
15 |
15 |
16 def += (h: Handler) = synchronized { handlers -= h; handlers += h } |
16 def += (h: Handler) = synchronized { handlers += h } |
|
17 def + (h: Handler) = { this += h; this } |
|
18 |
17 def -= (h: Handler) = synchronized { handlers -= h } |
19 def -= (h: Handler) = synchronized { handlers -= h } |
|
20 def - (h: Handler) = { this -= h; this } |
18 |
21 |
19 def event(e: Event) = synchronized { for(h <- handlers) h(e) } |
22 def event(e: Event) = synchronized { handlers.toList } foreach (h => h(e)) |
20 } |
23 } |