- final String filename = dialog.open();\r
- if (filename == null) {\r
- return;\r
- }\r
- Simantics.getSession().asyncRequest(new WriteRequest() {\r
+ if (dialog.open() == null) return;\r
+\r
+ String filterPath = dialog.getFilterPath();\r
+ String[] filenames = dialog.getFileNames();\r
+ \r
+ ImportJob job = new ImportJob(filenames.length > 1 ? "Import files" : "Import file", resource, filterPath, filenames);\r
+ job.setUser(true);\r
+ job.schedule();\r
+ }\r
+ };\r
+ }\r
+ \r
+ private class ImportJob extends DatabaseJob {\r
+\r
+ public ImportJob(String name, Resource resource, String path, String[] filenames) {\r
+ super(name);\r
+ this.resource = resource;\r
+ this.path = path;\r
+ this.filenames = filenames;\r
+ }\r
+\r
+ Resource resource;\r
+ String path;\r
+ String[] filenames;\r
+\r
+ @Override\r
+ protected IStatus run(final IProgressMonitor monitor) {\r
+ monitor.beginTask("Importing...", filenames.length);\r
+ try {\r
+ Simantics.getSession().syncRequest(new WriteRequest() {\r