Java Code Examples for com.intellij.openapi.actionSystem.AnActionEvent#getInputEvent()

The following examples show how to use com.intellij.openapi.actionSystem.AnActionEvent#getInputEvent() . These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
@Override
public void update(AnActionEvent e) {
	super.update(e);
	Editor editor = CommonDataKeys.EDITOR.getData(e.getDataContext());
	if (editor == null) {
		e.getPresentation().setEnabled(false);
		return;
	}
	Project project = getEventProject(e);
	if (project != null) {
		InputEvent inputEvent = e.getInputEvent();
		boolean onlyAltDown = false;
		if (inputEvent != null) {
			onlyAltDown = inputEvent.isAltDown() && !inputEvent.isShiftDown() && !inputEvent.isMetaDown() && !inputEvent.isControlDown();
		}
		LookupEx activeLookup = LookupManager.getInstance(project).getActiveLookup();
		boolean dialogOpen = isFromDialog(project);
		boolean popupCheck = activeLookup == null || (activeLookup != null && !onlyAltDown);
		boolean dialogCheck = !dialogOpen || (dialogOpen && !onlyAltDown);
		e.getPresentation().setEnabled((popupCheck && dialogCheck));
	}
}
 
Example 2
Source Project: consulo   File: PasteFromX11Action.java    License: Apache License 2.0 6 votes vote down vote up
@Override
public void update(AnActionEvent e) {
  Presentation presentation = e.getPresentation();
  Editor editor = e.getData(CommonDataKeys.EDITOR);
  if (editor == null || !SystemInfo.isXWindow) {
    presentation.setEnabled(false);
  }
  else {
    boolean rightPlace = true;
    final InputEvent inputEvent = e.getInputEvent();
    if (inputEvent instanceof MouseEvent) {
      rightPlace = false;
      final MouseEvent me = (MouseEvent)inputEvent;
      if (editor.getMouseEventArea(me) == EditorMouseEventArea.EDITING_AREA) {
        final Component component = SwingUtilities.getDeepestComponentAt(me.getComponent(), me.getX(), me.getY());
        rightPlace = !(component instanceof JScrollBar);
      }
    }
    presentation.setEnabled(rightPlace);
  }
}
 
Example 3
@Override
public void beforeActionPerformed(@NotNull AnAction action, @NotNull DataContext dataContext, AnActionEvent event) {
  final InputEvent input = event.getInputEvent();
  if (input instanceof MouseEvent) {
    // The following is a hack to work around an issue with IDEA, where certain events arrive
    // twice. See https://youtrack.jetbrains.com/issue/IDEA-219133
    if (input.getWhen() != 0 && lastEventTime == input.getWhen()) {
      return;
    }
    lastEventTime = input.getWhen();

    final String place = event.getPlace();
    KeyPromoterAction kpAction;
    if ("MainMenu".equals(place)) {
      if (keyPromoterSettings.isMenusEnabled()) {
        kpAction = new KeyPromoterAction(action, event, KeyPromoterAction.ActionSource.MENU_ENTRY);
        showTip(kpAction);
      }
    } else if ("MainToolbar".equals(place)) {
      if (keyPromoterSettings.isToolbarButtonsEnabled()) {
        kpAction = new KeyPromoterAction(action, event, KeyPromoterAction.ActionSource.MAIN_TOOLBAR);
        showTip(kpAction);
      }
    } else if (place.matches(".*Popup")) {
      if (keyPromoterSettings.isEditorPopupEnabled()) {
        kpAction = new KeyPromoterAction(action, event, KeyPromoterAction.ActionSource.POPUP);
        showTip(kpAction);
      }
    } else if (keyPromoterSettings.isAllButtonsEnabled()) {
      kpAction = new KeyPromoterAction(action, event, KeyPromoterAction.ActionSource.OTHER);
      showTip(kpAction);
    }
  }
}
 
Example 4
Source Project: consulo   File: GoToChangePopupBuilder.java    License: Apache License 2.0 5 votes vote down vote up
@RequiredUIAccess
@Override
public void actionPerformed(@Nonnull AnActionEvent e) {
  JBPopup popup = createPopup(e);

  InputEvent event = e.getInputEvent();
  if (event instanceof MouseEvent) {
    popup.show(new RelativePoint((MouseEvent)event));
  }
  else {
    popup.showInBestPositionFor(e.getDataContext());
  }
}
 
Example 5
Source Project: consulo   File: NavigateAction.java    License: Apache License 2.0 5 votes vote down vote up
@RequiredUIAccess
@Override
public void actionPerformed(AnActionEvent e) {
  if (myInfo.getNavigationHandler() != null) {
    MouseEvent mouseEvent = (MouseEvent)e.getInputEvent();
    T element = myInfo.getElement();
    if (element == null || !element.isValid()) return;

    myInfo.getNavigationHandler().navigate(mouseEvent, element);
  }
}
 
