void (@NotNull Project project, @NotNull List<I18nizedPropertyData<HardcodedStringInFormData>> dataList, @NotNull HashSet<PsiFile> contextFiles, @NotNull ResourceBundleManager bundleManager, @NotNull Map<VirtualFile, RadRootContainer> containerMap, @NotNull Map<String, List<I18nizedPropertyData<HardcodedStringInFormData>>> duplicates) { I18nizeMultipleStringsDialog<HardcodedStringInFormData> dialog = new I18nizeMultipleStringsDialog<>(project, dataList, contextFiles, bundleManager, I18nizeFormBatchFix::createUsageInfo, UIDesignerIcons.InspectionSuppression, false); if (dialog.showAndGet()) { PropertiesFile propertiesFile = dialog.getPropertiesFile(); PsiManager manager = PsiManager.getInstance(project); Set<PsiFile> files = new HashSet<>(); for (VirtualFile file : containerMap.keySet()) { ContainerUtil.addIfNotNull(files, manager.findFile(file)); } if (files.isEmpty()) { return; } files.add(propertiesFile.getContainingFile()); String bundleName = I18nizeFormQuickFix.getBundleName(project, propertiesFile); if (bundleName == null) { return; } WriteCommandAction.runWriteCommandAction(project, getFamilyName(), null, () -> { for (I18nizedPropertyData<HardcodedStringInFormData> data : dataList) { StringDescriptor valueDescriptor; if (!data.markAsNonNls()) { JavaI18nUtil.DEFAULT_PROPERTY_CREATION_HANDLER.createProperty(project, Collections.singletonList(propertiesFile), data.key(), data.value(), new UExpression[0]); valueDescriptor = new StringDescriptor(bundleName, data.key()); } else { valueDescriptor = StringDescriptor.create(data.value()); valueDescriptor.setNoI18n(true); } setPropertyValue(data.contextData().getComponent(), data.contextData().getPropertyName(), valueDescriptor); List<I18nizedPropertyData<HardcodedStringInFormData>> duplicateValues = duplicates.get(data.value()); if (duplicateValues != null) { for (I18nizedPropertyData<HardcodedStringInFormData> duplicateBean : duplicateValues) { setPropertyValue(duplicateBean.contextData().getComponent(), duplicateBean.contextData().getPropertyName(), valueDescriptor); } } } for (Map.Entry<VirtualFile, RadRootContainer> entry : containerMap.entrySet()) { try { final XmlWriter writer = new XmlWriter(); entry.getValue().write(writer); VfsUtil.saveText(entry.getKey(), writer.getText()); } catch (Exception e) { LOG.error(e); } } }, files.toArray(PsiFile.EMPTY_ARRAY)); } }