List of usage examples for com.intellij.openapi.options SchemeImportException SchemeImportException
public SchemeImportException(Throwable cause)
From source file:com.intellij.application.options.codeStyle.ManageCodeStyleSchemesDialog.java
License:Apache License
@Nullable private String importExternalCodeStyle(String importerName) throws SchemeImportException { final SchemeImporter<CodeStyleScheme> importer = SchemeImporterEP.getImporter(importerName, CodeStyleScheme.class); if (importer != null) { FileChooserDialog fileChooser = FileChooserFactory.getInstance() .createFileChooser(new FileChooserDescriptor(true, false, false, false, false, false) { @Override/*from w w w.j ava 2 s . c o m*/ public boolean isFileVisible(VirtualFile file, boolean showHiddenFiles) { return file.isDirectory() || importer.getSourceExtension().equals(file.getExtension()); } @Override public boolean isFileSelectable(VirtualFile file) { return !file.isDirectory() && importer.getSourceExtension().equals(file.getExtension()); } }, null, myContentPane); VirtualFile[] selection = fileChooser.choose(null, CodeStyleSchemesUIConfiguration.Util.getRecentImportFile()); if (selection.length == 1) { VirtualFile selectedFile = selection[0]; selectedFile.refresh(false, false); CodeStyleSchemesUIConfiguration.Util.setRecentImportFile(selectedFile); try { InputStream nameInputStream = selectedFile.getInputStream(); String[] schemeNames; try { schemeNames = importer.readSchemeNames(nameInputStream); } finally { nameInputStream.close(); } CodeStyleScheme currScheme = myModel.getSelectedScheme(); ImportSchemeChooserDialog schemeChooserDialog = new ImportSchemeChooserDialog(myContentPane, schemeNames, !currScheme.isDefault() ? currScheme.getName() : null); if (schemeChooserDialog.showAndGet()) { String schemeName = schemeChooserDialog.getSelectedName(); String targetName = schemeChooserDialog.getTargetName(); CodeStyleScheme targetScheme = null; if (schemeChooserDialog.isUseCurrentScheme()) { targetScheme = myModel.getSelectedScheme(); } else { if (targetName == null) targetName = ApplicationBundle.message("code.style.scheme.import.unnamed"); for (CodeStyleScheme scheme : myModel.getSchemes()) { if (targetName.equals(scheme.getName())) { targetScheme = scheme; break; } } if (targetScheme == null) { int row = mySchemesTableModel.createNewScheme(getSelectedScheme(), targetName); mySchemesTable.getSelectionModel().setSelectionInterval(row, row); targetScheme = mySchemesTableModel.getSchemeAt(row); } else { int result = Messages.showYesNoDialog(myContentPane, ApplicationBundle.message("message.code.style.scheme.already.exists", targetName), ApplicationBundle.message("title.code.style.settings.import"), Messages.getQuestionIcon()); if (result != Messages.YES) { return null; } } } InputStream dataInputStream = selectedFile.getInputStream(); try { importer.importScheme(dataInputStream, schemeName, targetScheme); myModel.fireSchemeChanged(targetScheme); } finally { dataInputStream.close(); } return targetScheme.getName(); } } catch (IOException e) { throw new SchemeImportException(e); } } } return null; }