modules/graphics/src/main/java/com/sun/javafx/tk/Toolkit.java

Print this page




 340         synchronized (this) {
 341             stagePulseList.putAll(stagePulseListeners);
 342             scenePulseList.putAll(scenePulseListeners);
 343             postScenePulseList.putAll(postScenePulseListeners);
 344         }
 345         for (Map.Entry<TKPulseListener,AccessControlContext> entry : stagePulseList.entrySet()) {
 346             runPulse(entry.getKey(), entry.getValue());
 347         }
 348         for (Map.Entry<TKPulseListener,AccessControlContext> entry : scenePulseList.entrySet()) {
 349             runPulse(entry.getKey(), entry.getValue());
 350         }
 351         for (Map.Entry<TKPulseListener,AccessControlContext> entry : postScenePulseList.entrySet()) {
 352             runPulse(entry.getKey(), entry.getValue());
 353         }
 354 
 355         if (lastTkPulseListener != null) {
 356             runPulse(lastTkPulseListener, lastTkPulseAcc);
 357         }
 358     }
 359     public void addStageTkPulseListener(TKPulseListener listener) {



 360         synchronized (this) {
 361             AccessControlContext acc = AccessController.getContext();
 362             stagePulseListeners.put(listener, acc);
 363         }
 364     }
 365     public void removeStageTkPulseListener(TKPulseListener listener) {
 366         synchronized (this) {
 367             stagePulseListeners.remove(listener);
 368         }
 369     }
 370     public void addSceneTkPulseListener(TKPulseListener listener) {



 371         synchronized (this) {
 372             AccessControlContext acc = AccessController.getContext();
 373             scenePulseListeners.put(listener, acc);
 374         }
 375     }
 376     public void removeSceneTkPulseListener(TKPulseListener listener) {
 377         synchronized (this) {
 378             scenePulseListeners.remove(listener);
 379         }
 380     }
 381     public void addPostSceneTkPulseListener(TKPulseListener listener) {



 382         synchronized (this) {
 383             AccessControlContext acc = AccessController.getContext();
 384             postScenePulseListeners.put(listener, acc);
 385         }
 386     }
 387     public void removePostSceneTkPulseListener(TKPulseListener listener) {
 388         synchronized (this) {
 389             postScenePulseListeners.remove(listener);
 390         }
 391     }
 392 
 393     public void addTkListener(TKListener listener) {



 394         AccessControlContext acc = AccessController.getContext();
 395         toolkitListeners.put(listener, acc);
 396     }
 397 
 398     public void removeTkListener(TKListener listener) {
 399         toolkitListeners.remove(listener);
 400     }
 401 
 402     private TKPulseListener lastTkPulseListener = null;
 403     private AccessControlContext lastTkPulseAcc = null;
 404     public void setLastTkPulseListener(TKPulseListener listener) {
 405         lastTkPulseAcc = AccessController.getContext();
 406         lastTkPulseListener = listener;
 407     }
 408 
 409     public void addShutdownHook(Runnable hook) {



 410         synchronized (shutdownHooks) {
 411             shutdownHooks.add(hook);
 412         }
 413     }
 414 
 415     public void removeShutdownHook(Runnable hook) {
 416         synchronized (shutdownHooks) {
 417             shutdownHooks.remove(hook);
 418         }
 419     }
 420 
 421     protected void notifyShutdownHooks() {
 422         List<Runnable> hooks;
 423         synchronized (shutdownHooks) {
 424             hooks = new ArrayList<Runnable>(shutdownHooks);
 425             shutdownHooks.clear();
 426         }
 427 
 428         for (Runnable hook : hooks) {
 429             hook.run();




 340         synchronized (this) {
 341             stagePulseList.putAll(stagePulseListeners);
 342             scenePulseList.putAll(scenePulseListeners);
 343             postScenePulseList.putAll(postScenePulseListeners);
 344         }
 345         for (Map.Entry<TKPulseListener,AccessControlContext> entry : stagePulseList.entrySet()) {
 346             runPulse(entry.getKey(), entry.getValue());
 347         }
 348         for (Map.Entry<TKPulseListener,AccessControlContext> entry : scenePulseList.entrySet()) {
 349             runPulse(entry.getKey(), entry.getValue());
 350         }
 351         for (Map.Entry<TKPulseListener,AccessControlContext> entry : postScenePulseList.entrySet()) {
 352             runPulse(entry.getKey(), entry.getValue());
 353         }
 354 
 355         if (lastTkPulseListener != null) {
 356             runPulse(lastTkPulseListener, lastTkPulseAcc);
 357         }
 358     }
 359     public void addStageTkPulseListener(TKPulseListener listener) {
 360         if (listener == null) {
 361             return;
 362         }
 363         synchronized (this) {
 364             AccessControlContext acc = AccessController.getContext();
 365             stagePulseListeners.put(listener, acc);
 366         }
 367     }
 368     public void removeStageTkPulseListener(TKPulseListener listener) {
 369         synchronized (this) {
 370             stagePulseListeners.remove(listener);
 371         }
 372     }
 373     public void addSceneTkPulseListener(TKPulseListener listener) {
 374         if (listener == null) {
 375             return;
 376         }
 377         synchronized (this) {
 378             AccessControlContext acc = AccessController.getContext();
 379             scenePulseListeners.put(listener, acc);
 380         }
 381     }
 382     public void removeSceneTkPulseListener(TKPulseListener listener) {
 383         synchronized (this) {
 384             scenePulseListeners.remove(listener);
 385         }
 386     }
 387     public void addPostSceneTkPulseListener(TKPulseListener listener) {
 388         if (listener == null) {
 389             return;
 390         }
 391         synchronized (this) {
 392             AccessControlContext acc = AccessController.getContext();
 393             postScenePulseListeners.put(listener, acc);
 394         }
 395     }
 396     public void removePostSceneTkPulseListener(TKPulseListener listener) {
 397         synchronized (this) {
 398             postScenePulseListeners.remove(listener);
 399         }
 400     }
 401 
 402     public void addTkListener(TKListener listener) {
 403         if (listener == null) {
 404             return;
 405         }
 406         AccessControlContext acc = AccessController.getContext();
 407         toolkitListeners.put(listener, acc);
 408     }
 409 
 410     public void removeTkListener(TKListener listener) {
 411         toolkitListeners.remove(listener);
 412     }
 413 
 414     private TKPulseListener lastTkPulseListener = null;
 415     private AccessControlContext lastTkPulseAcc = null;
 416     public void setLastTkPulseListener(TKPulseListener listener) {
 417         lastTkPulseAcc = AccessController.getContext();
 418         lastTkPulseListener = listener;
 419     }
 420 
 421     public void addShutdownHook(Runnable hook) {
 422         if (hook == null) {
 423             return;
 424         }
 425         synchronized (shutdownHooks) {
 426             shutdownHooks.add(hook);
 427         }
 428     }
 429 
 430     public void removeShutdownHook(Runnable hook) {
 431         synchronized (shutdownHooks) {
 432             shutdownHooks.remove(hook);
 433         }
 434     }
 435 
 436     protected void notifyShutdownHooks() {
 437         List<Runnable> hooks;
 438         synchronized (shutdownHooks) {
 439             hooks = new ArrayList<Runnable>(shutdownHooks);
 440             shutdownHooks.clear();
 441         }
 442 
 443         for (Runnable hook : hooks) {
 444             hook.run();