diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/JavaMoveClassesOrPackagesHandler.java b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/JavaMoveClassesOrPackagesHandler.java index 905e3713197c..8719d9a45209 100644 --- a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/JavaMoveClassesOrPackagesHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/JavaMoveClassesOrPackagesHandler.java @@ -43,6 +43,7 @@ import com.intellij.refactoring.util.RadioUpDownListener; import com.intellij.refactoring.util.RefactoringUtil; import com.intellij.util.IncorrectOperationException; import com.intellij.util.containers.HashSet; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -138,12 +139,19 @@ public class JavaMoveClassesOrPackagesHandler extends MoveHandlerDelegate { if (targetContainer instanceof PsiDirectory) { if (CommonRefactoringUtil.checkReadOnlyStatusRecursively(project, Arrays.asList(adjustedElements), true)) { if (!packageHasMultipleDirectoriesInModule(project, (PsiDirectory)targetContainer)) { - new MoveClassesOrPackagesToNewDirectoryDialog((PsiDirectory)targetContainer, adjustedElements, callback).show(); + createMoveClassesOrPackagesToNewDirectoryDialog((PsiDirectory)targetContainer, adjustedElements, callback).show(); return; } } } - MoveClassesOrPackagesImpl.doMove(project, adjustedElements, targetContainer, callback); + doMoveWithMoveClassesDialog(project, adjustedElements, targetContainer, callback); + } + + protected void doMoveWithMoveClassesDialog(final Project project, + PsiElement[] adjustedElements, + PsiElement initialTargetElement, + final MoveCallback moveCallback) { + MoveClassesOrPackagesImpl.doMove(project, adjustedElements, initialTargetElement, moveCallback); } private static void moveDirectoriesLibrariesSafe(Project project, @@ -173,6 +181,13 @@ public class JavaMoveClassesOrPackagesHandler extends MoveHandlerDelegate { } } + @NotNull + protected DialogWrapper createMoveClassesOrPackagesToNewDirectoryDialog(@NotNull final PsiDirectory directory, + PsiElement[] elementsToMove, + final MoveCallback moveCallback) { + return new MoveClassesOrPackagesToNewDirectoryDialog(directory, elementsToMove, moveCallback); + } + private static void moveAsDirectory(Project project, PsiElement targetContainer, final MoveCallback callback, @@ -445,7 +460,7 @@ public class JavaMoveClassesOrPackagesHandler extends MoveHandlerDelegate { if (adjustedElements == null) { return true; } - MoveClassesOrPackagesImpl.doMove(project, adjustedElements, initialTargetElement, null); + doMoveWithMoveClassesDialog(project, adjustedElements, initialTargetElement, null); return true; } return false; diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesToNewDirectoryDialog.java b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesToNewDirectoryDialog.java index 4d1792cb9ee3..de16039b99b2 100644 --- a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesToNewDirectoryDialog.java +++ b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesToNewDirectoryDialog.java @@ -191,6 +191,19 @@ public class MoveClassesOrPackagesToNewDirectoryDialog extends DialogWrapper { return myDestDirectoryField.getTextField(); } + //for scala plugin + @NotNull + protected MoveClassesOrPackagesProcessor createMoveClassesOrPackagesProcessor(Project project, + PsiElement[] elements, + @NotNull final MoveDestination moveDestination, + boolean searchInComments, + boolean searchInNonJavaFiles, + MoveCallback moveCallback) { + + return new MoveClassesOrPackagesProcessor(project, elements, moveDestination, + searchInComments, searchInNonJavaFiles, moveCallback); + } + protected void performRefactoring(Project project, PsiDirectory directory, PsiPackage aPackage, boolean searchInComments, boolean searchForTextOccurences) { @@ -205,9 +218,9 @@ public class MoveClassesOrPackagesToNewDirectoryDialog extends DialogWrapper { ? factory.createSourceFolderPreservingMoveDestination(aPackage.getQualifiedName()) : factory.createSourceRootMoveDestination(aPackage.getQualifiedName(), sourceRoot); - MoveClassesOrPackagesProcessor processor = new MoveClassesOrPackagesProcessor(myDirectory.getProject(), myElementsToMove, destination, - searchInComments, searchForTextOccurences, - myMoveCallback); + MoveClassesOrPackagesProcessor processor = createMoveClassesOrPackagesProcessor(myDirectory.getProject(), myElementsToMove, destination, + searchInComments, searchForTextOccurences, myMoveCallback); + if (processor.verifyValidPackageName()) { processor.setPrepareSuccessfulSwingThreadCallback(new Runnable() { @Override