diff --git a/platform/lang-impl/src/com/intellij/conversion/ConversionContext.java b/platform/lang-impl/src/com/intellij/conversion/ConversionContext.java index 5534b64e50eb..784cfdb97787 100644 --- a/platform/lang-impl/src/com/intellij/conversion/ConversionContext.java +++ b/platform/lang-impl/src/com/intellij/conversion/ConversionContext.java @@ -57,4 +57,6 @@ public interface ConversionContext { @Nullable ComponentManagerSettings getProjectRootManagerSettings(); + + File[] getModuleFiles(); } diff --git a/platform/lang-impl/src/com/intellij/conversion/ConverterProvider.java b/platform/lang-impl/src/com/intellij/conversion/ConverterProvider.java index e726451c07d0..aca600ebd8b1 100644 --- a/platform/lang-impl/src/com/intellij/conversion/ConverterProvider.java +++ b/platform/lang-impl/src/com/intellij/conversion/ConverterProvider.java @@ -20,6 +20,7 @@ import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.util.ArrayUtil; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; /** * @author nik @@ -44,5 +45,10 @@ public abstract class ConverterProvider { public abstract String getConversionDescription(); @NotNull - public abstract ProjectConverter createConverter(@NotNull ConversionContext context); + public abstract ProjectConverter createConverter(@NotNull ConversionContext context); + + @Nullable + public String getConversionDialogText(ConversionContext context) { + return null; + } } diff --git a/platform/lang-impl/src/com/intellij/conversion/ModuleSettings.java b/platform/lang-impl/src/com/intellij/conversion/ModuleSettings.java index 79dc27738b87..d418436999c2 100644 --- a/platform/lang-impl/src/com/intellij/conversion/ModuleSettings.java +++ b/platform/lang-impl/src/com/intellij/conversion/ModuleSettings.java @@ -64,4 +64,6 @@ public interface ModuleSettings extends ComponentManagerSettings { Collection getAllModuleDependencies(); boolean hasModuleLibrary(String libraryName); + + List getOrderEntries(); } diff --git a/platform/lang-impl/src/com/intellij/conversion/ProjectConverter.java b/platform/lang-impl/src/com/intellij/conversion/ProjectConverter.java index 681ce6a709ce..6f57e05b2689 100644 --- a/platform/lang-impl/src/com/intellij/conversion/ProjectConverter.java +++ b/platform/lang-impl/src/com/intellij/conversion/ProjectConverter.java @@ -26,6 +26,11 @@ import java.util.Collections; * @author nik */ public abstract class ProjectConverter { + + public boolean isConversionNeeded() { + return true; + } + @Nullable public ConversionProcessor createProjectFileConverter() { return null; diff --git a/platform/lang-impl/src/com/intellij/conversion/impl/ConversionContextImpl.java b/platform/lang-impl/src/com/intellij/conversion/impl/ConversionContextImpl.java index 7a78fdc6fdc5..8626e74e5576 100644 --- a/platform/lang-impl/src/com/intellij/conversion/impl/ConversionContextImpl.java +++ b/platform/lang-impl/src/com/intellij/conversion/impl/ConversionContextImpl.java @@ -118,6 +118,7 @@ public class ConversionContextImpl implements ConversionContext { return myProjectBaseDir; } + @Override public File[] getModuleFiles() { return myModuleFiles; } diff --git a/platform/lang-impl/src/com/intellij/conversion/impl/ConversionRunner.java b/platform/lang-impl/src/com/intellij/conversion/impl/ConversionRunner.java index 44e557c4714c..af253b559cdb 100644 --- a/platform/lang-impl/src/com/intellij/conversion/impl/ConversionRunner.java +++ b/platform/lang-impl/src/com/intellij/conversion/impl/ConversionRunner.java @@ -49,6 +49,10 @@ public class ConversionRunner { } public boolean isConversionNeeded() throws CannotConvertException { + if (!myConverter.isConversionNeeded()) { + return false; + } + myProcessProjectFile = myContext.getStorageScheme() == StorageScheme.DEFAULT && myProjectFileConverter != null && myProjectFileConverter.isConversionNeeded(myContext.getProjectSettings()); diff --git a/platform/lang-impl/src/com/intellij/conversion/impl/ModuleSettingsImpl.java b/platform/lang-impl/src/com/intellij/conversion/impl/ModuleSettingsImpl.java index 97ae7b0aacc2..459c90a92306 100644 --- a/platform/lang-impl/src/com/intellij/conversion/impl/ModuleSettingsImpl.java +++ b/platform/lang-impl/src/com/intellij/conversion/impl/ModuleSettingsImpl.java @@ -165,7 +165,8 @@ public class ModuleSettingsImpl extends ComponentManagerSettingsImpl implements return null; } - private List getOrderEntries() { + @Override + public List getOrderEntries() { final Element component = getComponentElement(MODULE_ROOT_MANAGER_COMPONENT); return JDOMUtil.getChildren(component, OrderEntryFactory.ORDER_ENTRY_ELEMENT_NAME); } diff --git a/platform/lang-impl/src/com/intellij/conversion/impl/ui/ConvertProjectDialog.java b/platform/lang-impl/src/com/intellij/conversion/impl/ui/ConvertProjectDialog.java index 3600f5bb65b5..4df11088be71 100644 --- a/platform/lang-impl/src/com/intellij/conversion/impl/ui/ConvertProjectDialog.java +++ b/platform/lang-impl/src/com/intellij/conversion/impl/ui/ConvertProjectDialog.java @@ -66,11 +66,17 @@ public class ConvertProjectDialog extends DialogWrapper { myBackupDir = ProjectConversionUtil.getBackupDir(context.getProjectBaseDir()); myTextPane.setSize(new Dimension(350, Integer.MAX_VALUE)); - final String message = IdeBundle.message("label.text.project.has.older.format", - context.getProjectFile().getName(), - ApplicationNamesInfo.getInstance().getProductName(), - myBackupDir.getAbsolutePath()); - Messages.configureMessagePaneUi(myTextPane, message, false); + StringBuilder message = new StringBuilder(""); + if (myConversionRunners.size() == 1 && myConversionRunners.get(0).getProvider().getConversionDialogText(context) != null) { + message.append(myConversionRunners.get(0).getProvider().getConversionDialogText(context)); + } + else { + message.append(IdeBundle.message("conversion.dialog.text.1", context.getProjectFile().getName(), + ApplicationNamesInfo.getInstance().getProductName())); + } + message.append(IdeBundle.message("conversion.dialog.text.2", myBackupDir.getAbsolutePath())); + message.append(""); + Messages.configureMessagePaneUi(myTextPane, message.toString(), false); myTextPane.addHyperlinkListener(new HyperlinkListener() { public void hyperlinkUpdate(HyperlinkEvent e) { diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkImpl.java b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkImpl.java index 99f4e80cb80f..97fe325586f1 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkImpl.java @@ -52,16 +52,16 @@ public class ProjectJdkImpl extends UserDataHolderBase implements JDOMExternaliz private ProjectJdkImpl myOrigin = null; private SdkAdditionalData myAdditionalData = null; private SdkType mySdkType; - @NonNls private static final String ELEMENT_NAME = "name"; - @NonNls private static final String ATTRIBUTE_VALUE = "value"; - @NonNls private static final String ELEMENT_TYPE = "type"; - @NonNls private static final String ELEMENT_VERSION = "version"; + @NonNls public static final String ELEMENT_NAME = "name"; + @NonNls public static final String ATTRIBUTE_VALUE = "value"; + @NonNls public static final String ELEMENT_TYPE = "type"; + @NonNls public static final String ELEMENT_VERSION = "version"; @NonNls private static final String ELEMENT_ROOTS = "roots"; @NonNls private static final String ELEMENT_ROOT = "root"; @NonNls private static final String ELEMENT_PROPERTY = "property"; @NonNls private static final String VALUE_JDKHOME = "jdkHome"; @NonNls private static final String ATTRIBUTE_FILE = "file"; - @NonNls private static final String ELEMENT_HOMEPATH = "homePath"; + @NonNls public static final String ELEMENT_HOMEPATH = "homePath"; @NonNls private static final String ELEMENT_ADDITIONAL = "additional"; public ProjectJdkImpl(String name, SdkType sdkType) { diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkTableImpl.java b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkTableImpl.java index 755d4a6207be..d57ac0f68d85 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkTableImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkTableImpl.java @@ -59,7 +59,7 @@ public class ProjectJdkTableImpl extends ProjectJdkTable implements PersistentSt private final MessageListenerList myListenerList; - @NonNls private static final String ELEMENT_JDK = "jdk"; + @NonNls public static final String ELEMENT_JDK = "jdk"; private final Map myCachedProjectJdks = new HashMap(); private final MessageBus myMessageBus; diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectRootUtil.java b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectRootUtil.java index d14b0a5735c7..19a0c655acc7 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectRootUtil.java +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectRootUtil.java @@ -63,7 +63,7 @@ public class ProjectRootUtil { */ @NonNls public static final String EJB_ROOT = "ejb"; @NonNls private static final String ATTRIBUTE_TYPE = "type"; - @NonNls private static final String ELEMENT_ROOT = "root"; + @NonNls public static final String ELEMENT_ROOT = "root"; private ProjectRootUtil() { } diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/SimpleProjectRoot.java b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/SimpleProjectRoot.java index 62a0dbce48cb..4d6b81236478 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/SimpleProjectRoot.java +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/SimpleProjectRoot.java @@ -38,7 +38,7 @@ public class SimpleProjectRoot implements ProjectRoot, JDOMExternalizable { private VirtualFile myFile; private final VirtualFile[] myFileArrray = new VirtualFile[1]; private boolean myInitialized = false; - @NonNls private static final String ATTRIBUTE_URL = "url"; + @NonNls public static final String ATTRIBUTE_URL = "url"; SimpleProjectRoot(@NotNull VirtualFile file) { myFile = file; diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/InheritedJdkOrderEntryImpl.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/InheritedJdkOrderEntryImpl.java index 05f8becf83ca..c4dee479aebb 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/InheritedJdkOrderEntryImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/InheritedJdkOrderEntryImpl.java @@ -31,7 +31,7 @@ import org.jetbrains.annotations.NonNls; * @author dsl */ public class InheritedJdkOrderEntryImpl extends LibraryOrderEntryBaseImpl implements InheritedJdkOrderEntry, ClonableOrderEntry, WritableOrderEntry { - @NonNls static final String ENTRY_TYPE = "inheritedJdk"; + @NonNls public static final String ENTRY_TYPE = "inheritedJdk"; private final MyJdkTableListener myJdkTableListener = new MyJdkTableListener(); private final MyProjectJdkListener myListener = new MyProjectJdkListener(); diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/ModuleJdkOrderEntryImpl.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/ModuleJdkOrderEntryImpl.java index cbda2c2ec6be..b923084c275d 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/ModuleJdkOrderEntryImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/ModuleJdkOrderEntryImpl.java @@ -37,9 +37,9 @@ public class ModuleJdkOrderEntryImpl extends LibraryOrderEntryBaseImpl implement ClonableOrderEntry, ModuleJdkOrderEntry, ProjectJdkTable.Listener { - @NonNls static final String ENTRY_TYPE = "jdk"; - @NonNls private static final String JDK_NAME_ATTR = "jdkName"; - @NonNls private static final String JDK_TYPE_ATTR = "jdkType"; + @NonNls public static final String ENTRY_TYPE = "jdk"; + @NonNls public static final String JDK_NAME_ATTR = "jdkName"; + @NonNls public static final String JDK_TYPE_ATTR = "jdkType"; private Sdk myJdk; private String myJdkName; diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/ModuleLibraryOrderEntryImpl.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/ModuleLibraryOrderEntryImpl.java index 7f5cea5aa566..3f0f5bd8756e 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/ModuleLibraryOrderEntryImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/ModuleLibraryOrderEntryImpl.java @@ -40,7 +40,7 @@ public class ModuleLibraryOrderEntryImpl extends LibraryOrderEntryBaseImpl imple private final Library myLibrary; @NonNls public static final String ENTRY_TYPE = "module-library"; private boolean myExported; - @NonNls private static final String EXPORTED_ATTR = "exported"; + @NonNls public static final String EXPORTED_ATTR = "exported"; //cloning private ModuleLibraryOrderEntryImpl(Library library, RootModelImpl rootModel, boolean isExported, DependencyScope scope) { diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java index 41bd4e0cafd6..f51be841552f 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java @@ -73,8 +73,8 @@ import java.util.concurrent.ConcurrentMap; public class ProjectRootManagerImpl extends ProjectRootManagerEx implements ProjectComponent, JDOMExternalizable { private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.projectRoots.impl.ProjectRootManagerImpl"); - @NonNls private static final String PROJECT_JDK_NAME_ATTR = "project-jdk-name"; - @NonNls private static final String PROJECT_JDK_TYPE_ATTR = "project-jdk-type"; + @NonNls public static final String PROJECT_JDK_NAME_ATTR = "project-jdk-name"; + @NonNls public static final String PROJECT_JDK_TYPE_ATTR = "project-jdk-type"; private final ProjectEx myProject; diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/ApplicationLibraryTable.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/ApplicationLibraryTable.java index deca37cdec88..e7141d34c358 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/ApplicationLibraryTable.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/ApplicationLibraryTable.java @@ -66,7 +66,7 @@ public class ApplicationLibraryTable extends LibraryTableBase implements Exporta return true; } - private static String getExternalFileName() { + public static String getExternalFileName() { return "applicationLibraries"; } diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/JarDirectories.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/JarDirectories.java index e52129a9915b..e6b251eddbc2 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/JarDirectories.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/JarDirectories.java @@ -38,7 +38,7 @@ public class JarDirectories implements JDOMExternalizable { @NonNls private static final String JAR_DIRECTORY_ELEMENT = "jarDirectory"; @NonNls private static final String URL_ATTR = "url"; - @NonNls private static final String RECURSIVE_ATTR = "recursive"; + @NonNls public static final String RECURSIVE_ATTR = "recursive"; @NonNls private static final String ROOT_TYPE_ATTR = "type"; public static final OrderRootType DEFAULT_JAR_DIRECTORY_TYPE = OrderRootType.CLASSES; diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java index 64a6aa1c740c..73fcb03bd1eb 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java @@ -56,10 +56,10 @@ import java.util.*; public class LibraryImpl implements LibraryEx.ModifiableModelEx, LibraryEx { private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.roots.impl.impl.LibraryImpl"); @NonNls public static final String LIBRARY_NAME_ATTR = "name"; - @NonNls private static final String LIBRARY_TYPE_ATTR = "type"; - @NonNls private static final String ROOT_PATH_ELEMENT = "root"; + @NonNls public static final String LIBRARY_TYPE_ATTR = "type"; + @NonNls public static final String ROOT_PATH_ELEMENT = "root"; @NonNls public static final String ELEMENT = "library"; - @NonNls private static final String PROPERTIES_ELEMENT = "properties"; + @NonNls public static final String PROPERTIES_ELEMENT = "properties"; private static final SkipDefaultValuesSerializationFilters SERIALIZATION_FILTERS = new SkipDefaultValuesSerializationFilters(); private String myName; private final LibraryTable myLibraryTable; diff --git a/platform/platform-impl/src/com/intellij/openapi/application/ConfigImportHelper.java b/platform/platform-impl/src/com/intellij/openapi/application/ConfigImportHelper.java index c021631b591d..c464fcd28a4c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/application/ConfigImportHelper.java +++ b/platform/platform-impl/src/com/intellij/openapi/application/ConfigImportHelper.java @@ -18,6 +18,7 @@ package com.intellij.openapi.application; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.util.PlatformUtils; import com.intellij.util.SystemProperties; import com.intellij.util.ui.UIUtil; import com.intellij.ui.AppUIUtil; @@ -26,6 +27,8 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.io.*; +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; import java.util.PropertyResourceBundle; /** @@ -43,12 +46,14 @@ public class ConfigImportHelper { File oldConfigDir = findOldConfigDir(newConfigPath); do { - ImportOldConfigsPanel dlg; - if (UIUtil.hasJdk6Dialogs()) { - dlg = new ImportOldConfigsPanel(oldConfigDir); - } - else { - dlg = new ImportOldConfigsPanel(oldConfigDir, JOptionPane.getRootFrame()); + ImportOldConfigsPanel dlg = getCustomDialog(oldConfigDir); + if (dlg == null) { + if (UIUtil.hasJdk6Dialogs()) { + dlg = new ImportOldConfigsPanel(oldConfigDir); + } + else { + dlg = new ImportOldConfigsPanel(oldConfigDir, JOptionPane.getRootFrame()); + } } UIUtil.setToolkitModal(dlg); @@ -67,6 +72,33 @@ public class ConfigImportHelper { while (true); } + @Nullable + private static ImportOldConfigsPanel getCustomDialog(File oldConfigDir) { + try { + Class customDialogClass = + Class.forName("com.intellij.openapi.application." + PlatformUtils.getPlatformPrefix() + "ImportOldConfigsPanel"); + if (customDialogClass != null) { + if (ImportOldConfigsPanel.class.isAssignableFrom(customDialogClass)) { + Constructor constructor = customDialogClass.getDeclaredConstructor(File.class); + if (constructor != null) { + return (ImportOldConfigsPanel)constructor.newInstance(oldConfigDir); + } + } + } + } + catch (ClassNotFoundException ignored) { + } + catch (NoSuchMethodException ignored) { + } + catch (InvocationTargetException ignored) { + } + catch (InstantiationException ignored) { + } + catch (IllegalAccessException ignored) { + } + return null; + } + private static File findOldConfigDir(String newConfigPath) { final File configDir = new File(newConfigPath); final File selectorDir = SystemInfo.isMac ? configDir : configDir.getParentFile(); diff --git a/platform/platform-impl/src/com/intellij/openapi/application/ImportOldConfigsPanel.java b/platform/platform-impl/src/com/intellij/openapi/application/ImportOldConfigsPanel.java index b933518256ec..6b53e60506c8 100644 --- a/platform/platform-impl/src/com/intellij/openapi/application/ImportOldConfigsPanel.java +++ b/platform/platform-impl/src/com/intellij/openapi/application/ImportOldConfigsPanel.java @@ -67,17 +67,16 @@ public class ImportOldConfigsPanel extends JDialog { group.add(myRbImportAuto); myRbDoNotImport.setSelected(true); - final ApplicationNamesInfo namesInfo = ApplicationNamesInfo.getInstance(); - final String productName = namesInfo.getProductName().equals("IDEA") ? namesInfo.getFullProductName() : namesInfo.getProductName(); - mySuggestLabel.setText(ApplicationBundle.message("label.you.can.import", productName)); - myRbDoNotImport.setText(ApplicationBundle.message("radio.do.not.import", productName)); + final String productName = getProductName(false); + mySuggestLabel.setText(getTitleLabel(productName)); + myRbDoNotImport.setText(getDoNotImportLabel(productName)); if(myGuessedOldConfig != null) { - myRbImportAuto.setText(ApplicationBundle.message("radio.import.auto", myGuessedOldConfig.getAbsolutePath().replace(SystemProperties.getUserHome(), "~"))); + myRbImportAuto.setText(getAutoImportLabel(myGuessedOldConfig)); myRbImportAuto.setSelected(true); } else { myRbImportAuto.setVisible(false); } - myHomeLabel.setText(ApplicationBundle.message("editbox.installation.home", productName)); + myHomeLabel.setText(getHomeLabel(productName)); myRbImport.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { @@ -138,6 +137,11 @@ public class ImportOldConfigsPanel extends JDialog { setLocation((parentSize.width - ownSize.width) / 2, (parentSize.height - ownSize.height) / 2); } + protected String getProductName(boolean full) { + ApplicationNamesInfo namesInfo = ApplicationNamesInfo.getInstance(); + return full || namesInfo.getProductName().equals("IDEA") ? namesInfo.getFullProductName() : namesInfo.getProductName(); + } + @Nullable private static String findPreviousInstallationWindows(String productName) { String programFiles = System.getenv("ProgramFiles"); @@ -178,34 +182,32 @@ public class ImportOldConfigsPanel extends JDialog { private void close() { if (isImportEnabled()) { - final String productWithVendor = ApplicationNamesInfo.getInstance().getFullProductName(); + final String productWithVendor = getProductName(true); String instHome = myPrevInstallation.getText(); if ("".equals(instHome)) { JOptionPane.showMessageDialog(this, - ApplicationBundle.message("error.please.select.previous.installation.home", productWithVendor), + getEmptyHomeErrorText(productWithVendor), ApplicationBundle.message("title.installation.home.required"), JOptionPane.ERROR_MESSAGE); return; } if (PathManager.getHomePath().equals(instHome)) { JOptionPane.showMessageDialog(this, - ApplicationBundle.message("error.selected.current.installation.home", - productWithVendor, productWithVendor), + getCurrentHomeErrorText(productWithVendor), ApplicationBundle.message("title.installation.home.required"), JOptionPane.ERROR_MESSAGE); return; } if (myRbImport.isSelected() && !ConfigImportHelper.isInstallationHomeOrConfig(instHome)) { JOptionPane.showMessageDialog(this, - ApplicationBundle.message("error.does.not.appear.to.be.installation.home", instHome, - productWithVendor), + getInvalidHomeErrorText(productWithVendor, instHome), ApplicationBundle.message("title.installation.home.required"), JOptionPane.ERROR_MESSAGE); return; } if (!new File(instHome).canRead()) { JOptionPane.showMessageDialog(this, - ApplicationBundle.message("error.no.read.permissions", instHome), + getInaccessibleHomeErrorText(instHome), ApplicationBundle.message("title.installation.home.required"), JOptionPane.ERROR_MESSAGE); return; } @@ -230,4 +232,39 @@ public class ImportOldConfigsPanel extends JDialog { ImportOldConfigsPanel dlg = new ImportOldConfigsPanel(null); dlg.setVisible(true); } + + protected String getInaccessibleHomeErrorText(String instHome) { + return ApplicationBundle.message("error.no.read.permissions", instHome); + } + + protected String getInvalidHomeErrorText(String productWithVendor, String instHome) { + return ApplicationBundle.message("error.does.not.appear.to.be.installation.home", instHome, + productWithVendor); + } + + protected String getCurrentHomeErrorText(String productWithVendor) { + return ApplicationBundle.message("error.selected.current.installation.home", + productWithVendor, productWithVendor); + } + + protected String getEmptyHomeErrorText(String productWithVendor) { + return ApplicationBundle.message("error.please.select.previous.installation.home", productWithVendor); + } + + protected String getHomeLabel(String productName) { + return ApplicationBundle.message("editbox.installation.home", productName); + } + + protected String getAutoImportLabel(File guessedOldConfig) { + return ApplicationBundle.message("radio.import.auto", guessedOldConfig.getAbsolutePath().replace(SystemProperties.getUserHome(), "~")); + } + + protected String getDoNotImportLabel(String productName) { + return ApplicationBundle.message("radio.do.not.import", productName); + } + + protected String getTitleLabel(String productName) { + return ApplicationBundle.message("label.you.can.import", productName); + } + } diff --git a/platform/platform-resources-en/src/messages/IdeBundle.properties b/platform/platform-resources-en/src/messages/IdeBundle.properties index 428adc8c8bc8..59d410d0de06 100644 --- a/platform/platform-resources-en/src/messages/IdeBundle.properties +++ b/platform/platform-resources-en/src/messages/IdeBundle.properties @@ -234,8 +234,8 @@ error.project.file.is.corrupted=Project file is corrupted title.cannot.convert.project=Cannot Convert Project dialog.title.convert.project=Convert Project -label.text.project.has.older.format=The project ''{0}'' has an older format and will be converted. You may not be able to open the project with earlier versions of {1}. Details
\ - Old versions of project files will be saved to: ''{2}'' +conversion.dialog.text.1=The project ''{0}'' has an older format and will be converted. You may not be able to open the project with earlier versions of {1}. +conversion.dialog.text.2= Details...

Old versions of project files will be saved to: ''{0}'' message.text.unlock.read.only.files=The following files are read only. {0} will unlock them.
{1} error.message.cannot.make.files.writable=Cannot make the following files writable:\n{0} error.cannot.convert.project=Cannot convert project: {0}