-\r
-package org.simantics.fileimport.ui;\r
-\r
-import java.nio.file.Paths;\r
-import java.util.Map;\r
-import java.util.Optional;\r
-\r
-import javax.inject.Named;\r
-\r
-import org.eclipse.e4.core.di.annotations.CanExecute;\r
-import org.eclipse.e4.core.di.annotations.Execute;\r
-import org.eclipse.e4.ui.services.IServiceConstants;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.widgets.FileDialog;\r
-import org.eclipse.swt.widgets.Shell;\r
-import org.simantics.fileimport.FileImportService;\r
-\r
-public class ImportFileHandler {\r
-\r
- @CanExecute\r
- public boolean canExecute() {\r
- return !FileImportService.supportedExtensionsWithFilters().isEmpty();\r
- }\r
-\r
- @Execute\r
- public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell) {\r
-\r
- Map<String, String> extensions = FileImportService.supportedExtensionsWithFilters();\r
- String[] filterExtensions = (String[]) extensions.keySet().toArray(new String[extensions.keySet().size()]);\r
- String[] filterNames = (String[]) extensions.values().toArray(new String[extensions.values().size()]);\r
- \r
- // Sanity check\r
- for (int i = 0; i < filterExtensions.length; i++) {\r
- String extension = filterExtensions[i];\r
- if (!extension.startsWith("*.")) {\r
- System.err.println("Invalid extension filter provied: " + extension);\r
- }\r
- }\r
-\r
- FileDialog dialog = new FileDialog(shell, SWT.OPEN);\r
- dialog.setText("Choose File");\r
- dialog.setFilterExtensions(filterExtensions);\r
- dialog.setFilterNames(filterNames);\r
- final String fileName = dialog.open();\r
- if (fileName == null)\r
- return;\r
- FileImportService.performFileImport(Paths.get(fileName), Optional.empty());\r
- }\r
+
+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<String, String> 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<Throwable>) t -> {
+ LOGGER.error("Could not import file " + fileName, t);
+ }));
+ }