下面列出了java.awt.event.InputEvent#getComponent() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private ProductSceneView getProductSceneView(InputEvent event) {
ProductSceneView productSceneView = null;
Component component = event.getComponent();
while (component != null) {
if (component instanceof ProductSceneView) {
productSceneView = (ProductSceneView) component;
break;
}
component = component.getParent();
}
return productSceneView;
}
@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);
}
@Override
public void update(@Nonnull AnActionEvent e) {
InputEvent inputEvent = e.getInputEvent();
if (!(inputEvent instanceof MouseEvent)) {
e.getPresentation().setEnabledAndVisible(false);
return;
}
if (e.getProject() == null) {
e.getPresentation().setEnabledAndVisible(false);
return;
}
if (e.getData(OpenInEditorAction.KEY) == null) {
e.getPresentation().setEnabledAndVisible(false);
return;
}
Component component = inputEvent.getComponent();
if (component == null) {
e.getPresentation().setEnabledAndVisible(false);
return;
}
Point point = ((MouseEvent)inputEvent).getPoint();
Component componentAt = SwingUtilities.getDeepestComponentAt(component, point.x, point.y);
if (!(componentAt instanceof EditorGutterComponentEx)) {
e.getPresentation().setEnabledAndVisible(false);
return;
}
Editor editor = getEditor(componentAt);
if (editor == null) {
e.getPresentation().setEnabledAndVisible(false);
return;
}
MouseEvent convertedEvent = SwingUtilities.convertMouseEvent(inputEvent.getComponent(), (MouseEvent)inputEvent, componentAt);
EditorMouseEventArea area = editor.getMouseEventArea(convertedEvent);
if (area != EditorMouseEventArea.LINE_NUMBERS_AREA) {
e.getPresentation().setEnabledAndVisible(false);
return;
}
e.getPresentation().setEnabledAndVisible(true);
}