diff --git a/platform/platform-api/src/com/intellij/openapi/project/DumbAwareAction.java b/platform/platform-api/src/com/intellij/openapi/project/DumbAwareAction.java index 5eff75533c26..49e6f94b7daa 100644 --- a/platform/platform-api/src/com/intellij/openapi/project/DumbAwareAction.java +++ b/platform/platform-api/src/com/intellij/openapi/project/DumbAwareAction.java @@ -6,7 +6,6 @@ import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.util.NlsActions; import com.intellij.util.Consumer; -import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -59,15 +58,15 @@ public abstract class DumbAwareAction extends AnAction implements DumbAware { super(dynamicText, icon); } - private static class SimpleDumbAwareAction extends DumbAwareAction implements ActionWithDelegate> { + static class SimpleDumbAwareAction extends DumbAwareAction implements ActionWithDelegate> { private final Consumer myActionPerformed; - private SimpleDumbAwareAction(Consumer actionPerformed) { + SimpleDumbAwareAction(Consumer actionPerformed) { myActionPerformed = actionPerformed; } - private SimpleDumbAwareAction(@NlsActions.ActionText String text, - Consumer actionPerformed) { + SimpleDumbAwareAction(@NlsActions.ActionText String text, + Consumer actionPerformed) { super(text); myActionPerformed = actionPerformed; } diff --git a/platform/platform-api/src/com/intellij/openapi/project/LightEditActionFactory.java b/platform/platform-api/src/com/intellij/openapi/project/LightEditActionFactory.java new file mode 100644 index 000000000000..3a74cc98000b --- /dev/null +++ b/platform/platform-api/src/com/intellij/openapi/project/LightEditActionFactory.java @@ -0,0 +1,38 @@ +// Copyright 2000-2020 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.project; + +import com.intellij.ide.lightEdit.LightEditCompatible; +import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.util.NlsActions; +import com.intellij.util.Consumer; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public final class LightEditActionFactory { + + private LightEditActionFactory() { + } + + @NotNull + public static DumbAwareAction create(@NotNull Consumer actionPerformed) { + return new SimpleLightEditCompatibleAction(actionPerformed); + } + + @NotNull + public static DumbAwareAction create(@Nullable @NlsActions.ActionText String text, + @NotNull Consumer actionPerformed) { + return new SimpleLightEditCompatibleAction(text, actionPerformed); + } + + private static class SimpleLightEditCompatibleAction extends DumbAwareAction.SimpleDumbAwareAction implements LightEditCompatible { + + SimpleLightEditCompatibleAction(Consumer actionPerformed) { + super(actionPerformed); + } + + SimpleLightEditCompatibleAction(@NlsActions.ActionText String text, + Consumer actionPerformed) { + super(text, actionPerformed); + } + } +} diff --git a/platform/platform-impl/src/com/intellij/ide/actions/RecentLocationsAction.java b/platform/platform-impl/src/com/intellij/ide/actions/RecentLocationsAction.java index 1679434a69bd..a21b2ce5b583 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/RecentLocationsAction.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/RecentLocationsAction.java @@ -18,6 +18,7 @@ import com.intellij.openapi.fileEditor.ex.IdeDocumentHistory; import com.intellij.openapi.fileEditor.impl.IdeDocumentHistoryImpl; import com.intellij.openapi.keymap.KeymapUtil; import com.intellij.openapi.project.DumbAwareAction; +import com.intellij.openapi.project.LightEditActionFactory; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.popup.JBPopup; import com.intellij.openapi.ui.popup.JBPopupFactory; @@ -134,7 +135,7 @@ public final class RecentLocationsAction extends DumbAwareAction implements Ligh .setLocateWithinScreenBounds(false) .createPopup(); - DumbAwareAction.create(event -> { + LightEditActionFactory.create(event -> { checkBox.setSelected(!checkBox.isSelected()); updateItems(model, listWithFilter, title, checkBox, popup); }).registerCustomShortcutSet(showChangedOnlyShortcutSet, list, popup); @@ -313,10 +314,10 @@ public final class RecentLocationsAction extends DumbAwareAction implements Ligh } }); - DumbAwareAction.create(e -> navigateToSelected(project, list, popup)) + LightEditActionFactory.create(e -> navigateToSelected(project, list, popup)) .registerCustomShortcutSet(CustomShortcutSet.fromString("ENTER"), listWithFilter, popup); - DumbAwareAction.create(e -> removePlaces(project, listWithFilter, list, data, checkBox.isSelected())) + LightEditActionFactory.create(e -> removePlaces(project, listWithFilter, list, data, checkBox.isSelected())) .registerCustomShortcutSet(CustomShortcutSet.fromString("DELETE", "BACK_SPACE"), listWithFilter, popup); }