mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Possibility to modify move refactoring dialogs in from scala plugin
This commit is contained in:
+18
-3
@@ -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;
|
||||
|
||||
+16
-3
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user