src/Pure/System/swing_thread.scala
changeset 49249 c763444b34ad
parent 49196 1d63ceb0d177
child 49251 cd28155bb7d5
equal deleted inserted replaced
49248:bff772033a97 49249:c763444b34ad
    52     def invoke(): Unit
    52     def invoke(): Unit
    53     def revoke(): Unit
    53     def revoke(): Unit
    54     def postpone(time: Time): Unit
    54     def postpone(time: Time): Unit
    55   }
    55   }
    56 
    56 
    57   private def delayed_action(first: Boolean)(time: Time)(action: => Unit): Delay =
    57   private def delayed_action(first: Boolean)(time: => Time)(action: => Unit): Delay =
    58     new Delay {
    58     new Delay {
    59       private val timer = new Timer(time.ms.toInt, null)
    59       private val timer = new Timer(time.ms.toInt, null)
    60       timer.setRepeats(false)
    60       timer.setRepeats(false)
    61       timer.addActionListener(new ActionListener {
    61       timer.addActionListener(new ActionListener {
    62         override def actionPerformed(e: ActionEvent) {
    62         override def actionPerformed(e: ActionEvent) {
    63           assert()
    63           assert()
    64           timer.setDelay(time.ms.toInt)
    64           timer.setInitialDelay(time.ms.toInt)
    65           action
    65           action
    66         }
    66         }
    67       })
    67       })
    68 
    68 
    69       def invoke()
    69       def invoke()
    74 
    74 
    75       def revoke()
    75       def revoke()
    76       {
    76       {
    77         require()
    77         require()
    78         timer.stop()
    78         timer.stop()
    79         timer.setDelay(time.ms.toInt)
    79         timer.setInitialDelay(time.ms.toInt)
    80       }
    80       }
    81 
    81 
    82       def postpone(alt_time: Time)
    82       def postpone(alt_time: Time)
    83       {
    83       {
    84         require()
    84         require()
    85         if (timer.isRunning) {
    85         if (timer.isRunning) {
    86           timer.setDelay(timer.getDelay max alt_time.ms.toInt)
    86           timer.setInitialDelay(timer.getDelay max alt_time.ms.toInt)
    87           timer.restart()
    87           timer.restart()
    88         }
    88         }
    89       }
    89       }
    90     }
    90     }
    91 
    91