summaryrefslogtreecommitdiffstats
path: root/awt/java/awt/EventQueueCore.java
diff options
context:
space:
mode:
Diffstat (limited to 'awt/java/awt/EventQueueCore.java')
-rw-r--r--awt/java/awt/EventQueueCore.java253
1 files changed, 0 insertions, 253 deletions
diff --git a/awt/java/awt/EventQueueCore.java b/awt/java/awt/EventQueueCore.java
deleted file mode 100644
index ffc7c46..0000000
--- a/awt/java/awt/EventQueueCore.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * @author Pavel Dolgov
- * @version $Revision$
- */
-package java.awt;
-
-import java.awt.event.ActionEvent;
-import java.awt.event.InputEvent;
-import java.awt.event.InputMethodEvent;
-import java.awt.event.InvocationEvent;
-import java.awt.event.MouseEvent;
-import java.util.LinkedList;
-
-import org.apache.harmony.awt.internal.nls.Messages;
-
-/**
- * The events storage for EventQueue
- */
-final class EventQueueCore {
-
- private final LinkedList<EventQueue> queueStack = new LinkedList<EventQueue>();
- private final LinkedList<AWTEvent> events = new LinkedList<AWTEvent>();
-
- private Toolkit toolkit;
- private EventQueue activeQueue;
- private Thread dispatchThread;
-
- AWTEvent currentEvent;
- long mostRecentEventTime = System.currentTimeMillis();
-
- EventQueueCore(EventQueue eq) {
- synchronized (this) {
- queueStack.addLast(eq);
- activeQueue = eq;
- }
- }
-
- EventQueueCore(EventQueue eq, Toolkit t) {
- synchronized (this) {
- queueStack.addLast(eq);
- activeQueue = eq;
- setToolkit(t);
- }
- }
-
- synchronized long getMostRecentEventTime() {
- return mostRecentEventTime;
- }
-
- synchronized AWTEvent getCurrentEvent() {
- return currentEvent;
- }
-
- synchronized boolean isSystemEventQueue() {
- return toolkit != null;
- }
-
- private void setToolkit(Toolkit t) {
- toolkit = t;
- if (toolkit != null) {
- toolkit.setSystemEventQueueCore(this);
- dispatchThread = toolkit.dispatchThread;
- }
- }
-
- synchronized void postEvent(AWTEvent event) {
- //???AWT
- /*
- events.addLast(event);
- if ((toolkit == null) && (dispatchThread == null)) {
- dispatchThread = new EventQueueThread(this);
- dispatchThread.start();
- }
- // TODO: add event coalescing
- if (toolkit != null) {
- toolkit.shutdownWatchdog.setAwtQueueEmpty(false);
- if (!GraphicsEnvironment.getLocalGraphicsEnvironment().isHeadlessInstance()) {
- notifyEventMonitor(toolkit);
- }
- }
- notifyAll();
- */
- }
-
- void notifyEventMonitor(Toolkit t) {
- Object em = t.getNativeEventQueue().getEventMonitor();
- synchronized (em) {
- em.notifyAll();
- }
- }
-
- synchronized AWTEvent getNextEvent() throws InterruptedException {
- while (events.isEmpty()) {
- wait();
- }
- AWTEvent event = events.removeFirst();
- // TODO: add event coalescing
- return event;
- }
-
- synchronized AWTEvent peekEvent() {
- return events.isEmpty() ? null : events.getFirst();
- }
-
- synchronized AWTEvent peekEvent(int id) {
- for (AWTEvent event : events) {
- if (event.getID() == id) {
- return event;
- }
- }
- return null;
- }
-
- synchronized void dispatchEvent(AWTEvent event) {
- updateCurrentEventAndTime(event);
- try {
- activeQueue.dispatchEvent(event);
- } finally {
- currentEvent = null;
- }
- }
-
- void dispatchEventImpl(AWTEvent event) {
- if (event instanceof ActiveEvent) {
- updateCurrentEventAndTime(event);
- try {
- ((ActiveEvent) event).dispatch();
- } finally {
- currentEvent = null;
- }
- return;
- }
-
- Object src = event.getSource();
-
- if (src instanceof Component) {
- if (preprocessComponentEvent(event)) {
- ((Component) src).dispatchEvent(event);
- }
- } else {
- if (toolkit != null) {
- toolkit.dispatchAWTEvent(event);
- }
- if (src instanceof MenuComponent) {
- ((MenuComponent) src).dispatchEvent(event);
- }
- }
- }
-
- private final boolean preprocessComponentEvent(AWTEvent event) {
- if (event instanceof MouseEvent) {
- return preprocessMouseEvent((MouseEvent)event);
- }
- return true;
- }
-
- private final boolean preprocessMouseEvent(MouseEvent event) {
- //???AWT
- /*
- if (toolkit != null && toolkit.mouseEventPreprocessor != null) {
- toolkit.lockAWT();
- try {
- return toolkit.mouseEventPreprocessor.preprocess(event);
- } finally {
- toolkit.unlockAWT();
- }
- }
- return true;
- */
- return true;
- }
-
- private void updateCurrentEventAndTime(AWTEvent event) {
- currentEvent = event;
- long when = 0;
- if (event instanceof ActionEvent) {
- when = ((ActionEvent) event).getWhen();
- } else if (event instanceof InputEvent) {
- when = ((InputEvent) event).getWhen();
- } else if (event instanceof InputMethodEvent) {
- when = ((InputMethodEvent) event).getWhen();
- } else if (event instanceof InvocationEvent) {
- when = ((InvocationEvent) event).getWhen();
- }
- if (when != 0) {
- mostRecentEventTime = when;
- }
- }
-
- synchronized void push(EventQueue newEventQueue) {
- // TODO: handle incorrect situations
- if (queueStack.isEmpty()) {
- // awt.6B=Queue stack is empty
- throw new IllegalStateException(Messages.getString("awt.6B")); //$NON-NLS-1$
- }
-
- queueStack.addLast(newEventQueue);
- activeQueue = newEventQueue;
- activeQueue.setCore(this);
- }
-
- synchronized void pop() {
- EventQueue removed = queueStack.removeLast();
- if (removed != activeQueue) {
- // awt.6C=Event queue stack is broken
- throw new IllegalStateException(Messages.getString("awt.6C")); //$NON-NLS-1$
- }
- activeQueue = queueStack.getLast();
- removed.setCore(null);
- }
-
- synchronized AWTEvent getNextEventNoWait() {
- try {
- return events.isEmpty() ? null : activeQueue.getNextEvent();
- } catch (InterruptedException e) {
- return null;
- }
- }
-
- synchronized boolean isEmpty() {
- return (currentEvent == null) && events.isEmpty();
- }
-
- synchronized boolean isEmpty(long timeout) {
- if (!isEmpty()) {
- return false;
- }
- try {
- wait(timeout);
- } catch (InterruptedException e) {}
- return isEmpty();
- }
-
- synchronized EventQueue getActiveEventQueue() {
- return activeQueue;
- }
-}