diff --git a/platform/lang-impl/src/com/intellij/application/options/codeStyle/ManageCodeStyleSchemesDialog.java b/platform/lang-impl/src/com/intellij/application/options/codeStyle/ManageCodeStyleSchemesDialog.java index 01208dded304..fc0248e584ba 100644 --- a/platform/lang-impl/src/com/intellij/application/options/codeStyle/ManageCodeStyleSchemesDialog.java +++ b/platform/lang-impl/src/com/intellij/application/options/codeStyle/ManageCodeStyleSchemesDialog.java @@ -53,7 +53,7 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import java.io.InputStream; -import java.util.ArrayList; +import java.util.*; import java.util.List; /** @@ -184,15 +184,16 @@ public class ManageCodeStyleSchemesDialog extends DialogWrapper { private String importExternalCodeStyle(String importerName) throws SchemeImportException { final SchemeImporter importer = SchemeImporterEP.getImporter(importerName, CodeStyleScheme.class); if (importer != null) { + final Set extensions = new HashSet(Arrays.asList(importer.getSourceExtensions())); FileChooserDialog fileChooser = FileChooserFactory.getInstance() .createFileChooser(new FileChooserDescriptor(true, false, false, false, false, false) { @Override public boolean isFileVisible(VirtualFile file, boolean showHiddenFiles) { - return file.isDirectory() || importer.getSourceExtension().equals(file.getExtension()); + return file.isDirectory() || extensions.contains(file.getExtension()); } @Override public boolean isFileSelectable(VirtualFile file) { - return !file.isDirectory() && importer.getSourceExtension().equals(file.getExtension()); + return !file.isDirectory() && extensions.contains(file.getExtension()); } }, null, myContentPane); VirtualFile[] selection = fileChooser.choose(null, CodeStyleSchemesUIConfiguration.Util.getRecentImportFile()); diff --git a/platform/platform-api/src/com/intellij/openapi/options/SchemeImporter.java b/platform/platform-api/src/com/intellij/openapi/options/SchemeImporter.java index 8bb8456b90ea..9f5f1c791af9 100644 --- a/platform/platform-api/src/com/intellij/openapi/options/SchemeImporter.java +++ b/platform/platform-api/src/com/intellij/openapi/options/SchemeImporter.java @@ -15,7 +15,8 @@ public interface SchemeImporter { /** * @return An extension of a source file which can be imported, for example, "xml". */ - String getSourceExtension(); + @NotNull + String[] getSourceExtensions(); /** * Attempts to read scheme names from the given stream. The stream may contain several schemes in which case all the available diff --git a/plugins/eclipse/src/org/jetbrains/idea/eclipse/importer/EclipseCodeStyleSchemeImporter.java b/plugins/eclipse/src/org/jetbrains/idea/eclipse/importer/EclipseCodeStyleSchemeImporter.java index 16d248b445a3..023776255a2d 100644 --- a/plugins/eclipse/src/org/jetbrains/idea/eclipse/importer/EclipseCodeStyleSchemeImporter.java +++ b/plugins/eclipse/src/org/jetbrains/idea/eclipse/importer/EclipseCodeStyleSchemeImporter.java @@ -48,9 +48,10 @@ public class EclipseCodeStyleSchemeImporter implements SchemeImporter