equal
deleted
inserted
replaced
43 } |
43 } |
44 |
44 |
45 |
45 |
46 /* delayed actions */ |
46 /* delayed actions */ |
47 |
47 |
48 private def delayed_action(first: Boolean)(time: Time)(action: => Unit): () => Unit = |
48 private def delayed_action(first: Boolean)(time: Time)(action: => Unit): Boolean => Unit = |
49 { |
49 { |
50 val listener = new ActionListener { |
50 val listener = new ActionListener { |
51 override def actionPerformed(e: ActionEvent) { Swing_Thread.assert(); action } |
51 override def actionPerformed(e: ActionEvent) { Swing_Thread.assert(); action } |
52 } |
52 } |
53 val timer = new Timer(time.ms.toInt, listener) |
53 val timer = new Timer(time.ms.toInt, listener) |
54 timer.setRepeats(false) |
54 timer.setRepeats(false) |
55 |
55 |
56 def invoke() { later { if (first) timer.start() else timer.restart() } } |
56 def invoke() { later { if (first) timer.start() else timer.restart() } } |
57 invoke _ |
57 def revoke() { timer.stop() } |
|
58 |
|
59 (active: Boolean) => if (active) invoke() else revoke() |
58 } |
60 } |
59 |
61 |
60 // delayed action after first invocation |
62 // delayed action after first invocation |
61 def delay_first = delayed_action(true) _ |
63 def delay_first = delayed_action(true) _ |
62 |
64 |