X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.fileimport.ui%2Fsrc%2Forg%2Fsimantics%2Ffileimport%2Fui%2FImportFileHandler.java;h=21f8d3c4d8b6dc52767e3b1b9b5b8357df192191;hb=f9b0a9c48dd040142414f8d3e7ac43b502d3e203;hp=ff6ab675b97aede9223155f42b56488e931b7e77;hpb=8ada31c956ee02aef38627ba4deaaae3eecb623a;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.fileimport.ui/src/org/simantics/fileimport/ui/ImportFileHandler.java b/bundles/org.simantics.fileimport.ui/src/org/simantics/fileimport/ui/ImportFileHandler.java index ff6ab675b..21f8d3c4d 100644 --- a/bundles/org.simantics.fileimport.ui/src/org/simantics/fileimport/ui/ImportFileHandler.java +++ b/bundles/org.simantics.fileimport.ui/src/org/simantics/fileimport/ui/ImportFileHandler.java @@ -1,49 +1,57 @@ - -package org.simantics.fileimport.ui; - -import java.nio.file.Paths; -import java.util.Map; -import java.util.Optional; - -import javax.inject.Named; - -import org.eclipse.e4.core.di.annotations.CanExecute; -import org.eclipse.e4.core.di.annotations.Execute; -import org.eclipse.e4.ui.services.IServiceConstants; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.FileDialog; -import org.eclipse.swt.widgets.Shell; -import org.simantics.fileimport.FileImportService; - -public class ImportFileHandler { - - @CanExecute - public boolean canExecute() { - return !FileImportService.supportedExtensionsWithFilters().isEmpty(); - } - - @Execute - public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell) { - - Map extensions = FileImportService.supportedExtensionsWithFilters(); - String[] filterExtensions = (String[]) extensions.keySet().toArray(new String[extensions.keySet().size()]); - String[] filterNames = (String[]) extensions.values().toArray(new String[extensions.values().size()]); - - // Sanity check - for (int i = 0; i < filterExtensions.length; i++) { - String extension = filterExtensions[i]; - if (!extension.startsWith("*.")) { - System.err.println("Invalid extension filter provied: " + extension); - } - } - - FileDialog dialog = new FileDialog(shell, SWT.OPEN); - dialog.setText("Choose File"); - dialog.setFilterExtensions(filterExtensions); - dialog.setFilterNames(filterNames); - final String fileName = dialog.open(); - if (fileName == null) - return; - FileImportService.performFileImport(Paths.get(fileName), Optional.empty()); - } + +package org.simantics.fileimport.ui; + +import java.nio.file.Paths; +import java.util.Map; +import java.util.Optional; +import java.util.function.Consumer; + +import javax.inject.Named; + +import org.eclipse.e4.core.di.annotations.CanExecute; +import org.eclipse.e4.core.di.annotations.Execute; +import org.eclipse.e4.ui.services.IServiceConstants; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.FileDialog; +import org.eclipse.swt.widgets.Shell; +import org.simantics.fileimport.FileImportService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class ImportFileHandler { + + private static final Logger LOGGER = LoggerFactory.getLogger(ImportFileHandler.class); + + @CanExecute + public boolean canExecute() { + return !FileImportService.supportedExtensionsWithFilters().isEmpty(); + } + + @Execute + public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell) { + + Map extensions = FileImportService.supportedExtensionsWithFilters(); + String[] filterExtensions = (String[]) extensions.keySet().toArray(new String[extensions.keySet().size()]); + String[] filterNames = (String[]) extensions.values().toArray(new String[extensions.values().size()]); + + // Sanity check + for (int i = 0; i < filterExtensions.length; i++) { + String extension = filterExtensions[i]; + if (!extension.startsWith("*.")) { + System.err.println("Invalid extension filter provied: " + extension); + } + } + + FileDialog dialog = new FileDialog(shell, SWT.OPEN); + dialog.setText("Choose File"); + dialog.setFilterExtensions(filterExtensions); + dialog.setFilterNames(filterNames); + final String fileName = dialog.open(); + if (fileName == null) + return; + + FileImportService.performFileImport(Paths.get(fileName), Optional.of((Consumer) t -> { + LOGGER.error("Could not import file " + fileName, t); + })); + } } \ No newline at end of file