mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
allow to move java files without classes, e.g. package-info.java ( IDEA-53558 )
This commit is contained in:
+14
@@ -84,5 +84,19 @@ public class MoveJavaFileHandler extends MoveFileHandler {
|
||||
@Override
|
||||
public void updateMovedFile(PsiFile file) throws IncorrectOperationException {
|
||||
ChangeContextUtil.decodeContextInfo(file, null, null);
|
||||
final PsiDirectory containingDirectory = file.getContainingDirectory();
|
||||
if (containingDirectory != null) {
|
||||
final PsiPackage aPackage = JavaDirectoryService.getInstance().getPackage(containingDirectory);
|
||||
if (aPackage != null) {
|
||||
final PsiPackageStatement packageStatement =
|
||||
JavaPsiFacade.getElementFactory(file.getProject()).createPackageStatement(aPackage.getQualifiedName());
|
||||
if (file instanceof PsiJavaFile) {
|
||||
final PsiPackageStatement filePackageStatement = ((PsiJavaFile)file).getPackageStatement();
|
||||
if (filePackageStatement != null) {
|
||||
filePackageStatement.getPackageReference().replace(packageStatement.getPackageReference());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
-2
@@ -33,7 +33,8 @@ public class JavaMoveFilesOrDirectoriesHandler extends MoveFilesOrDirectoriesHan
|
||||
allJava &= JavaCopyFilesOrDirectoriesHandler.hasPackages((PsiDirectory)element);
|
||||
}
|
||||
else if (element instanceof PsiFile) {
|
||||
allJava &= element instanceof PsiJavaFile && !JspPsiUtil.isInJspFile(element) && !CollectHighlightsUtil.isOutsideSourceRootJavaFile((PsiJavaFile) element);
|
||||
allJava &= element instanceof PsiJavaFile && !JspPsiUtil.isInJspFile(element) &&
|
||||
((PsiJavaFile)element).getClasses().length > 0 && !CollectHighlightsUtil.isOutsideSourceRootJavaFile((PsiJavaFile) element);
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
@@ -55,6 +56,6 @@ public class JavaMoveFilesOrDirectoriesHandler extends MoveFilesOrDirectoriesHan
|
||||
|
||||
@Override
|
||||
public void doMove(Project project, PsiElement[] elements, PsiElement targetContainer, MoveCallback callback) {
|
||||
super.doMove(project, elements, targetContainer, callback); //To change body of overridden methods use File | Settings | File Templates.
|
||||
super.doMove(project, elements, targetContainer, callback);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user