From 44a4d4dc17e017940fd02b508042e6c0a18501a2 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 27 Jan 2020 20:52:37 +0100 Subject: [PATCH] extract resource bundle editor module GitOrigin-RevId: 95d85a367f102c601ce6b80e99d00c71c4077f87 --- .idea/modules.xml | 1 + intellij.idea.community.main.iml | 1 + .../build/CommunityRepositoryModules.groovy | 1 + plugins/properties/intellij.properties.iml | 1 + .../GotoPropertyParentDeclarationHandler.java | 0 .../editor/PropertiesCopyHandler.java | 35 ++++++------------- ...pertiesGroupingStructureViewComponent.java | 8 +++-- .../editor/PropertiesInheritorsSearcher.java | 0 .../editor/PropertyStructureViewElement.java | 14 +++++++- .../editor/ResourceBundleFileType.java | 0 .../properties/editor/ResourceBundleUtil.java | 0 .../ResourceBundleDeleteProvider.java | 0 .../rename/ResourceBundleRenameUtil.java | 0 .../rename/ResourceBundleRenamer.java | 0 .../rename/ResourceBundleRenamerFactory.java | 0 ...llij.properties.resource.bundle.editor.iml | 17 +++++++++ ...seSubsequentPropertyValueEditorAction.java | 0 .../GotoNextIncompletePropertyAction.java | 0 .../GotoPropertyDeclarationsProvider.java | 0 ...toResourceBundleLocalizationsProvider.java | 0 .../properties/editor/NewPropertyAction.java | 3 -- .../editor/NoPropertySelectedPanel.form | 0 .../editor/NoPropertySelectedPanel.java | 0 .../editor/PropertiesCopyHandlerEx.java | 35 +++++++++++++++++++ .../editor/ResourceBundleEditor.java | 0 .../ResourceBundleEditorFileListener.java | 0 .../ResourceBundleEditorHighlighter.java | 0 ...undleEditorKeepEmptyValueToggleAction.java | 0 .../editor/ResourceBundleEditorProvider.java | 2 -- ...ourceBundleEditorShowQuickFixesAction.java | 0 ...esourceBundleFileStructureViewElement.java | 17 ++++++++- ...ResourceBundlePropertiesUpdateManager.java | 0 .../ResourceBundleStructureViewComponent.java | 0 .../ResourceBundleStructureViewModel.java | 0 .../IncompletePropertyInspection.java | 2 +- ...ompletePropertyInspectionOptionsPanel.java | 0 ...ResourceBundleFromEditorRenameHandler.java | 0 .../IgnoredPropertiesFilesSuffixesTest.java | 0 ...ResourceBundleEditorInsertManagerTest.java | 0 .../lang/properties/ResourceBundleTest.java | 0 plugins/properties/src/META-INF/plugin.xml | 2 +- 41 files changed, 102 insertions(+), 37 deletions(-) rename plugins/properties/{ => properties-psi-impl}/src/com/intellij/lang/properties/editor/GotoPropertyParentDeclarationHandler.java (100%) rename plugins/properties/{ => properties-psi-impl}/src/com/intellij/lang/properties/editor/PropertiesCopyHandler.java (89%) rename plugins/properties/{ => properties-psi-impl}/src/com/intellij/lang/properties/editor/PropertiesGroupingStructureViewComponent.java (93%) rename plugins/properties/{ => properties-psi-impl}/src/com/intellij/lang/properties/editor/PropertiesInheritorsSearcher.java (100%) rename plugins/properties/{ => properties-psi-impl}/src/com/intellij/lang/properties/editor/ResourceBundleFileType.java (100%) rename plugins/properties/{ => properties-psi-impl}/src/com/intellij/lang/properties/editor/ResourceBundleUtil.java (100%) rename plugins/properties/{ => properties-psi-impl}/src/com/intellij/lang/properties/projectView/ResourceBundleDeleteProvider.java (100%) rename plugins/properties/{ => properties-psi-impl}/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenameUtil.java (100%) rename plugins/properties/{ => properties-psi-impl}/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenamer.java (100%) rename plugins/properties/{ => properties-psi-impl}/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenamerFactory.java (100%) create mode 100644 plugins/properties/properties-resource-bundle-editor/intellij.properties.resource.bundle.editor.iml rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/editor/ChooseSubsequentPropertyValueEditorAction.java (100%) rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/editor/GotoNextIncompletePropertyAction.java (100%) rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/editor/GotoPropertyDeclarationsProvider.java (100%) rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/editor/GotoResourceBundleLocalizationsProvider.java (100%) rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/editor/NewPropertyAction.java (98%) rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/editor/NoPropertySelectedPanel.form (100%) rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/editor/NoPropertySelectedPanel.java (100%) create mode 100644 plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/PropertiesCopyHandlerEx.java rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/editor/ResourceBundleEditor.java (100%) rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/editor/ResourceBundleEditorFileListener.java (100%) rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/editor/ResourceBundleEditorHighlighter.java (100%) rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/editor/ResourceBundleEditorKeepEmptyValueToggleAction.java (100%) rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/editor/ResourceBundleEditorProvider.java (96%) rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/editor/ResourceBundleEditorShowQuickFixesAction.java (100%) rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/editor/ResourceBundleFileStructureViewElement.java (92%) rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/editor/ResourceBundlePropertiesUpdateManager.java (100%) rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/editor/ResourceBundleStructureViewComponent.java (100%) rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/editor/ResourceBundleStructureViewModel.java (100%) rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspection.java (100%) rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspectionOptionsPanel.java (100%) rename plugins/properties/{ => properties-resource-bundle-editor}/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleFromEditorRenameHandler.java (100%) rename plugins/properties/{testSrc => properties-resource-bundle-editor/test}/com/intellij/lang/properties/IgnoredPropertiesFilesSuffixesTest.java (100%) rename plugins/properties/{testSrc => properties-resource-bundle-editor/test}/com/intellij/lang/properties/ResourceBundleEditorInsertManagerTest.java (100%) rename plugins/properties/{testSrc => properties-resource-bundle-editor/test}/com/intellij/lang/properties/ResourceBundleTest.java (100%) diff --git a/.idea/modules.xml b/.idea/modules.xml index 3a0087b4c2bd..5d11a3e8b3f0 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -701,6 +701,7 @@ + diff --git a/intellij.idea.community.main.iml b/intellij.idea.community.main.iml index 9054e8eafb12..d2161197435f 100644 --- a/intellij.idea.community.main.iml +++ b/intellij.idea.community.main.iml @@ -90,6 +90,7 @@ + diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/CommunityRepositoryModules.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/CommunityRepositoryModules.groovy index 8af8f3a1c0c5..f9b93c8ded53 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/CommunityRepositoryModules.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/CommunityRepositoryModules.groovy @@ -100,6 +100,7 @@ class CommunityRepositoryModules { plugin("intellij.properties") { withModule("intellij.properties.psi", "properties.jar") withModule("intellij.properties.psi.impl", "properties.jar") + withModule("intellij.properties.resource.bundle.editor", "properties.jar") }, plugin("intellij.vcs.git") { withModule("intellij.vcs.git.rt", "git4idea-rt.jar", null) diff --git a/plugins/properties/intellij.properties.iml b/plugins/properties/intellij.properties.iml index 545d8891d2f7..c22df92628e0 100644 --- a/plugins/properties/intellij.properties.iml +++ b/plugins/properties/intellij.properties.iml @@ -18,6 +18,7 @@ + diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/GotoPropertyParentDeclarationHandler.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/GotoPropertyParentDeclarationHandler.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/GotoPropertyParentDeclarationHandler.java rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/GotoPropertyParentDeclarationHandler.java diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/PropertiesCopyHandler.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesCopyHandler.java similarity index 89% rename from plugins/properties/src/com/intellij/lang/properties/editor/PropertiesCopyHandler.java rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesCopyHandler.java index 740ba280c10e..3ce1f47109a5 100644 --- a/plugins/properties/src/com/intellij/lang/properties/editor/PropertiesCopyHandler.java +++ b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesCopyHandler.java @@ -1,18 +1,14 @@ -// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.lang.properties.editor; import com.intellij.codeInsight.FileModificationService; import com.intellij.icons.AllIcons; -import com.intellij.ide.DataManager; import com.intellij.ide.util.gotoByName.GotoFileCellRenderer; import com.intellij.lang.properties.ResourceBundle; import com.intellij.lang.properties.*; import com.intellij.lang.properties.psi.PropertiesFile; -import com.intellij.openapi.actionSystem.PlatformDataKeys; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.fileEditor.FileEditor; -import com.intellij.openapi.fileEditor.FileEditorManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.ComboBox; import com.intellij.openapi.ui.DialogWrapper; @@ -96,9 +92,9 @@ public class PropertiesCopyHandler extends CopyHandlerDelegateBase { public void doClone(PsiElement element) { } - private static void copyPropertyToAnotherBundle(@NotNull Collection properties, - @NotNull final String newName, - @NotNull ResourceBundle targetResourceBundle) { + private void copyPropertyToAnotherBundle(@NotNull Collection properties, + @NotNull final String newName, + @NotNull ResourceBundle targetResourceBundle) { final Map propertiesFileMapping = new HashMap<>(); for (IProperty property : properties) { final PropertiesFile containingFile = property.getPropertiesFile(); @@ -130,26 +126,15 @@ public class PropertiesCopyHandler extends CopyHandlerDelegateBase { final IProperty representativeFromSourceBundle = ContainerUtil.getFirstItem(properties); LOG.assertTrue(representativeFromSourceBundle != null); final ResourceBundle sourceResourceBundle = representativeFromSourceBundle.getPropertiesFile().getResourceBundle(); - if (sourceResourceBundle.equals(targetResourceBundle)) { - DataManager.getInstance() - .getDataContextFromFocusAsync() - .onSuccess(context -> { - final FileEditor fileEditor = PlatformDataKeys.FILE_EDITOR.getData(context); - if (fileEditor instanceof ResourceBundleEditor) { - final ResourceBundleEditor resourceBundleEditor = (ResourceBundleEditor)fileEditor; - resourceBundleEditor.updateTreeRoot(); - resourceBundleEditor.selectProperty(newName); - } - }); - } else { - for (FileEditor editor : FileEditorManager.getInstance(project).openFile(new ResourceBundleAsVirtualFile(targetResourceBundle), true)) { - ((ResourceBundleEditor) editor).updateTreeRoot(); - ((ResourceBundleEditor) editor).selectProperty(newName); - } - } + updateBundleEditors(newName, targetResourceBundle, sourceResourceBundle, project); } } + protected void updateBundleEditors(@NotNull String newName, + @NotNull ResourceBundle targetResourceBundle, + @NotNull ResourceBundle sourceResourceBundle, + @NotNull Project project) { } + @Nullable private static PropertiesFile findWithMatchedSuffix(@NotNull PropertiesFile searchFile, @NotNull ResourceBundle resourceBundle) { final String targetSuffix = getPropertiesFileSuffix(searchFile, searchFile.getResourceBundle().getBaseName()); diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/PropertiesGroupingStructureViewComponent.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesGroupingStructureViewComponent.java similarity index 93% rename from plugins/properties/src/com/intellij/lang/properties/editor/PropertiesGroupingStructureViewComponent.java rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesGroupingStructureViewComponent.java index 8a24e5ae37df..24d2fa5f0bbf 100644 --- a/plugins/properties/src/com/intellij/lang/properties/editor/PropertiesGroupingStructureViewComponent.java +++ b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesGroupingStructureViewComponent.java @@ -1,11 +1,13 @@ -// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.lang.properties.editor; -import com.intellij.icons.AllIcons; import com.intellij.ide.structureView.newStructureView.StructureViewComponent; import com.intellij.lang.properties.PropertiesBundle; import com.intellij.lang.properties.structureView.GroupByWordPrefixes; -import com.intellij.openapi.actionSystem.*; +import com.intellij.openapi.actionSystem.AnAction; +import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.actionSystem.DefaultActionGroup; +import com.intellij.openapi.actionSystem.Presentation; import com.intellij.openapi.fileEditor.FileEditor; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.Messages; diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/PropertiesInheritorsSearcher.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesInheritorsSearcher.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/PropertiesInheritorsSearcher.java rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesInheritorsSearcher.java diff --git a/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertyStructureViewElement.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertyStructureViewElement.java index 01a660406fc6..fb2ce4890fd1 100644 --- a/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertyStructureViewElement.java +++ b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertyStructureViewElement.java @@ -26,7 +26,7 @@ import javax.swing.*; import java.awt.*; import java.util.function.BooleanSupplier; -public class PropertyStructureViewElement implements StructureViewTreeElement { +public class PropertyStructureViewElement implements StructureViewTreeElement, ResourceBundleEditorViewElement { private static final TextAttributesKey GROUP_KEY; public static final String PROPERTY_GROUP_KEY_TEXT = ""; @@ -60,6 +60,18 @@ public class PropertyStructureViewElement implements StructureViewTreeElement { return element.isValid() ? element : null; } + @NotNull + @Override + public IProperty[] getProperties() { + return new IProperty[] {myProperty}; + } + + @Nullable + @Override + public PsiFile[] getFiles() { + return null; + } + public void setPresentableName(final String presentableName) { myPresentableName = presentableName; } diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleFileType.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/ResourceBundleFileType.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleFileType.java rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/ResourceBundleFileType.java diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleUtil.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/ResourceBundleUtil.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleUtil.java rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/ResourceBundleUtil.java diff --git a/plugins/properties/src/com/intellij/lang/properties/projectView/ResourceBundleDeleteProvider.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/projectView/ResourceBundleDeleteProvider.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/projectView/ResourceBundleDeleteProvider.java rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/projectView/ResourceBundleDeleteProvider.java diff --git a/plugins/properties/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenameUtil.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenameUtil.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenameUtil.java rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenameUtil.java diff --git a/plugins/properties/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenamer.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenamer.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenamer.java rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenamer.java diff --git a/plugins/properties/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenamerFactory.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenamerFactory.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenamerFactory.java rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenamerFactory.java diff --git a/plugins/properties/properties-resource-bundle-editor/intellij.properties.resource.bundle.editor.iml b/plugins/properties/properties-resource-bundle-editor/intellij.properties.resource.bundle.editor.iml new file mode 100644 index 000000000000..3e1306e97b4b --- /dev/null +++ b/plugins/properties/properties-resource-bundle-editor/intellij.properties.resource.bundle.editor.iml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ChooseSubsequentPropertyValueEditorAction.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ChooseSubsequentPropertyValueEditorAction.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/ChooseSubsequentPropertyValueEditorAction.java rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ChooseSubsequentPropertyValueEditorAction.java diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/GotoNextIncompletePropertyAction.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/GotoNextIncompletePropertyAction.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/GotoNextIncompletePropertyAction.java rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/GotoNextIncompletePropertyAction.java diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/GotoPropertyDeclarationsProvider.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/GotoPropertyDeclarationsProvider.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/GotoPropertyDeclarationsProvider.java rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/GotoPropertyDeclarationsProvider.java diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/GotoResourceBundleLocalizationsProvider.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/GotoResourceBundleLocalizationsProvider.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/GotoResourceBundleLocalizationsProvider.java rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/GotoResourceBundleLocalizationsProvider.java diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/NewPropertyAction.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/NewPropertyAction.java similarity index 98% rename from plugins/properties/src/com/intellij/lang/properties/editor/NewPropertyAction.java rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/NewPropertyAction.java index 910f40a29ad0..d54248c2d45c 100644 --- a/plugins/properties/src/com/intellij/lang/properties/editor/NewPropertyAction.java +++ b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/NewPropertyAction.java @@ -2,7 +2,6 @@ package com.intellij.lang.properties.editor; import com.intellij.icons.AllIcons; -import com.intellij.ide.structureView.StructureViewTreeElement; import com.intellij.ide.util.PropertiesComponent; import com.intellij.lang.properties.IProperty; import com.intellij.lang.properties.PropertiesBundle; @@ -22,11 +21,9 @@ import com.intellij.openapi.ui.Messages; import com.intellij.openapi.util.Pair; import com.intellij.openapi.vfs.ReadonlyStatusHandler; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.Collection; import java.util.Collections; /** diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/NoPropertySelectedPanel.form b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/NoPropertySelectedPanel.form similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/NoPropertySelectedPanel.form rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/NoPropertySelectedPanel.form diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/NoPropertySelectedPanel.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/NoPropertySelectedPanel.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/NoPropertySelectedPanel.java rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/NoPropertySelectedPanel.java diff --git a/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/PropertiesCopyHandlerEx.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/PropertiesCopyHandlerEx.java new file mode 100644 index 000000000000..6cd22adf51d9 --- /dev/null +++ b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/PropertiesCopyHandlerEx.java @@ -0,0 +1,35 @@ +package com.intellij.lang.properties.editor; + +import com.intellij.ide.DataManager; +import com.intellij.lang.properties.ResourceBundle; +import com.intellij.openapi.actionSystem.PlatformDataKeys; +import com.intellij.openapi.fileEditor.FileEditor; +import com.intellij.openapi.fileEditor.FileEditorManager; +import com.intellij.openapi.project.Project; +import org.jetbrains.annotations.NotNull; + +public class PropertiesCopyHandlerEx extends PropertiesCopyHandler { + @Override + protected void updateBundleEditors(@NotNull String newName, + @NotNull ResourceBundle targetResourceBundle, + @NotNull ResourceBundle sourceResourceBundle, + @NotNull Project project) { + if (sourceResourceBundle.equals(targetResourceBundle)) { + DataManager.getInstance() + .getDataContextFromFocusAsync() + .onSuccess(context -> { + final FileEditor fileEditor = PlatformDataKeys.FILE_EDITOR.getData(context); + if (fileEditor instanceof ResourceBundleEditor) { + final ResourceBundleEditor resourceBundleEditor = (ResourceBundleEditor)fileEditor; + resourceBundleEditor.updateTreeRoot(); + resourceBundleEditor.selectProperty(newName); + } + }); + } else { + for (FileEditor editor : FileEditorManager.getInstance(project).openFile(new ResourceBundleAsVirtualFile(targetResourceBundle), true)) { + ((ResourceBundleEditor) editor).updateTreeRoot(); + ((ResourceBundleEditor) editor).selectProperty(newName); + } + } + } +} diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditor.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditor.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditor.java rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditor.java diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorFileListener.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorFileListener.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorFileListener.java rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorFileListener.java diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorHighlighter.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorHighlighter.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorHighlighter.java rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorHighlighter.java diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorKeepEmptyValueToggleAction.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorKeepEmptyValueToggleAction.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorKeepEmptyValueToggleAction.java rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorKeepEmptyValueToggleAction.java diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorProvider.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorProvider.java similarity index 96% rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorProvider.java rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorProvider.java index 4ff85629d7a5..33628a782013 100644 --- a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorProvider.java +++ b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorProvider.java @@ -10,8 +10,6 @@ import com.intellij.openapi.fileEditor.FileEditorPolicy; import com.intellij.openapi.fileEditor.FileEditorProvider; import com.intellij.openapi.fileEditor.FileEditorState; import com.intellij.openapi.fileTypes.FileType; -import com.intellij.openapi.fileTypes.FileTypeConsumer; -import com.intellij.openapi.fileTypes.FileTypeFactory; import com.intellij.openapi.fileTypes.StdFileTypes; import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.Project; diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorShowQuickFixesAction.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorShowQuickFixesAction.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorShowQuickFixesAction.java rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorShowQuickFixesAction.java diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleFileStructureViewElement.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleFileStructureViewElement.java similarity index 92% rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleFileStructureViewElement.java rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleFileStructureViewElement.java index 868d4ff4904b..08889a759fc5 100644 --- a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleFileStructureViewElement.java +++ b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleFileStructureViewElement.java @@ -20,7 +20,7 @@ import javax.swing.*; import java.util.*; import java.util.function.BooleanSupplier; -public class ResourceBundleFileStructureViewElement implements StructureViewTreeElement { +public class ResourceBundleFileStructureViewElement implements StructureViewTreeElement, ResourceBundleEditorViewElement { @NotNull private final ResourceBundle myResourceBundle; @NotNull @@ -129,6 +129,21 @@ public class ResourceBundleFileStructureViewElement implements StructureViewTree return propertyNames; } + @Nullable + @Override + public IProperty[] getProperties() { + return IProperty.EMPTY_ARRAY; + } + + @Nullable + @Override + public PsiFile[] getFiles() { + ResourceBundle rb = getValue(); + if (rb == null) return null; + final List files = rb.getPropertiesFiles(); + return ContainerUtil.map2Array(files, new PsiFile[files.size()], propertiesFile -> propertiesFile.getContainingFile()); + } + @Override @NotNull public ItemPresentation getPresentation() { diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundlePropertiesUpdateManager.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundlePropertiesUpdateManager.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundlePropertiesUpdateManager.java rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundlePropertiesUpdateManager.java diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleStructureViewComponent.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleStructureViewComponent.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleStructureViewComponent.java rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleStructureViewComponent.java diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleStructureViewModel.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleStructureViewModel.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleStructureViewModel.java rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleStructureViewModel.java diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspection.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspection.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspection.java rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspection.java index 5c0b5e5efb9c..5e56ec50cf25 100644 --- a/plugins/properties/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspection.java +++ b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspection.java @@ -21,8 +21,8 @@ import com.intellij.codeInspection.ProblemHighlightType; import com.intellij.codeInspection.QuickFix; import com.intellij.codeInspection.ex.InspectionProfileModifiableModelKt; import com.intellij.codeInspection.ex.UnfairLocalInspectionTool; -import com.intellij.lang.properties.*; import com.intellij.lang.properties.ResourceBundle; +import com.intellij.lang.properties.*; import com.intellij.lang.properties.editor.inspections.ResourceBundleEditorInspection; import com.intellij.lang.properties.editor.inspections.ResourceBundleEditorProblemDescriptor; import com.intellij.lang.properties.psi.PropertiesFile; diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspectionOptionsPanel.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspectionOptionsPanel.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspectionOptionsPanel.java rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspectionOptionsPanel.java diff --git a/plugins/properties/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleFromEditorRenameHandler.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleFromEditorRenameHandler.java similarity index 100% rename from plugins/properties/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleFromEditorRenameHandler.java rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleFromEditorRenameHandler.java diff --git a/plugins/properties/testSrc/com/intellij/lang/properties/IgnoredPropertiesFilesSuffixesTest.java b/plugins/properties/properties-resource-bundle-editor/test/com/intellij/lang/properties/IgnoredPropertiesFilesSuffixesTest.java similarity index 100% rename from plugins/properties/testSrc/com/intellij/lang/properties/IgnoredPropertiesFilesSuffixesTest.java rename to plugins/properties/properties-resource-bundle-editor/test/com/intellij/lang/properties/IgnoredPropertiesFilesSuffixesTest.java diff --git a/plugins/properties/testSrc/com/intellij/lang/properties/ResourceBundleEditorInsertManagerTest.java b/plugins/properties/properties-resource-bundle-editor/test/com/intellij/lang/properties/ResourceBundleEditorInsertManagerTest.java similarity index 100% rename from plugins/properties/testSrc/com/intellij/lang/properties/ResourceBundleEditorInsertManagerTest.java rename to plugins/properties/properties-resource-bundle-editor/test/com/intellij/lang/properties/ResourceBundleEditorInsertManagerTest.java diff --git a/plugins/properties/testSrc/com/intellij/lang/properties/ResourceBundleTest.java b/plugins/properties/properties-resource-bundle-editor/test/com/intellij/lang/properties/ResourceBundleTest.java similarity index 100% rename from plugins/properties/testSrc/com/intellij/lang/properties/ResourceBundleTest.java rename to plugins/properties/properties-resource-bundle-editor/test/com/intellij/lang/properties/ResourceBundleTest.java diff --git a/plugins/properties/src/META-INF/plugin.xml b/plugins/properties/src/META-INF/plugin.xml index ea3f0aa5de45..b10d5c970782 100644 --- a/plugins/properties/src/META-INF/plugin.xml +++ b/plugins/properties/src/META-INF/plugin.xml @@ -116,7 +116,7 @@ - +