home *** CD-ROM | disk | FTP | other *** search
- package java.awt;
-
- import java.awt.event.InputEvent;
- import java.lang.reflect.Method;
- import java.security.AccessController;
- import java.util.EventObject;
- import sun.awt.DebugHelper;
- import sun.security.action.GetPropertyAction;
-
- class EventDispatchThread extends Thread {
- private static final DebugHelper dbg;
- private EventQueue theQueue;
- private boolean doDispatch = true;
- private static final String handlerPropName = "sun.awt.exception.handler";
- private static String handlerClassName;
- private static String NO_HANDLER;
- // $FF: synthetic field
- static Class class$java$awt$EventDispatchThread;
- // $FF: synthetic field
- static Class class$java$lang$Throwable;
-
- EventDispatchThread(String var1, EventQueue var2) {
- super(var1);
- this.theQueue = var2;
- }
-
- public void stopDispatching() {
- this.doDispatch = false;
- this.theQueue.postEventPrivate(new EmptyEvent(this));
- if (Thread.currentThread() != this) {
- try {
- ((Thread)this).join();
- } catch (InterruptedException var2) {
- }
- }
-
- }
-
- public void run() {
- this.pumpEvents(new 1(this));
- }
-
- void pumpEvents(Conditional var1) {
- this.pumpEventsForHierarchy(var1, (Component)null);
- }
-
- void pumpEventsForHierarchy(Conditional var1, Component var2) {
- while(this.doDispatch && var1.evaluate()) {
- if (((Thread)this).isInterrupted() || !this.pumpOneEventForHierarchy(var2)) {
- this.doDispatch = false;
- }
- }
-
- }
-
- boolean pumpOneEventForHierarchy(Component var1) {
- try {
- AWTEvent var2 = this.theQueue.getNextEvent();
- if (var1 != null) {
- while(var2 instanceof InputEvent) {
- Object var3 = (Component)((EventObject)var2).getSource();
- if (var1 instanceof Container) {
- while(var3 != var1 && var3 != null) {
- var3 = ((Component)var3).getParent();
- }
- }
-
- if (var3 == var1) {
- break;
- }
-
- var2 = this.theQueue.getNextEvent();
- }
- }
-
- this.theQueue.dispatchEvent(var2);
- return true;
- } catch (ThreadDeath var5) {
- return false;
- } catch (InterruptedException var6) {
- return false;
- } catch (Throwable var7) {
- if (!this.handleException(var7)) {
- System.err.println("Exception occurred during event dispatching:");
- var7.printStackTrace();
- }
-
- return true;
- }
- }
-
- private boolean handleException(Throwable var1) {
- try {
- if (handlerClassName == NO_HANDLER) {
- return false;
- } else {
- if (handlerClassName == null) {
- handlerClassName = (String)AccessController.doPrivileged(new GetPropertyAction("sun.awt.exception.handler"));
- if (handlerClassName == null) {
- handlerClassName = NO_HANDLER;
- return false;
- }
- }
-
- Method var2;
- Object var3;
- try {
- ClassLoader var4 = Thread.currentThread().getContextClassLoader();
- Class var5 = Class.forName(handlerClassName, true, var4);
- var2 = var5.getMethod("handle", class$java$lang$Throwable == null ? (class$java$lang$Throwable = class$("java.lang.Throwable")) : class$java$lang$Throwable);
- var3 = var5.newInstance();
- } catch (Throwable var6) {
- handlerClassName = NO_HANDLER;
- return false;
- }
-
- var2.invoke(var3, var1);
- return true;
- }
- } catch (Throwable var7) {
- return false;
- }
- }
-
- boolean isDispatching(EventQueue var1) {
- return this.theQueue.equals(var1);
- }
-
- EventQueue getEventQueue() {
- return this.theQueue;
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
-
- static {
- dbg = DebugHelper.create(class$java$awt$EventDispatchThread == null ? (class$java$awt$EventDispatchThread = class$("java.awt.EventDispatchThread")) : class$java$awt$EventDispatchThread);
- handlerClassName = null;
- NO_HANDLER = new String();
- }
- }
-