Example 6
@RequiredUIAccess
@Override
public void beforeActionPerformedUpdate(@Nonnull AnActionEvent e) {
  super.beforeActionPerformedUpdate(e);
  // The tooltip gets the focus if using a screen reader and invocation through a keyboard shortcut.
  myRequestFocus = ScreenReader.isActive() && (e.getInputEvent() instanceof KeyEvent);
}
 
Example 7
Source Project: consulo   File: GotoDeclarationAction.java    License: Apache License 2.0 5 votes vote down vote up
@RequiredUIAccess
@Override
public void update(final AnActionEvent event) {
  InputEvent inputEvent = event.getInputEvent();
  if (inputEvent instanceof MouseEvent) {
    Component component = inputEvent.getComponent();
    if (component != null) {
      Point point = ((MouseEvent)inputEvent).getPoint();
      Component componentAt = SwingUtilities.getDeepestComponentAt(component, point.x, point.y);
      if (componentAt instanceof EditorGutterComponentEx) {
        event.getPresentation().setEnabled(false);
        return;
      }
    }
  }

  for (GotoDeclarationHandler handler : Extensions.getExtensions(GotoDeclarationHandler.EP_NAME)) {
    try {
      String text = handler.getActionText(event.getDataContext());
      if (text != null) {
        Presentation presentation = event.getPresentation();
        presentation.setText(text);
        break;
      }
    }
    catch (AbstractMethodError e) {
      LOG.error(handler.toString(), e);
    }
  }

  super.update(event);
}
 
Example 8
@Override
public void beforeActionPerformedUpdate(@Nonnull final AnActionEvent e) {
  super.beforeActionPerformedUpdate(e);
  // The tooltip gets the focus if using a screen reader and invocation through a keyboard shortcut.
  myRequestFocus = ScreenReader.isActive() && (e.getInputEvent() instanceof KeyEvent);

  changeState();
}
 
Example 9
private String getQueryExecutionAction(AnActionEvent e) {
    return e.getInputEvent() instanceof KeyEvent ? EXECUTE_WITH_SHORTCUT_ACTION : EXECUTE_WITH_MOUSE_ACTION;
}
 
Example 10
Source Project: emacsIDEAs   File: ChainActionEvent.java    License: Apache License 2.0 4 votes vote down vote up
public ChainActionEvent(AnActionEvent e, Runnable runnable, Editor _editor, Project _project) {
    super(e.getInputEvent(), e.getDataContext(), e.getPlace(), e.getPresentation(), e.getActionManager(), e.getModifiers());
    this._pendingAction = runnable;
    this._editor = _editor;
    this._project = _project;
}
 
Example 11
/** Only show if selection is a grammar and in a rule */
@Override
public void update(AnActionEvent e) {
	Presentation presentation = e.getPresentation();
	presentation.setText("Test ANTLR Rule"); // default text

	VirtualFile grammarFile = MyActionUtils.getGrammarFileFromEvent(e);
	if ( grammarFile==null ) { // we clicked somewhere outside text or non grammar file
		presentation.setEnabled(false);
		presentation.setVisible(false);
		return;
	}

	ParserRuleRefNode r = null;
	InputEvent inputEvent = e.getInputEvent();
	if ( inputEvent instanceof MouseEvent ) { // this seems to be after update() called 2x and we have selected the action
		r = MyActionUtils.getParserRuleSurroundingRef(e);
	}
	else {
		// If editor component, mouse event not happened yet to update caret so must ask for mouse position
		Editor editor = e.getData(PlatformDataKeys.EDITOR);
		if ( editor!=null ) {
			Point mousePosition = editor.getContentComponent().getMousePosition();
			if ( mousePosition!=null ) {
				LogicalPosition pos = editor.xyToLogicalPosition(mousePosition);
				int offset = editor.logicalPositionToOffset(pos);
				PsiFile file = e.getData(LangDataKeys.PSI_FILE);
				if ( file!=null ) {
					PsiElement el = file.findElementAt(offset);
					if ( el!=null ) {
						r = MyActionUtils.getParserRuleSurroundingRef(el);
					}
				}
			}
		}
		if ( r==null ) {
			r = MyActionUtils.getParserRuleSurroundingRef(e);
		}
	}
	if ( r==null ) {
		presentation.setEnabled(false);
		return;
	}

	presentation.setVisible(true);
	String ruleName = r.getText();
	if ( Character.isLowerCase(ruleName.charAt(0)) ) {
		presentation.setEnabled(true);
		presentation.setText("Test Rule "+ruleName);
	}
	else {
		presentation.setEnabled(false);
	}
}