public static void modalityChanged(int paramInt, boolean paramBoolean) {
    PerPluginInfo localPerPluginInfo = (PerPluginInfo) pluginInfoMap.get(new Integer(paramInt));
    if (localPerPluginInfo == null) return;
    final AppletID localAppletID = new AppletID(paramInt);
    if (paramBoolean) {
      final int i = localPerPluginInfo.modalityPushed();
      final Plugin localPlugin = localPerPluginInfo.getPlugin();
      localPlugin.invokeLater(
          new Runnable() {
            private final ModalitySupport.PerPluginInfo val$info;
            private final AppletID val$id;
            private final int val$depth;
            private final Plugin val$plugin;

            public void run() {
              if (this.val$info.getPlugin().getActiveJSCounter() > 0) {
                this.val$info.modalityPopped();
                return;
              }
              while ((!JVMManager.getManager().appletExited(localAppletID))
                  && (this.val$info.getModalityDepth() >= i))
                localPlugin.waitForSignalWithModalBlocking();
              localPlugin.notifyMainThread();
            }
          });
    } else {
      localPerPluginInfo.modalityPopped();
    }
  }
 public static synchronized Integer getAppletBlockingBrowser() {
   Thread localThread = Thread.currentThread();
   Iterator localIterator = pluginInfoMap.keySet().iterator();
   while (localIterator.hasNext()) {
     Integer localInteger = (Integer) localIterator.next();
     PerPluginInfo localPerPluginInfo = (PerPluginInfo) pluginInfoMap.get(localInteger);
     if ((localPerPluginInfo.getPluginMainThread() == localThread)
         && (localPerPluginInfo.getModalityDepth() > 0)) return localInteger;
   }
   return null;
 }
 public static synchronized boolean appletShouldBlockBrowser(int paramInt) {
   Thread localThread = Thread.currentThread();
   PerPluginInfo localPerPluginInfo = (PerPluginInfo) pluginInfoMap.get(new Integer(paramInt));
   if ((localPerPluginInfo != null) && (localPerPluginInfo.getModalityDepth() > 0)) return true;
   Iterator localIterator = pluginInfoMap.values().iterator();
   while (localIterator.hasNext()) {
     localPerPluginInfo = (PerPluginInfo) localIterator.next();
     if ((localPerPluginInfo.getPluginMainThread() == localThread)
         && (localPerPluginInfo.getModalityDepth() > 0)) return true;
   }
   return false;
 }
 public static synchronized void shutdown(int paramInt) {
   PerPluginInfo localPerPluginInfo = (PerPluginInfo) pluginInfoMap.remove(new Integer(paramInt));
   localPerPluginInfo.getPlugin().notifyMainThread();
 }
 public static synchronized void initialize(int paramInt, Plugin paramPlugin) {
   PerPluginInfo localPerPluginInfo = (PerPluginInfo) pluginInfoMap.get(new Integer(paramInt));
   if (localPerPluginInfo == null)
     pluginInfoMap.put(new Integer(paramInt), new PerPluginInfo(paramPlugin));
   else assert (localPerPluginInfo.getPlugin() == paramPlugin);
 }