From 1d2ffa77bd6f6f548e12613e8bc23dc742e4b084 Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 28 Jul 2010 19:41:49 +0400 Subject: [PATCH] form move: move as files --- .../MoveClassesOrPackagesHandlerBase.java | 2 +- .../projectView/FormMoveProvider.java | 92 ++++++------------- 2 files changed, 27 insertions(+), 67 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesHandlerBase.java b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesHandlerBase.java index 59505843c02c..15dded63dda6 100644 --- a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesHandlerBase.java +++ b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesHandlerBase.java @@ -42,7 +42,7 @@ import java.util.Arrays; public class MoveClassesOrPackagesHandlerBase extends MoveHandlerDelegate { private static final Logger LOG = Logger.getInstance("#" + MoveClassesOrPackagesHandlerBase.class.getName()); - protected static boolean isPackageOrDirectory(final PsiElement element) { + public static boolean isPackageOrDirectory(final PsiElement element) { if (element instanceof PsiPackage) return true; return element instanceof PsiDirectory && JavaDirectoryService.getInstance().getPackage((PsiDirectory)element) != null; } diff --git a/plugins/ui-designer/src/com/intellij/uiDesigner/projectView/FormMoveProvider.java b/plugins/ui-designer/src/com/intellij/uiDesigner/projectView/FormMoveProvider.java index 743f334efcf7..4ace55652680 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/projectView/FormMoveProvider.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/projectView/FormMoveProvider.java @@ -22,21 +22,17 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiClass; -import com.intellij.psi.PsiDirectory; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; -import com.intellij.refactoring.MoveDestination; +import com.intellij.psi.PsiPackage; import com.intellij.refactoring.RefactoringActionHandler; import com.intellij.refactoring.actions.MoveAction; -import com.intellij.refactoring.move.MoveClassesOrPackagesCallback; -import com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesImpl; -import com.intellij.refactoring.move.moveFilesOrDirectories.MoveFilesOrDirectoriesProcessor; -import com.intellij.uiDesigner.UIDesignerBundle; -import com.intellij.usageView.UsageInfo; -import com.intellij.usageView.UsageViewUtil; -import com.intellij.util.IncorrectOperationException; +import com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesHandlerBase; +import com.intellij.refactoring.move.moveFilesOrDirectories.MoveFilesOrDirectoriesUtil; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; + +import java.util.HashSet; +import java.util.Set; /** * @author yole @@ -58,72 +54,36 @@ public class FormMoveProvider implements MoveAction.MoveProvider, RefactoringAct } public void invoke(@NotNull Project project, @NotNull PsiElement[] elements, DataContext dataContext) { + final Set filesOrDirs = new HashSet(); + for (PsiElement element : elements) { + if (element instanceof PsiPackage) continue; + if (MoveClassesOrPackagesHandlerBase.isPackageOrDirectory(element)) { + filesOrDirs.add(element); + } else { + final PsiFile containingFile = element.getContainingFile(); + if (containingFile != null) { + filesOrDirs.add(containingFile); + } + } + } Form[] forms = Form.DATA_KEY.getData(dataContext); LOG.assertTrue(forms != null); PsiClass[] classesToMove = new PsiClass[forms.length]; PsiFile[] filesToMove = new PsiFile[forms.length]; for(int i=0; i