Java 类com.intellij.openapi.ui.popup.StackingPopupDispatcher 实例源码

项目:intellij-ce-playground    文件:DialogWrapper.java   
/**
 *
 * @return null if we should ignore <Esc> for window closing
 */
@Nullable
protected ActionListener createCancelAction() {
  return new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        MenuSelectionManager menuSelectionManager = MenuSelectionManager.defaultManager();
        MenuElement[] selectedPath = menuSelectionManager.getSelectedPath();
        if (selectedPath.length > 0) { // hide popup menu if any
          menuSelectionManager.clearSelectedPath();
        }
        else {
          if (ApplicationManager.getApplication() == null) {
            doCancelAction(e);
            return;
          }
          final StackingPopupDispatcher popupDispatcher = StackingPopupDispatcher.getInstance();
          if (popupDispatcher != null && !popupDispatcher.isPopupFocused()) {
            doCancelAction(e);
          }
        }
      }
    };
}
项目:intellij-ce-playground    文件:DialogWrapperPeerImpl.java   
@Override
public void update(AnActionEvent e) {
  Component focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();
  e.getPresentation().setEnabled(false);
  if (focusOwner instanceof JComponent && SpeedSearchBase.hasActiveSpeedSearch((JComponent)focusOwner)) {
    return;
  }

  if (StackingPopupDispatcher.getInstance().isPopupFocused()) return;
  JTree tree = UIUtil.getParentOfType(JTree.class, focusOwner);
  JTable table = UIUtil.getParentOfType(JTable.class, focusOwner);

  if (tree != null || table != null) {
    if (hasNoEditingTreesOrTablesUpward(focusOwner)) {
      e.getPresentation().setEnabled(true);
    }
  }
}
项目:tools-idea    文件:DialogWrapperPeerImpl.java   
@Override
public void update(AnActionEvent e) {
  Component focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();
  e.getPresentation().setEnabled(false);
  if (focusOwner instanceof JComponent && SpeedSearchBase.hasActiveSpeedSearch((JComponent)focusOwner)) {
    return;
  }

  if (StackingPopupDispatcher.getInstance().isPopupFocused()) return;

  if (focusOwner instanceof JTree) {
    JTree tree = (JTree)focusOwner;
    if (!tree.isEditing()) {
      e.getPresentation().setEnabled(true);
    }
  }
  else if (focusOwner instanceof JTable) {
    JTable table = (JTable)focusOwner;
    if (!table.isEditing()) {
      e.getPresentation().setEnabled(true);
    }
  }
}
项目:consulo    文件:DialogWrapperPeerImpl.java   
@Override
public void update(@Nonnull AnActionEvent e) {
  Component focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();
  e.getPresentation().setEnabled(false);
  if (focusOwner instanceof JComponent && SpeedSearchBase.hasActiveSpeedSearch((JComponent)focusOwner)) {
    return;
  }

  if (StackingPopupDispatcher.getInstance().isPopupFocused()) return;
  JTree tree = UIUtil.getParentOfType(JTree.class, focusOwner);
  JTable table = UIUtil.getParentOfType(JTable.class, focusOwner);

  if (tree != null || table != null) {
    if (hasNoEditingTreesOrTablesUpward(focusOwner)) {
      e.getPresentation().setEnabled(true);
    }
  }
}
项目:intellij-ce-playground    文件:DialogWrapperPeerImpl.java   
private void hidePopupsIfNeeded() {
  if (!SystemInfo.isMac) return;

  StackingPopupDispatcher.getInstance().hidePersistentPopups();
  myDisposeActions.add(new Runnable() {
    @Override
    public void run() {
      StackingPopupDispatcher.getInstance().restorePersistentPopups();
    }
  });
}
项目:intellij-ce-playground    文件:GlassPaneDialogWrapperPeer.java   
private void hidePopupsIfNeeded() {
  if (!SystemInfo.isMac) return;

  StackingPopupDispatcher.getInstance().hidePersistentPopups();

  Disposer.register(myDialog, new Disposable() {
    @Override
    public void dispose() {
      StackingPopupDispatcher.getInstance().restorePersistentPopups();
    }
  });
}
项目:tools-idea    文件:DialogWrapperPeerImpl.java   
private void hidePopupsIfNeeded() {
  if (!SystemInfo.isMac) return;

  StackingPopupDispatcher.getInstance().hidePersistentPopups();
  myDisposeActions.add(new Runnable() {
    @Override
    public void run() {
      StackingPopupDispatcher.getInstance().restorePersistentPopups();
    }
  });
}
项目:consulo    文件:GlassPaneDialogWrapperPeer.java   
private void hidePopupsIfNeeded() {
  if (!SystemInfo.isMac) return;

  final StackingPopupDispatcher stackingPopupDispatcher = StackingPopupDispatcher.getInstance();
  stackingPopupDispatcher.hidePersistentPopups();

  Disposer.register(myDialog, new Disposable() {
    @Override
    public void dispose() {
      stackingPopupDispatcher.restorePersistentPopups();
    }
  });
}
项目:consulo    文件:DialogWrapperPeerImpl.java   
private void hidePopupsIfNeeded() {
  if (!SystemInfo.isMac) return;

  StackingPopupDispatcher.getInstance().hidePersistentPopups();
  myDisposeActions.add(() -> StackingPopupDispatcher.getInstance().restorePersistentPopups());
}