diff --git a/lib/annotations/picocontainer/org/picocontainer/defaults/annotations.xml b/lib/annotations/picocontainer/org/picocontainer/defaults/annotations.xml
index 8013ad53c63b..8ec5f73ca098 100644
--- a/lib/annotations/picocontainer/org/picocontainer/defaults/annotations.xml
+++ b/lib/annotations/picocontainer/org/picocontainer/defaults/annotations.xml
@@ -38,4 +38,16 @@
name='org.picocontainer.defaults.InstantiatingComponentAdapter InstantiatingComponentAdapter(java.lang.Object, java.lang.Class, org.picocontainer.Parameter[], boolean, org.picocontainer.ComponentMonitor, org.picocontainer.defaults.LifecycleStrategy) 0'>
+ -
+
+
+ -
+
+
+ -
+
+
\ No newline at end of file
diff --git a/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/ActionManager.java b/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/ActionManager.java
index a53772ab39c5..6170ca39e082 100644
--- a/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/ActionManager.java
+++ b/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/ActionManager.java
@@ -39,7 +39,7 @@ public abstract class ActionManager {
* @return An instance of {@code ActionPopupMenu}
*/
@NotNull
- public abstract ActionPopupMenu createActionPopupMenu(@NonNls String place, @NotNull ActionGroup group);
+ public abstract ActionPopupMenu createActionPopupMenu(@NonNls @NotNull String place, @NotNull ActionGroup group);
/**
* Factory method that creates an {@code ActionToolbar} from the
@@ -114,6 +114,7 @@ public abstract class ActionManager {
* @return all action {@code id}s which have the specified prefix.
* @since 5.1
*/
+ @NotNull
public abstract String[] getActionIds(@NotNull String idPrefix);
/**
@@ -136,19 +137,20 @@ public abstract class ActionManager {
* @since 5.1
*/
@NotNull
- public abstract JComponent createButtonToolbar(final String actionPlace, @NotNull ActionGroup messageActionGroup);
+ public abstract JComponent createButtonToolbar(@NotNull String actionPlace, @NotNull ActionGroup messageActionGroup);
@Nullable
- public abstract AnAction getActionOrStub(@NonNls String id);
+ public abstract AnAction getActionOrStub(@NotNull @NonNls String id);
- public abstract void addTimerListener(int delay, TimerListener listener);
+ public abstract void addTimerListener(int delay, @NotNull TimerListener listener);
- public abstract void removeTimerListener(TimerListener listener);
+ public abstract void removeTimerListener(@NotNull TimerListener listener);
- public abstract void addTransparentTimerListener(int delay, TimerListener listener);
+ public abstract void addTransparentTimerListener(int delay, @NotNull TimerListener listener);
- public abstract void removeTransparentTimerListener(TimerListener listener);
+ public abstract void removeTransparentTimerListener(@NotNull TimerListener listener);
+ @NotNull
public abstract ActionCallback tryToExecute(@NotNull AnAction action, @NotNull InputEvent inputEvent, @Nullable Component contextComponent,
@Nullable String place, boolean now);
diff --git a/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/ActionToolbar.java b/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/ActionToolbar.java
index b139ce936e30..c71c60f35671 100644
--- a/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/ActionToolbar.java
+++ b/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/ActionToolbar.java
@@ -100,7 +100,7 @@ public interface ActionToolbar {
void setReservePlaceAutoPopupIcon(boolean reserve);
- void setSecondaryActionsTooltip(String secondaryActionsTooltip);
+ void setSecondaryActionsTooltip(@NotNull String secondaryActionsTooltip);
void setSecondaryActionsIcon(Icon icon);
@@ -109,6 +109,7 @@ public interface ActionToolbar {
void setMiniMode(boolean minimalMode);
+ @NotNull
DataContext getToolbarDataContext();
/**
diff --git a/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/ex/AnActionListener.java b/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/ex/AnActionListener.java
index 7bad1c3aaeab..13a9440c1b2d 100644
--- a/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/ex/AnActionListener.java
+++ b/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/ex/AnActionListener.java
@@ -14,13 +14,13 @@ import org.jetbrains.annotations.NotNull;
public interface AnActionListener {
Topic TOPIC = new Topic<>("action changes", AnActionListener.class);
- default void beforeActionPerformed(@NotNull AnAction action, @NotNull DataContext dataContext, AnActionEvent event) {
+ default void beforeActionPerformed(@NotNull AnAction action, @NotNull DataContext dataContext, @NotNull AnActionEvent event) {
}
/**
* Note that using {@code dataContext} in implementing methods is unsafe - it could have been invalidated by the performed action.
*/
- default void afterActionPerformed(AnAction action, @NotNull DataContext dataContext, AnActionEvent event) {
+ default void afterActionPerformed(@NotNull AnAction action, @NotNull DataContext dataContext, @NotNull AnActionEvent event) {
}
default void beforeEditorTyping(char c, @NotNull DataContext dataContext) {
diff --git a/platform/editor-ui-api/src/com/intellij/openapi/editor/event/EditorMouseEvent.java b/platform/editor-ui-api/src/com/intellij/openapi/editor/event/EditorMouseEvent.java
index 29de2f6a8c8a..8ba18b526e26 100644
--- a/platform/editor-ui-api/src/com/intellij/openapi/editor/event/EditorMouseEvent.java
+++ b/platform/editor-ui-api/src/com/intellij/openapi/editor/event/EditorMouseEvent.java
@@ -22,10 +22,11 @@ import java.awt.event.MouseEvent;
import java.util.EventObject;
public class EditorMouseEvent extends EventObject {
+ @NotNull
private final MouseEvent myMouseEvent;
private final EditorMouseEventArea myEditorArea;
- public EditorMouseEvent(@NotNull Editor editor, MouseEvent mouseEvent, EditorMouseEventArea area) {
+ public EditorMouseEvent(@NotNull Editor editor, @NotNull MouseEvent mouseEvent, EditorMouseEventArea area) {
super(editor);
myMouseEvent = mouseEvent;
@@ -37,6 +38,7 @@ public class EditorMouseEvent extends EventObject {
return (Editor) getSource();
}
+ @NotNull
public MouseEvent getMouseEvent() {
return myMouseEvent;
}
diff --git a/platform/extensions/src/com/intellij/openapi/extensions/EPAvailabilityListenerExtension.java b/platform/extensions/src/com/intellij/openapi/extensions/EPAvailabilityListenerExtension.java
index 21a75c9d802f..84531a334379 100644
--- a/platform/extensions/src/com/intellij/openapi/extensions/EPAvailabilityListenerExtension.java
+++ b/platform/extensions/src/com/intellij/openapi/extensions/EPAvailabilityListenerExtension.java
@@ -27,9 +27,6 @@ public class EPAvailabilityListenerExtension implements PluginAware {
private String myListenerClass;
private PluginDescriptor myPluginDescriptor;
- public EPAvailabilityListenerExtension() {
- }
-
public EPAvailabilityListenerExtension(@NotNull String extensionPointName, @NotNull String listenerClass) {
myExtensionPointName = extensionPointName;
myListenerClass = listenerClass;
@@ -62,12 +59,11 @@ public class EPAvailabilityListenerExtension implements PluginAware {
return myPluginDescriptor;
}
+ @NotNull
public Class loadListenerClass() throws ClassNotFoundException {
if (myPluginDescriptor != null && myPluginDescriptor.getPluginClassLoader() != null) {
return Class.forName(getListenerClass(), true, myPluginDescriptor.getPluginClassLoader());
}
- else {
- return Class.forName(getListenerClass());
- }
+ return Class.forName(getListenerClass());
}
}
diff --git a/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java b/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java
index 3ac3dfe1c706..14cca99f0277 100644
--- a/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java
+++ b/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java
@@ -29,12 +29,6 @@ public class ExtensionsAreaImpl implements ExtensionsArea {
private static final Logger LOG = Logger.getInstance(ExtensionsAreaImpl.class);
public static final String ATTRIBUTE_AREA = "area";
- private static final Map ourDefaultEPs = new THashMap<>();
-
- static {
- ourDefaultEPs.put(EPAvailabilityListenerExtension.EXTENSION_POINT_NAME, EPAvailabilityListenerExtension.class.getName());
- }
-
private static final boolean DEBUG_REGISTRATION = Boolean.FALSE.booleanValue(); // not compile-time constant to avoid yellow code
private final AreaPicoContainer myPicoContainer;
@@ -53,11 +47,6 @@ public class ExtensionsAreaImpl implements ExtensionsArea {
initialize();
}
- @TestOnly
- ExtensionsAreaImpl(MutablePicoContainer parentPicoContainer) {
- this(null, null, parentPicoContainer);
- }
-
@TestOnly
public final void notifyAreaReplaced(@NotNull ExtensionsAreaImpl newArea) {
Set processedEPs = ContainerUtil.newTroveSet();
@@ -105,10 +94,6 @@ public class ExtensionsAreaImpl implements ExtensionsArea {
return myAreaClass;
}
- public void registerExtensionPoint(@NotNull String pluginName, @NotNull Element extensionPointElement) {
- registerExtensionPoint(new DefaultPluginDescriptor(PluginId.getId(pluginName)), extensionPointElement);
- }
-
@Override
public void registerExtensionPoint(@NotNull PluginDescriptor pluginDescriptor, @NotNull Element extensionPointElement) {
assert pluginDescriptor.getPluginId() != null;
@@ -181,7 +166,7 @@ public class ExtensionsAreaImpl implements ExtensionsArea {
return new ExtensionComponentAdapter(implementationClassName, myPicoContainer, pluginDescriptor, orderId, order, isNeedToDeserialize ? extensionElement : null);
}
- private static boolean shouldDeserializeInstance(Element extensionElement) {
+ private static boolean shouldDeserializeInstance(@NotNull Element extensionElement) {
// has content
if (!extensionElement.getContent().isEmpty()) return true;
// has custom attributes
@@ -214,54 +199,49 @@ public class ExtensionsAreaImpl implements ExtensionsArea {
return myPicoContainer;
}
- @SuppressWarnings("unchecked")
private void initialize() {
- for (Map.Entry entry : ourDefaultEPs.entrySet()) {
- String epName = entry.getKey();
- registerExtensionPoint(epName, entry.getValue());
- }
-
- getExtensionPoint(EPAvailabilityListenerExtension.EXTENSION_POINT_NAME).addExtensionPointListener(new ExtensionPointListener() {
- @Override
- public void extensionRemoved(@NotNull Object extension, final PluginDescriptor pluginDescriptor) {
- EPAvailabilityListenerExtension epListenerExtension = (EPAvailabilityListenerExtension) extension;
- synchronized (myAvailabilityListeners) {
- Collection listeners = myAvailabilityListeners.get(epListenerExtension.getExtensionPointName());
- for (Iterator iterator = listeners.iterator(); iterator.hasNext();) {
- ExtensionPointAvailabilityListener listener = iterator.next();
- if (listener.getClass().getName().equals(epListenerExtension.getListenerClass())) {
- iterator.remove();
- return;
+ ExtensionPointImpl point =
+ registerExtensionPoint(EPAvailabilityListenerExtension.EXTENSION_POINT_NAME, EPAvailabilityListenerExtension.class.getName(),
+ new UndefinedPluginDescriptor(), ExtensionPoint.Kind.INTERFACE);
+ point.addExtensionPointListener(new ExtensionPointListener() {
+ @Override
+ public void extensionAdded(@NotNull EPAvailabilityListenerExtension extension, @Nullable PluginDescriptor pluginDescriptor) {
+ synchronized (myAvailabilityListeners) {
+ Collection listeners = myAvailabilityListeners.get(extension.getExtensionPointName());
+ for (Iterator iterator = listeners.iterator(); iterator.hasNext();) {
+ ExtensionPointAvailabilityListener listener = iterator.next();
+ if (listener.getClass().getName().equals(extension.getListenerClass())) {
+ iterator.remove();
+ return;
+ }
}
}
+ LOG.warn("Failed to find EP availability listener: " + extension.getListenerClass());
}
- LOG.warn("Failed to find EP availability listener: " + epListenerExtension.getListenerClass());
- }
- @Override
- public void extensionAdded(@NotNull Object extension, final PluginDescriptor pluginDescriptor) {
- EPAvailabilityListenerExtension epListenerExtension = (EPAvailabilityListenerExtension) extension;
- try {
- String epName = epListenerExtension.getExtensionPointName();
+ @Override
+ public void extensionRemoved(@NotNull EPAvailabilityListenerExtension extension, @Nullable PluginDescriptor pluginDescriptor) {
+ try {
+ String epName = extension.getExtensionPointName();
- ExtensionPointAvailabilityListener listener = (ExtensionPointAvailabilityListener) instantiate(epListenerExtension.loadListenerClass());
- addAvailabilityListener(epName, listener);
+ ExtensionPointAvailabilityListener listener = (ExtensionPointAvailabilityListener) instantiate(extension.loadListenerClass());
+ addAvailabilityListener(epName, listener);
+ }
+ catch (Exception e) {
+ throw new RuntimeException(e);
+ }
}
- catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
- });
+ });
}
- private Object instantiate(Class clazz) {
+ @NotNull
+ private Object instantiate(@NotNull Class clazz) {
CachingConstructorInjectionComponentAdapter adapter =
new CachingConstructorInjectionComponentAdapter(Integer.toString(System.identityHashCode(new Object())), clazz);
return adapter.getComponentInstance(getPicoContainer());
}
- @SuppressWarnings("UnusedDeclaration")
public Throwable getCreationTrace() {
return myCreationTrace;
}
@@ -299,10 +279,11 @@ public class ExtensionsAreaImpl implements ExtensionsArea {
registerExtensionPoint(extensionPointName, extensionPointBeanClass, new UndefinedPluginDescriptor(), kind);
}
- private void registerExtensionPoint(@NotNull String extensionPointName,
- @NotNull String extensionPointBeanClass,
- @NotNull PluginDescriptor descriptor,
- @NotNull ExtensionPoint.Kind kind) {
+ @NotNull
+ private ExtensionPointImpl registerExtensionPoint(@NotNull String extensionPointName,
+ @NotNull String extensionPointBeanClass,
+ @NotNull PluginDescriptor descriptor,
+ @NotNull ExtensionPoint.Kind kind) {
if (hasExtensionPoint(extensionPointName)) {
final String message =
"Duplicate registration for EP: " + extensionPointName + ": original plugin " +
@@ -314,14 +295,16 @@ public class ExtensionsAreaImpl implements ExtensionsArea {
throw new PicoPluginExtensionInitializationException(message, null, extractPluginId(descriptor));
}
- registerExtensionPoint(new ExtensionPointImpl(extensionPointName, extensionPointBeanClass, kind, this, myAreaInstance, descriptor));
+ ExtensionPointImpl point = new ExtensionPointImpl<>(extensionPointName, extensionPointBeanClass, kind, this, myAreaInstance, descriptor);
+ registerExtensionPoint(point);
+ return point;
}
private static PluginId extractPluginId(@NotNull PluginDescriptor descriptor) {
return descriptor instanceof UndefinedPluginDescriptor ? null : descriptor.getPluginId();
}
- public void registerExtensionPoint(@NotNull ExtensionPointImpl extensionPoint) {
+ private void registerExtensionPoint(@NotNull ExtensionPointImpl> extensionPoint) {
String name = extensionPoint.getName();
myExtensionPoints.put(name, extensionPoint);
notifyEPRegistered(extensionPoint);
diff --git a/platform/extensions/src/com/intellij/util/pico/CachingConstructorInjectionComponentAdapter.java b/platform/extensions/src/com/intellij/util/pico/CachingConstructorInjectionComponentAdapter.java
index baa2a41caecd..92a7925d9903 100644
--- a/platform/extensions/src/com/intellij/util/pico/CachingConstructorInjectionComponentAdapter.java
+++ b/platform/extensions/src/com/intellij/util/pico/CachingConstructorInjectionComponentAdapter.java
@@ -47,6 +47,7 @@ public class CachingConstructorInjectionComponentAdapter extends InstantiatingCo
return instance;
}
+ @NotNull
private Object instantiateGuarded(PicoContainer container, Class stackFrame) {
Set currentStack = ourGuard.get();
if (currentStack == null) {
@@ -60,14 +61,17 @@ public class CachingConstructorInjectionComponentAdapter extends InstantiatingCo
try {
currentStack.add(this);
return doGetComponentInstance(container);
- } catch (final CyclicDependencyException e) {
+ }
+ catch (final CyclicDependencyException e) {
e.push(stackFrame);
throw e;
- } finally {
+ }
+ finally {
currentStack.remove(this);
}
}
+ @NotNull
private Object doGetComponentInstance(PicoContainer guardedContainer) {
final Constructor constructor;
try {
@@ -102,7 +106,7 @@ public class CachingConstructorInjectionComponentAdapter extends InstantiatingCo
}
@NotNull
- private Object[] getConstructorArguments(PicoContainer container, Constructor ctor) {
+ private Object[] getConstructorArguments(PicoContainer container, @NotNull Constructor ctor) {
Class[] parameterTypes = ctor.getParameterTypes();
Object[] result = new Object[parameterTypes.length];
Parameter[] currentParameters = parameters != null ? parameters : createDefaultParameters(parameterTypes);
@@ -113,6 +117,7 @@ public class CachingConstructorInjectionComponentAdapter extends InstantiatingCo
return result;
}
+ @NotNull
@Override
protected Constructor getGreediestSatisfiableConstructor(PicoContainer container) throws
PicoIntrospectionException,
@@ -162,12 +167,15 @@ public class CachingConstructorInjectionComponentAdapter extends InstantiatingCo
}
if (!conflicts.isEmpty()) {
throw new TooManySatisfiableConstructorsException(getComponentImplementation(), conflicts);
- } else if (greediestConstructor == null && !unsatisfiableDependencyTypes.isEmpty()) {
+ }
+ if (greediestConstructor == null && !unsatisfiableDependencyTypes.isEmpty()) {
throw new UnsatisfiableDependenciesException(this, unsatisfiedDependencyType, unsatisfiableDependencyTypes, container);
- } else if (greediestConstructor == null) {
+ }
+ if (greediestConstructor == null) {
// be nice to the user, show all constructors that were filtered out
- final Set nonMatching = ContainerUtil.newHashSet(getConstructors());
- throw new PicoInitializationException("Either do the specified parameters not match any of the following constructors: " + nonMatching.toString() + " or the constructors were not accessible for '" + getComponentImplementation() + "'");
+ final Set> nonMatching = ContainerUtil.newHashSet(getConstructors());
+ throw new PicoInitializationException("Either do the specified parameters not match any of the following constructors: " +
+ nonMatching + " or the constructors were not accessible for '" + getComponentImplementation() + "'");
}
return greediestConstructor;
}
@@ -175,7 +183,7 @@ public class CachingConstructorInjectionComponentAdapter extends InstantiatingCo
private List getSortedMatchingConstructors() {
List matchingConstructors = new ArrayList<>();
// filter out all constructors that will definitely not match
- for (Constructor constructor : getConstructors()) {
+ for (Constructor> constructor : getConstructors()) {
if ((parameters == null || constructor.getParameterTypes().length == parameters.length) &&
(allowNonPublicClasses || (constructor.getModifiers() & Modifier.PUBLIC) != 0)) {
matchingConstructors.add(constructor);
@@ -189,12 +197,7 @@ public class CachingConstructorInjectionComponentAdapter extends InstantiatingCo
}
@NotNull
- private Constructor[] getConstructors() {
- return (Constructor[]) AccessController.doPrivileged(new PrivilegedAction() {
- @Override
- public Object run() {
- return getComponentImplementation().getDeclaredConstructors();
- }
- });
+ private Constructor>[] getConstructors() {
+ return AccessController.doPrivileged((PrivilegedAction[]>)() -> getComponentImplementation().getDeclaredConstructors());
}
}
\ No newline at end of file
diff --git a/platform/extensions/testSrc/com/intellij/openapi/extensions/impl/ExtensionPointImplTest.java b/platform/extensions/testSrc/com/intellij/openapi/extensions/impl/ExtensionPointImplTest.java
index 6c15372200b3..05f2fa61e6f8 100644
--- a/platform/extensions/testSrc/com/intellij/openapi/extensions/impl/ExtensionPointImplTest.java
+++ b/platform/extensions/testSrc/com/intellij/openapi/extensions/impl/ExtensionPointImplTest.java
@@ -251,7 +251,7 @@ public class ExtensionPointImplTest {
}
private static ExtensionsAreaImpl buildExtensionArea() {
- return new ExtensionsAreaImpl(new DefaultPicoContainer());
+ return new ExtensionsAreaImpl(null, null, new DefaultPicoContainer());
}
private static MyShootingComponentAdapter stringAdapter() {
diff --git a/platform/extensions/testSrc/com/intellij/openapi/extensions/impl/ExtensionsComplexTest.java b/platform/extensions/testSrc/com/intellij/openapi/extensions/impl/ExtensionsComplexTest.java
index e0659abb3b40..bb78f21be414 100644
--- a/platform/extensions/testSrc/com/intellij/openapi/extensions/impl/ExtensionsComplexTest.java
+++ b/platform/extensions/testSrc/com/intellij/openapi/extensions/impl/ExtensionsComplexTest.java
@@ -1,9 +1,7 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.openapi.extensions.impl;
-import com.intellij.openapi.extensions.AreaInstance;
-import com.intellij.openapi.extensions.ExtensionPoint;
-import com.intellij.openapi.extensions.Extensions;
+import com.intellij.openapi.extensions.*;
import com.intellij.openapi.util.JDOMUtil;
import org.jdom.Element;
import org.jdom.JDOMException;
@@ -103,14 +101,15 @@ public class ExtensionsComplexTest {
final Element element = JDOMUtil.load(data);
for (final Object o : element.getChildren()) {
Element child = (Element)o;
- ((ExtensionsAreaImpl)Extensions.getArea(instance)).registerExtensionPoint(ExtensionsComplexTest.PLUGIN_NAME, child);
+ Extensions.getArea(instance)
+ .registerExtensionPoint(new DefaultPluginDescriptor(PluginId.getId(PLUGIN_NAME)), child);
}
}
private static void initExtensions(@NonNls String data, AreaInstance instance) throws IOException, JDOMException {
final Element element = JDOMUtil.load(data);
for (final Element child : element.getChildren()) {
- ExtensionsImplTest.registerExtension(((ExtensionsAreaImpl)Extensions.getArea(instance)), element.getNamespaceURI(), child);
+ ExtensionsImplTest.registerExtension((ExtensionsAreaImpl)Extensions.getArea(instance), element.getNamespaceURI(), child);
}
}
diff --git a/platform/extensions/testSrc/com/intellij/openapi/extensions/impl/ExtensionsImplTest.java b/platform/extensions/testSrc/com/intellij/openapi/extensions/impl/ExtensionsImplTest.java
index 29de05dd5cc9..a50ac60e5159 100644
--- a/platform/extensions/testSrc/com/intellij/openapi/extensions/impl/ExtensionsImplTest.java
+++ b/platform/extensions/testSrc/com/intellij/openapi/extensions/impl/ExtensionsImplTest.java
@@ -23,7 +23,7 @@ public class ExtensionsImplTest {
@Test
public void testCreateAndAccess() {
- ExtensionsAreaImpl extensionsArea = new ExtensionsAreaImpl(null);
+ ExtensionsAreaImpl extensionsArea = new ExtensionsAreaImpl(null, null, null);
int numEP = extensionsArea.getExtensionPoints().length;
extensionsArea.registerExtensionPoint(EXTENSION_POINT_NAME_1, Integer.class.getName());
assertEquals("Additional EP available", numEP + 1, extensionsArea.getExtensionPoints().length);
@@ -32,7 +32,7 @@ public class ExtensionsImplTest {
@Test(expected = Throwable.class)
public void testInvalidActions() {
- ExtensionsAreaImpl extensionsArea = new ExtensionsAreaImpl(null);
+ ExtensionsAreaImpl extensionsArea = new ExtensionsAreaImpl(null, null, null);
extensionsArea.registerExtensionPoint(EXTENSION_POINT_NAME_1, Integer.class.getName());
extensionsArea.registerExtensionPoint(EXTENSION_POINT_NAME_1, Boolean.class.getName());
fail("Should not allow duplicate registration");
@@ -40,7 +40,7 @@ public class ExtensionsImplTest {
@Test
public void testUnregisterEP() {
- ExtensionsAreaImpl extensionsArea = new ExtensionsAreaImpl(null);
+ ExtensionsAreaImpl extensionsArea = new ExtensionsAreaImpl(null, null, null);
int numEP = extensionsArea.getExtensionPoints().length;
extensionsArea.registerExtensionPoint(EXTENSION_POINT_NAME_1, Integer.class.getName());
@@ -59,7 +59,7 @@ public class ExtensionsImplTest {
@Test
public void testAvailabilityListener() {
- ExtensionsAreaImpl extensionsArea = new ExtensionsAreaImpl(null);
+ ExtensionsAreaImpl extensionsArea = new ExtensionsAreaImpl(null, null, null);
MyListener.reset();
extensionsArea.getExtensionPoint(EPAvailabilityListenerExtension.EXTENSION_POINT_NAME).registerExtension(
new EPAvailabilityListenerExtension(EXTENSION_POINT_NAME_1, MyListener.class.getName()));
@@ -76,7 +76,7 @@ public class ExtensionsImplTest {
@Test
public void testAvailability2Listeners() {
- ExtensionsAreaImpl extensionsArea = new ExtensionsAreaImpl(null);
+ ExtensionsAreaImpl extensionsArea = new ExtensionsAreaImpl(null, null, null);
MyListener.reset();
extensionsArea.registerExtensionPoint(EXTENSION_POINT_NAME_1, Integer.class.getName());
extensionsArea.getExtensionPoint(EPAvailabilityListenerExtension.EXTENSION_POINT_NAME).registerExtension(
@@ -93,7 +93,7 @@ public class ExtensionsImplTest {
@Test
public void testAvailabilityListenerAfter() {
- ExtensionsAreaImpl extensionsArea = new ExtensionsAreaImpl(null);
+ ExtensionsAreaImpl extensionsArea = new ExtensionsAreaImpl(null, null, null);
extensionsArea.registerExtensionPoint(EXTENSION_POINT_NAME_1, Integer.class.getName());
MyListener.reset();
extensionsArea.getExtensionPoint(EPAvailabilityListenerExtension.EXTENSION_POINT_NAME).registerExtension(
@@ -155,7 +155,7 @@ public class ExtensionsImplTest {
@Test
public void testExtensionsNamespaces() throws IOException, JDOMException {
- ExtensionsAreaImpl extensionsArea = new ExtensionsAreaImpl(new DefaultPicoContainer());
+ ExtensionsAreaImpl extensionsArea = new ExtensionsAreaImpl(null, null, new DefaultPicoContainer());
extensionsArea.registerExtensionPoint("plugin.ep1", TestExtensionClassOne.class.getName(), ExtensionPoint.Kind.BEAN_CLASS);
registerExtension(extensionsArea, "plugin", JDOMUtil.load(
"3"));
@@ -173,7 +173,7 @@ public class ExtensionsImplTest {
@Test
public void testExtensionsWithOrdering() throws IOException, JDOMException {
- ExtensionsAreaImpl extensionsArea = new ExtensionsAreaImpl(new DefaultPicoContainer());
+ ExtensionsAreaImpl extensionsArea = new ExtensionsAreaImpl(null, null, new DefaultPicoContainer());
extensionsArea.registerExtensionPoint("ep1", TestExtensionClassOne.class.getName(), ExtensionPoint.Kind.BEAN_CLASS);
registerExtension(extensionsArea, "", JDOMUtil.load(
"3"));
@@ -191,7 +191,7 @@ public class ExtensionsImplTest {
@Test
public void testExtensionsWithOrderingUpdate() throws IOException, JDOMException {
- ExtensionsAreaImpl extensionsArea = new ExtensionsAreaImpl(new DefaultPicoContainer());
+ ExtensionsAreaImpl extensionsArea = new ExtensionsAreaImpl(null, null, new DefaultPicoContainer());
extensionsArea.registerExtensionPoint("ep1", TestExtensionClassOne.class.getName(), ExtensionPoint.Kind.BEAN_CLASS);
registerExtension(extensionsArea, "", JDOMUtil.load("7"));
registerExtension(extensionsArea, "", JDOMUtil.load("1"));
diff --git a/platform/lang-impl/src/com/intellij/codeInsight/AutoPopupController.java b/platform/lang-impl/src/com/intellij/codeInsight/AutoPopupController.java
index 713d4964c92d..ce6e50dd42f5 100644
--- a/platform/lang-impl/src/com/intellij/codeInsight/AutoPopupController.java
+++ b/platform/lang-impl/src/com/intellij/codeInsight/AutoPopupController.java
@@ -75,7 +75,7 @@ public class AutoPopupController implements Disposable {
private void setupListeners() {
ApplicationManager.getApplication().getMessageBus().connect(this).subscribe(AnActionListener.TOPIC, new AnActionListener() {
@Override
- public void beforeActionPerformed(@NotNull AnAction action, @NotNull DataContext dataContext, AnActionEvent event) {
+ public void beforeActionPerformed(@NotNull AnAction action, @NotNull DataContext dataContext, @NotNull AnActionEvent event) {
cancelAllRequests();
}
diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/ActionTracker.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/ActionTracker.java
index dd1e9b7c387b..10ab99168c29 100644
--- a/platform/lang-impl/src/com/intellij/codeInsight/completion/ActionTracker.java
+++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/ActionTracker.java
@@ -40,7 +40,7 @@ class ActionTracker {
}
@Override
- public void beforeActionPerformed(@NotNull AnAction action, @NotNull DataContext dataContext, AnActionEvent event) {
+ public void beforeActionPerformed(@NotNull AnAction action, @NotNull DataContext dataContext, @NotNull AnActionEvent event) {
myActionsHappened = true;
}
});
diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonListeners.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonListeners.java
index ff5ebad2a3b4..021f6e3b624a 100644
--- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonListeners.java
+++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonListeners.java
@@ -543,7 +543,7 @@ public class DaemonListeners implements Disposable {
private final AnAction escapeAction = myActionManager.getAction(IdeActions.ACTION_EDITOR_ESCAPE);
@Override
- public void beforeActionPerformed(@NotNull AnAction action, @NotNull DataContext dataContext, AnActionEvent event) {
+ public void beforeActionPerformed(@NotNull AnAction action, @NotNull DataContext dataContext, @NotNull AnActionEvent event) {
myEscPressed = action == escapeAction;
}
diff --git a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java
index 754a2f5d9ab4..917d0453d54f 100644
--- a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java
+++ b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java
@@ -208,7 +208,7 @@ public class DocumentationManager extends DockablePopupManager= 2 && s.charAt(s.length() - 2) == ' ') {
+ if (result == null && s.length() >= 2 && s.charAt(s.length() - 2) == ' ') {
try {
String s1 = s.substring(0, s.length() - 1) + Character.toUpperCase(s.charAt(s.length() - 1));
result = KeyStroke.getKeyStroke(s1);
@@ -83,17 +82,12 @@ public abstract class ActionManagerEx extends ActionManager {
public abstract boolean isTransparentOnlyActionsUpdateNow();
- public void fireBeforeActionPerformed(String actionId, InputEvent event) {
+ public void fireBeforeActionPerformed(@NotNull String actionId, @NotNull InputEvent event) {
final AnAction action = getAction(actionId);
if (action != null) {
AnActionEvent e = AnActionEvent.createFromAnAction(action, event, ActionPlaces.UNKNOWN, DataManager.getInstance().getDataContext());
fireBeforeActionPerformed(action, DataManager.getInstance().getDataContext(), e);
}
}
-
- /**
- * Allows to receive notifications when popup menus created from action groups are shown and hidden.
- */
- public abstract void addActionPopupMenuListener(ActionPopupMenuListener listener, Disposable parentDisposable);
}
diff --git a/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ActionPopupMenuListener.java b/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ActionPopupMenuListener.java
index 750d23965236..0d6e86f7229c 100644
--- a/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ActionPopupMenuListener.java
+++ b/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ActionPopupMenuListener.java
@@ -1,14 +1,12 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.openapi.actionSystem.ex;
-import com.intellij.openapi.Disposable;
import com.intellij.openapi.actionSystem.ActionPopupMenu;
import org.jetbrains.annotations.NotNull;
/**
* Allows to receive notifications when popup menus created from action groups are shown and closed.
*
- * @see ActionManagerEx#addActionPopupMenuListener(ActionPopupMenuListener, Disposable)
*/
public interface ActionPopupMenuListener {
default void actionPopupMenuCreated(@NotNull ActionPopupMenu menu) {
diff --git a/platform/platform-impl/src/com/intellij/codeInsight/hint/HintManagerImpl.java b/platform/platform-impl/src/com/intellij/codeInsight/hint/HintManagerImpl.java
index 389f6c2015a8..e6fbe5588ca5 100644
--- a/platform/platform-impl/src/com/intellij/codeInsight/hint/HintManagerImpl.java
+++ b/platform/platform-impl/src/com/intellij/codeInsight/hint/HintManagerImpl.java
@@ -868,7 +868,7 @@ public class HintManagerImpl extends HintManager {
private class MyAnActionListener implements AnActionListener {
@Override
- public void beforeActionPerformed(@NotNull AnAction action, @NotNull DataContext dataContext, AnActionEvent event) {
+ public void beforeActionPerformed(@NotNull AnAction action, @NotNull DataContext dataContext, @NotNull AnActionEvent event) {
if (action instanceof ActionToIgnore) return;
AnAction escapeAction = ActionManagerEx.getInstanceEx().getAction(IdeActions.ACTION_EDITOR_ESCAPE);
diff --git a/platform/platform-impl/src/com/intellij/ide/IdeTooltipManager.java b/platform/platform-impl/src/com/intellij/ide/IdeTooltipManager.java
index 081ae0bdbed1..d56c105d6238 100644
--- a/platform/platform-impl/src/com/intellij/ide/IdeTooltipManager.java
+++ b/platform/platform-impl/src/com/intellij/ide/IdeTooltipManager.java
@@ -95,7 +95,7 @@ public class IdeTooltipManager implements Disposable, AWTEventListener, BaseComp
ApplicationManager.getApplication().getMessageBus().connect(ApplicationManager.getApplication()).subscribe(AnActionListener.TOPIC, new AnActionListener() {
@Override
- public void beforeActionPerformed(@NotNull AnAction action, @NotNull DataContext dataContext, AnActionEvent event) {
+ public void beforeActionPerformed(@NotNull AnAction action, @NotNull DataContext dataContext, @NotNull AnActionEvent event) {
hideCurrent(null, action, event);
}
});
diff --git a/platform/platform-impl/src/com/intellij/ide/actionMacro/ActionMacroManager.java b/platform/platform-impl/src/com/intellij/ide/actionMacro/ActionMacroManager.java
index 2e85c2832130..b7ce216d35eb 100644
--- a/platform/platform-impl/src/com/intellij/ide/actionMacro/ActionMacroManager.java
+++ b/platform/platform-impl/src/com/intellij/ide/actionMacro/ActionMacroManager.java
@@ -78,7 +78,7 @@ public class ActionMacroManager implements PersistentStateComponent, Di
myActionManager = actionManager;
messageBus.connect(this).subscribe(AnActionListener.TOPIC, new AnActionListener() {
@Override
- public void beforeActionPerformed(@NotNull AnAction action, @NotNull DataContext dataContext, final AnActionEvent event) {
+ public void beforeActionPerformed(@NotNull AnAction action, @NotNull DataContext dataContext, @NotNull final AnActionEvent event) {
String id = actionManager.getId(action);
if (id == null) return;
//noinspection HardCodedStringLiteral
diff --git a/platform/platform-impl/src/com/intellij/ide/impl/DataManagerImpl.java b/platform/platform-impl/src/com/intellij/ide/impl/DataManagerImpl.java
index 2399f8f5c3dd..8ad5afb3c32f 100644
--- a/platform/platform-impl/src/com/intellij/ide/impl/DataManagerImpl.java
+++ b/platform/platform-impl/src/com/intellij/ide/impl/DataManagerImpl.java
@@ -200,6 +200,7 @@ public class DataManagerImpl extends DataManager {
return result;
}
+ @NotNull
public DataContext getDataContextTest(Component component) {
DataContext dataContext = getDataContext(component);
if (myWindowManager == null) {
diff --git a/platform/platform-impl/src/com/intellij/internal/statistic/collectors/fus/fileTypes/FileTypeExtensionUsagesCollectorStartupActivity.java b/platform/platform-impl/src/com/intellij/internal/statistic/collectors/fus/fileTypes/FileTypeExtensionUsagesCollectorStartupActivity.java
index 886f1407b470..cd3df425a7d9 100644
--- a/platform/platform-impl/src/com/intellij/internal/statistic/collectors/fus/fileTypes/FileTypeExtensionUsagesCollectorStartupActivity.java
+++ b/platform/platform-impl/src/com/intellij/internal/statistic/collectors/fus/fileTypes/FileTypeExtensionUsagesCollectorStartupActivity.java
@@ -34,7 +34,7 @@ public class FileTypeExtensionUsagesCollectorStartupActivity implements StartupA
});
ApplicationManager.getApplication().getMessageBus().connect(project).subscribe(AnActionListener.TOPIC, new AnActionListener() {
@Override
- public void beforeActionPerformed(@NotNull AnAction action, @NotNull DataContext dataContext, AnActionEvent event) {
+ public void beforeActionPerformed(@NotNull AnAction action, @NotNull DataContext dataContext, @NotNull AnActionEvent event) {
if (action instanceof EditorAction && ((EditorAction)action).getHandler() instanceof EditorWriteActionHandler) {
onChange(dataContext);
}
diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java
index 77b5172ecdee..ab16409f45e5 100644
--- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java
+++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java
@@ -13,6 +13,7 @@ import com.intellij.openapi.actionSystem.ex.CustomComponentAction;
import com.intellij.openapi.application.impl.LaterInvocator;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.keymap.KeymapUtil;
+import com.intellij.openapi.keymap.impl.IdeMouseEventDispatcher;
import com.intellij.openapi.ui.popup.JBPopup;
import com.intellij.openapi.ui.popup.JBPopupAdapter;
import com.intellij.openapi.ui.popup.LightweightWindowEvent;
@@ -33,9 +34,6 @@ import java.awt.event.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
-import static com.intellij.openapi.keymap.impl.IdeMouseEventDispatcher.requestFocusInNonFocusedWindow;
-import static java.awt.event.KeyEvent.VK_SPACE;
-
public class ActionButton extends JComponent implements ActionButtonComponent, AnActionHolder, Accessible {
private JBDimension myMinimumButtonSize;
private PropertyChangeListener myPresentationListener;
@@ -47,9 +45,9 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
private ActionButtonLook myLook = ActionButtonLook.SYSTEM_LOOK;
private boolean myMouseDown;
private boolean myRollover;
- private static boolean ourGlobalMouseDown = false;
+ private static boolean ourGlobalMouseDown;
- private boolean myNoIconsInPopup = false;
+ private boolean myNoIconsInPopup;
private Insets myInsets;
public ActionButton(@NotNull AnAction action,
@@ -70,7 +68,7 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
- if (e.getModifiers() == 0 && e.getKeyCode() == VK_SPACE) {
+ if (e.getModifiers() == 0 && e.getKeyCode() == KeyEvent.VK_SPACE) {
click();
}
}
@@ -94,7 +92,7 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
myNoIconsInPopup = noIconsInPopup;
}
- public void setMinimumButtonSize(@NotNull Dimension size) {
+ void setMinimumButtonSize(@NotNull Dimension size) {
myMinimumButtonSize = JBDimension.create(size);
}
@@ -118,7 +116,7 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
return super.isEnabled() && myPresentation.isEnabled();
}
- protected boolean isButtonEnabled() {
+ boolean isButtonEnabled() {
return isEnabled();
}
@@ -185,7 +183,7 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
}
}
- protected void showPopupMenu(AnActionEvent event, ActionGroup actionGroup) {
+ private void showPopupMenu(AnActionEvent event, ActionGroup actionGroup) {
final ActionManagerImpl am = (ActionManagerImpl) ActionManager.getInstance();
ActionPopupMenuImpl popupMenu = (ActionPopupMenuImpl)am.createActionPopupMenu(event.getPlace(), actionGroup, new MenuItemPresentationFactory() {
@Override
@@ -196,7 +194,7 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
}
}
});
- popupMenu.setDataContextProvider(() -> this.getDataContext());
+ popupMenu.setDataContextProvider(() -> getDataContext());
if (event.isFromActionToolbar()) {
popupMenu.getComponent().show(this, 0, getHeight());
@@ -206,7 +204,7 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
}
}
- protected boolean isPopupMenuAction(AnActionEvent event, AnAction action) {
+ private static boolean isPopupMenuAction(AnActionEvent event, AnAction action) {
return action instanceof ActionGroup &&
!(action instanceof CustomComponentAction) &&
((ActionGroup) action).isPopup() &&
@@ -244,7 +242,7 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
public void setToolTipText(String s) {
if (!Registry.is("ide.helptooltip.enabled")) {
String tooltipText = KeymapUtil.createTooltipText(s, myAction);
- super.setToolTipText(tooltipText.length() > 0 ? tooltipText : null);
+ super.setToolTipText(tooltipText.isEmpty() ? null : tooltipText);
}
}
@@ -350,7 +348,7 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
paintDownArrowIfGroup(g);
}
- protected void jComponentPaint(Graphics g) {
+ private void jComponentPaint(Graphics g) {
super.paintComponent(g);
}
@@ -378,18 +376,13 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
}
public void setLook(ActionButtonLook look) {
- if (look != null) {
- myLook = look;
- }
- else {
- myLook = ActionButtonLook.SYSTEM_LOOK;
- }
+ myLook = look == null ? ActionButtonLook.SYSTEM_LOOK : look;
repaint();
}
@Override
protected void processMouseEvent(MouseEvent e) {
- requestFocusInNonFocusedWindow(e);
+ IdeMouseEventDispatcher.requestFocusInNonFocusedWindow(e);
super.processMouseEvent(e);
if (e.isConsumed()) return;
boolean skipPress = checkSkipPressForEvent(e);
@@ -398,7 +391,6 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
if (skipPress || !isButtonEnabled()) return;
myMouseDown = true;
ourGlobalMouseDown = true;
- onMousePressed(e);
repaint();
break;
@@ -406,7 +398,6 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
if (skipPress || !isButtonEnabled()) return;
myMouseDown = false;
ourGlobalMouseDown = false;
- onMouseReleased(e);
if (myRollover) {
performAction(e);
}
@@ -429,15 +420,7 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
}
}
- protected void onMouseReleased(@NotNull MouseEvent e) {
- // Extension point
- }
-
- protected void onMousePressed(@NotNull MouseEvent e) {
- // Extension point
- }
-
- protected boolean checkSkipPressForEvent(@NotNull MouseEvent e) {
+ private static boolean checkSkipPressForEvent(@NotNull MouseEvent e) {
return e.isMetaDown() || e.getButton() != MouseEvent.BUTTON1;
}
@@ -482,17 +465,18 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
// Accessibility
@Override
+ @NotNull
public AccessibleContext getAccessibleContext() {
- if(this.accessibleContext == null) {
- this.accessibleContext = new AccessibleActionButton();
+ AccessibleContext context = accessibleContext;
+ if(context == null) {
+ accessibleContext = context = new AccessibleActionButton();
}
- return this.accessibleContext;
+ return context;
}
-
protected class AccessibleActionButton extends JComponent.AccessibleJComponent implements AccessibleAction {
- public AccessibleActionButton() {
+ AccessibleActionButton() {
}
@Override
@@ -504,11 +488,11 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
public String getAccessibleName() {
String name = accessibleName;
if (name == null) {
- name = (String)ActionButton.this.getClientProperty(ACCESSIBLE_NAME_PROPERTY);
+ name = (String)getClientProperty(ACCESSIBLE_NAME_PROPERTY);
if (name == null) {
name = ActionButton.this.getToolTipText();
if (name == null) {
- name = ActionButton.this.myPresentation.getText();
+ name = myPresentation.getText();
if (name == null) {
name = super.getAccessibleName();
}
@@ -526,7 +510,7 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
@Override
public AccessibleIcon[] getAccessibleIcon() {
- Icon icon = ActionButton.this.getIcon();
+ Icon icon = getIcon();
if (icon instanceof Accessible) {
AccessibleContext context = ((Accessible)icon).getAccessibleContext();
if (context instanceof AccessibleIcon) {
@@ -540,7 +524,7 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
@Override
public AccessibleStateSet getAccessibleStateSet() {
AccessibleStateSet var1 = super.getAccessibleStateSet();
- int state = ActionButton.this.getPopState();
+ int state = getPopState();
// TODO: Not sure what the "POPPED" state represents
//if (state == POPPED) {
@@ -554,7 +538,7 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
var1.add(AccessibleState.CHECKED);
}
- if (ActionButton.this.isFocusOwner()) {
+ if (isFocusOwner()) {
var1.add(AccessibleState.FOCUSED);
}
@@ -580,13 +564,11 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
@Override
public boolean doAccessibleAction(int index) {
- if (index == 0) { //
- ActionButton.this.click();
+ if (index == 0) {
+ click();
return true;
}
- else {
- return false;
- }
+ return false;
}
}
}
diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionManagerImpl.java
index 46d5e88bf83c..37917f00e22c 100644
--- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionManagerImpl.java
+++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionManagerImpl.java
@@ -15,7 +15,6 @@ import com.intellij.internal.statistic.collectors.fus.actions.persistence.Action
import com.intellij.openapi.Disposable;
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.actionSystem.ex.ActionManagerEx;
-import com.intellij.openapi.actionSystem.ex.ActionPopupMenuListener;
import com.intellij.openapi.actionSystem.ex.ActionUtil;
import com.intellij.openapi.actionSystem.ex.AnActionListener;
import com.intellij.openapi.application.*;
@@ -31,7 +30,6 @@ import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.progress.ProgressIndicator;
import com.intellij.openapi.project.ProjectType;
import com.intellij.openapi.util.ActionCallback;
-import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.IconLoader;
import com.intellij.openapi.util.registry.Registry;
import com.intellij.openapi.util.text.StringUtil;
@@ -48,7 +46,6 @@ import com.intellij.util.messages.MessageBusConnection;
import com.intellij.util.pico.CachingConstructorInjectionComponentAdapter;
import com.intellij.util.ui.UIUtil;
import gnu.trove.THashMap;
-import gnu.trove.THashSet;
import gnu.trove.TObjectIntHashMap;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
@@ -57,49 +54,52 @@ import org.jetbrains.annotations.Nullable;
import javax.swing.Timer;
import javax.swing.*;
import java.awt.*;
-import java.awt.event.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.InputEvent;
+import java.awt.event.WindowEvent;
import java.util.List;
import java.util.*;
public final class ActionManagerImpl extends ActionManagerEx implements Disposable {
- public static final String ACTION_ELEMENT_NAME = "action";
- public static final String GROUP_ELEMENT_NAME = "group";
- public static final String CLASS_ATTR_NAME = "class";
- public static final String ID_ATTR_NAME = "id";
- public static final String INTERNAL_ATTR_NAME = "internal";
- public static final String ICON_ATTR_NAME = "icon";
- public static final String ADD_TO_GROUP_ELEMENT_NAME = "add-to-group";
- public static final String SHORTCUT_ELEMENT_NAME = "keyboard-shortcut";
- public static final String MOUSE_SHORTCUT_ELEMENT_NAME = "mouse-shortcut";
- public static final String DESCRIPTION = "description";
- public static final String TEXT_ATTR_NAME = "text";
- public static final String POPUP_ATTR_NAME = "popup";
- public static final String COMPACT_ATTR_NAME = "compact";
- public static final String SEPARATOR_ELEMENT_NAME = "separator";
- public static final String REFERENCE_ELEMENT_NAME = "reference";
- public static final String ABBREVIATION_ELEMENT_NAME = "abbreviation";
- public static final String GROUPID_ATTR_NAME = "group-id";
- public static final String ANCHOR_ELEMENT_NAME = "anchor";
- public static final String FIRST = "first";
- public static final String LAST = "last";
- public static final String BEFORE = "before";
- public static final String AFTER = "after";
- public static final String SECONDARY = "secondary";
- public static final String RELATIVE_TO_ACTION_ATTR_NAME = "relative-to-action";
- public static final String FIRST_KEYSTROKE_ATTR_NAME = "first-keystroke";
- public static final String SECOND_KEYSTROKE_ATTR_NAME = "second-keystroke";
- public static final String REMOVE_SHORTCUT_ATTR_NAME = "remove";
- public static final String REPLACE_SHORTCUT_ATTR_NAME = "replace-all";
- public static final String KEYMAP_ATTR_NAME = "keymap";
- public static final String KEYSTROKE_ATTR_NAME = "keystroke";
- public static final String REF_ATTR_NAME = "ref";
- public static final String VALUE_ATTR_NAME = "value";
- public static final String ACTIONS_BUNDLE = "messages.ActionsBundle";
- public static final String USE_SHORTCUT_OF_ATTR_NAME = "use-shortcut-of";
- public static final String OVERRIDES_ATTR_NAME = "overrides";
- public static final String KEEP_CONTENT_ATTR_NAME = "keep-content";
- public static final String PROJECT_TYPE = "project-type";
- public static final String UNREGISTER_ELEMENT_NAME = "unregister";
+ private static final String ACTION_ELEMENT_NAME = "action";
+ private static final String GROUP_ELEMENT_NAME = "group";
+ private static final String CLASS_ATTR_NAME = "class";
+ private static final String ID_ATTR_NAME = "id";
+ private static final String INTERNAL_ATTR_NAME = "internal";
+ private static final String ICON_ATTR_NAME = "icon";
+ private static final String ADD_TO_GROUP_ELEMENT_NAME = "add-to-group";
+ private static final String SHORTCUT_ELEMENT_NAME = "keyboard-shortcut";
+ private static final String MOUSE_SHORTCUT_ELEMENT_NAME = "mouse-shortcut";
+ private static final String DESCRIPTION = "description";
+ private static final String TEXT_ATTR_NAME = "text";
+ private static final String POPUP_ATTR_NAME = "popup";
+ private static final String COMPACT_ATTR_NAME = "compact";
+ private static final String SEPARATOR_ELEMENT_NAME = "separator";
+ private static final String REFERENCE_ELEMENT_NAME = "reference";
+ private static final String ABBREVIATION_ELEMENT_NAME = "abbreviation";
+ private static final String GROUPID_ATTR_NAME = "group-id";
+ private static final String ANCHOR_ELEMENT_NAME = "anchor";
+ private static final String FIRST = "first";
+ private static final String LAST = "last";
+ private static final String BEFORE = "before";
+ private static final String AFTER = "after";
+ private static final String SECONDARY = "secondary";
+ private static final String RELATIVE_TO_ACTION_ATTR_NAME = "relative-to-action";
+ private static final String FIRST_KEYSTROKE_ATTR_NAME = "first-keystroke";
+ private static final String SECOND_KEYSTROKE_ATTR_NAME = "second-keystroke";
+ private static final String REMOVE_SHORTCUT_ATTR_NAME = "remove";
+ private static final String REPLACE_SHORTCUT_ATTR_NAME = "replace-all";
+ private static final String KEYMAP_ATTR_NAME = "keymap";
+ private static final String KEYSTROKE_ATTR_NAME = "keystroke";
+ private static final String REF_ATTR_NAME = "ref";
+ private static final String VALUE_ATTR_NAME = "value";
+ private static final String ACTIONS_BUNDLE = "messages.ActionsBundle";
+ private static final String USE_SHORTCUT_OF_ATTR_NAME = "use-shortcut-of";
+ private static final String OVERRIDES_ATTR_NAME = "overrides";
+ private static final String KEEP_CONTENT_ATTR_NAME = "keep-content";
+ private static final String PROJECT_TYPE = "project-type";
+ private static final String UNREGISTER_ELEMENT_NAME = "unregister";
private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.actionSystem.impl.ActionManagerImpl");
private static final int DEACTIVATED_TIMER_DELAY = 5000;
@@ -108,16 +108,15 @@ public final class ActionManagerImpl extends ActionManagerEx implements Disposab
private final Object myLock = new Object();
private final Map myId2Action = new THashMap<>();
- private final Map> myPlugin2Id = new THashMap<>();
+ private final MultiMap myPlugin2Id = new MultiMap<>();
private final TObjectIntHashMap myId2Index = new TObjectIntHashMap<>();
private final Map