- Timestamp:
- 07/08/13 23:04:56 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
java/main/src/main/java/com/framsticks/gui/SwingDispatcher.java
r97 r98 1 1 package com.framsticks.gui; 2 2 3 import java.awt.event.ActionEvent; 4 import java.awt.event.ActionListener; 5 6 import com.framsticks.util.dispatching.AbstractJoinable; 3 7 import com.framsticks.util.dispatching.Dispatcher; 8 import com.framsticks.util.dispatching.JoinableDispatcher; 4 9 import com.framsticks.util.dispatching.Task; 5 10 import com.framsticks.util.dispatching.ThrowExceptionHandler; … … 11 16 * @author Piotr Sniegowski 12 17 */ 13 public class SwingDispatcher<C> implementsDispatcher<C> {18 public class SwingDispatcher<C> extends AbstractJoinable implements JoinableDispatcher<C> { 14 19 15 20 @SuppressWarnings("rawtypes") … … 37 42 @Override 38 43 public final void dispatch(RunAt<? extends C> runnable) { 39 assert !(runnable instanceof Task); 44 if (runnable instanceof Task) { 45 final Task<?> task = (Task<?>) runnable; 46 Timer timer = new Timer(0, null); 47 timer.addActionListener(new ActionListener() { 48 49 @Override 50 public void actionPerformed(ActionEvent event) { 51 task.run(); 52 } 53 54 }); 55 timer.setInitialDelay((int) (task.getMoment() - System.currentTimeMillis())); 56 timer.setRepeats(false); 57 timer.start(); 58 return; 59 } 40 60 SwingUtilities.invokeLater(runnable); 41 61 } 42 62 63 @Override 64 public String getName() { 65 return "gui"; 66 } 67 68 @Override 69 protected void joinableStart() { 70 71 } 72 73 @Override 74 protected void joinableInterrupt() { 75 finish(); 76 } 77 78 @Override 79 protected void joinableFinish() { 80 81 } 82 83 @Override 84 protected void joinableJoin() throws InterruptedException { 85 86 } 87 43 88 }
Note: See TracChangeset
for help on using the changeset viewer.