Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package java.awt;
- import java.util.HashMap;
- import java.util.Map;
- class SchedulingEventQueue extends EventQueue
- {
- // Use Map< AWTEvent, List< AWTEvent > > to support multiple events
- private final Map< AWTEvent, AWTEvent > eventSchedule = new HashMap< AWTEvent, AWTEvent >();
- private boolean processing = false;
- public void scheduleEvent( final AWTEvent event, final AWTEvent dependentEvent )
- {
- eventSchedule.put( dependentEvent, event );
- }
- @Override
- protected void dispatchEvent(final AWTEvent event) {
- try {
- processing = true;
- super.dispatchEvent(event);
- processing = false;
- } finally {
- // Dispatch any dependent event
- AWTEvent scheduledEvent = eventSchedule.remove(event);
- if (scheduledEvent != null) {
- postEvent(scheduledEvent);
- }
- }
- }
- public boolean isEmpty() {
- return eventSchedule.isEmpty() && (!processing);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement