From 66b2b6b7a4c77d0b32a025e2da8933ea6c0ad400 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 13 Oct 2011 15:06:37 +0200 Subject: [PATCH] make it possible to provide custom name for Delete action via TitledHandler interface (IDEA-63434) --- .../intellij/{refactoring/lang => ide}/TitledHandler.java | 6 ++---- .../ide/projectView/impl/RenameModuleHandler.java | 2 +- .../ui/configuration/actions/ModuleDeleteProvider.java | 8 +++++++- .../refactoring/actions/ExtractIncludeAction.java | 2 +- .../intellij/refactoring/lang/ExtractIncludeFileBase.java | 1 + .../rename/DirectoryAsPackageRenameHandlerBase.java | 2 +- .../refactoring/rename/RenameHandlerRegistry.java | 2 +- .../src/com/intellij/ide/actions/DeleteAction.java | 6 +++++- .../groovy/refactoring/rename/PropertyRenameHandler.java | 2 +- 9 files changed, 20 insertions(+), 11 deletions(-) rename platform/lang-api/src/com/intellij/{refactoring/lang => ide}/TitledHandler.java (80%) diff --git a/platform/lang-api/src/com/intellij/refactoring/lang/TitledHandler.java b/platform/lang-api/src/com/intellij/ide/TitledHandler.java similarity index 80% rename from platform/lang-api/src/com/intellij/refactoring/lang/TitledHandler.java rename to platform/lang-api/src/com/intellij/ide/TitledHandler.java index 89b134c3a995..71c971d5dba7 100644 --- a/platform/lang-api/src/com/intellij/refactoring/lang/TitledHandler.java +++ b/platform/lang-api/src/com/intellij/ide/TitledHandler.java @@ -14,13 +14,11 @@ * limitations under the License. */ -package com.intellij.refactoring.lang; - -import com.intellij.refactoring.RefactoringActionHandler; +package com.intellij.ide; /** * @author yole */ -public interface TitledHandler extends RefactoringActionHandler { +public interface TitledHandler { String getActionTitle(); } diff --git a/platform/lang-impl/src/com/intellij/ide/projectView/impl/RenameModuleHandler.java b/platform/lang-impl/src/com/intellij/ide/projectView/impl/RenameModuleHandler.java index ca98e641c29e..98e956b9f60c 100644 --- a/platform/lang-impl/src/com/intellij/ide/projectView/impl/RenameModuleHandler.java +++ b/platform/lang-impl/src/com/intellij/ide/projectView/impl/RenameModuleHandler.java @@ -17,6 +17,7 @@ package com.intellij.ide.projectView.impl; import com.intellij.ide.IdeBundle; +import com.intellij.ide.TitledHandler; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.actionSystem.LangDataKeys; import com.intellij.openapi.application.ApplicationManager; @@ -34,7 +35,6 @@ import com.intellij.openapi.util.Ref; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.refactoring.RefactoringBundle; -import com.intellij.refactoring.lang.TitledHandler; import com.intellij.refactoring.rename.RenameHandler; import org.jetbrains.annotations.NotNull; diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/actions/ModuleDeleteProvider.java b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/actions/ModuleDeleteProvider.java index 39d4d7c37f99..fc18c1160203 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/actions/ModuleDeleteProvider.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/actions/ModuleDeleteProvider.java @@ -17,6 +17,7 @@ package com.intellij.openapi.roots.ui.configuration.actions; import com.intellij.ide.DeleteProvider; +import com.intellij.ide.TitledHandler; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.actionSystem.LangDataKeys; import com.intellij.openapi.actionSystem.PlatformDataKeys; @@ -40,7 +41,7 @@ import java.util.Collection; import java.util.HashMap; import java.util.Map; -public class ModuleDeleteProvider implements DeleteProvider { +public class ModuleDeleteProvider implements DeleteProvider, TitledHandler { public boolean canDeleteElement(DataContext dataContext) { return LangDataKeys.MODULE_CONTEXT_ARRAY.getData(dataContext) != null; } @@ -84,6 +85,11 @@ public class ModuleDeleteProvider implements DeleteProvider { }, ProjectBundle.message("module.remove.command"), null); } + @Override + public String getActionTitle() { + return "Remove Module"; + } + public static void removeModule(@NotNull final Module moduleToRemove, @Nullable ModifiableRootModel modifiableRootModelToRemove, @NotNull Collection otherModuleRootModels, diff --git a/platform/lang-impl/src/com/intellij/refactoring/actions/ExtractIncludeAction.java b/platform/lang-impl/src/com/intellij/refactoring/actions/ExtractIncludeAction.java index f2b60e77e462..794eac33c3ab 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/actions/ExtractIncludeAction.java +++ b/platform/lang-impl/src/com/intellij/refactoring/actions/ExtractIncludeAction.java @@ -16,6 +16,7 @@ package com.intellij.refactoring.actions; +import com.intellij.ide.TitledHandler; import com.intellij.lang.Language; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.DataContext; @@ -23,7 +24,6 @@ import com.intellij.openapi.actionSystem.LangDataKeys; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.refactoring.RefactoringActionHandler; -import com.intellij.refactoring.lang.TitledHandler; import com.intellij.refactoring.lang.LanguageExtractInclude; /** diff --git a/platform/lang-impl/src/com/intellij/refactoring/lang/ExtractIncludeFileBase.java b/platform/lang-impl/src/com/intellij/refactoring/lang/ExtractIncludeFileBase.java index c1d5c3cb028b..ff331f45af6a 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/lang/ExtractIncludeFileBase.java +++ b/platform/lang-impl/src/com/intellij/refactoring/lang/ExtractIncludeFileBase.java @@ -19,6 +19,7 @@ package com.intellij.refactoring.lang; import com.intellij.codeInsight.PsiEquivalenceUtil; import com.intellij.codeInsight.highlighting.HighlightManager; import com.intellij.find.FindManager; +import com.intellij.ide.TitledHandler; import com.intellij.lang.Language; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.application.ApplicationManager; diff --git a/platform/lang-impl/src/com/intellij/refactoring/rename/DirectoryAsPackageRenameHandlerBase.java b/platform/lang-impl/src/com/intellij/refactoring/rename/DirectoryAsPackageRenameHandlerBase.java index efb7372e5e97..af922fe0078d 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/rename/DirectoryAsPackageRenameHandlerBase.java +++ b/platform/lang-impl/src/com/intellij/refactoring/rename/DirectoryAsPackageRenameHandlerBase.java @@ -16,6 +16,7 @@ package com.intellij.refactoring.rename; import com.intellij.CommonBundle; +import com.intellij.ide.TitledHandler; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.actionSystem.LangDataKeys; import com.intellij.openapi.actionSystem.PlatformDataKeys; @@ -37,7 +38,6 @@ import com.intellij.psi.PsiFile; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.refactoring.BaseRefactoringProcessor; import com.intellij.refactoring.RefactoringBundle; -import com.intellij.refactoring.lang.TitledHandler; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/platform/lang-impl/src/com/intellij/refactoring/rename/RenameHandlerRegistry.java b/platform/lang-impl/src/com/intellij/refactoring/rename/RenameHandlerRegistry.java index e3229ed70f63..dd4139a9d655 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/rename/RenameHandlerRegistry.java +++ b/platform/lang-impl/src/com/intellij/refactoring/rename/RenameHandlerRegistry.java @@ -16,6 +16,7 @@ package com.intellij.refactoring.rename; +import com.intellij.ide.TitledHandler; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.actionSystem.PlatformDataKeys; import com.intellij.openapi.application.ApplicationManager; @@ -25,7 +26,6 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.util.text.StringUtil; import com.intellij.refactoring.RefactoringBundle; -import com.intellij.refactoring.lang.TitledHandler; import com.intellij.refactoring.util.RadioUpDownListener; import com.intellij.util.ArrayUtil; import com.intellij.util.containers.HashSet; diff --git a/platform/platform-impl/src/com/intellij/ide/actions/DeleteAction.java b/platform/platform-impl/src/com/intellij/ide/actions/DeleteAction.java index 015c0d65b5b4..e53cceacd4fd 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/DeleteAction.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/DeleteAction.java @@ -18,10 +18,11 @@ package com.intellij.ide.actions; import com.intellij.ide.DeleteProvider; import com.intellij.ide.IdeBundle; +import com.intellij.ide.TitledHandler; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.project.Project; import com.intellij.openapi.project.DumbAware; +import com.intellij.openapi.project.Project; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -69,6 +70,9 @@ public class DeleteAction extends AnAction implements DumbAware { Object component = PlatformDataKeys.CONTEXT_COMPONENT.getData(dataContext); if (component instanceof JTextComponent) provider = null; // Do not override text deletion } + if (provider instanceof TitledHandler) { + presentation.setText(((TitledHandler)provider).getActionTitle()); + } final boolean canDelete = provider != null && provider.canDeleteElement(dataContext); if (ActionPlaces.isPopupPlace(event.getPlace())) { presentation.setVisible(canDelete); diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/PropertyRenameHandler.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/PropertyRenameHandler.java index 6332bd732707..dc9635b4d1e1 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/PropertyRenameHandler.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/PropertyRenameHandler.java @@ -15,6 +15,7 @@ */ package org.jetbrains.plugins.groovy.refactoring.rename; +import com.intellij.ide.TitledHandler; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.actionSystem.LangDataKeys; import com.intellij.openapi.actionSystem.PlatformDataKeys; @@ -25,7 +26,6 @@ import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiMember; import com.intellij.psi.PsiMethod; -import com.intellij.refactoring.lang.TitledHandler; import com.intellij.refactoring.rename.PsiElementRenameHandler; import com.intellij.refactoring.rename.RenameHandler; import org.jetbrains.annotations.NotNull;