X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.fileimport%2Fsrc%2Forg%2Fsimantics%2Ffileimport%2Fscl%2FDropinsSCL.java;h=cad45187721a8caef5345cea807c426d4a9c9f1a;hp=0758d3e784ef735ad98471e0b5e34cafde33f748;hb=b809a171b6dfb81ed9ef9e84870dcbcbc5912f0e;hpb=0e8cf1e1708870e179330c2f9af2d03589d553ab diff --git a/bundles/org.simantics.fileimport/src/org/simantics/fileimport/scl/DropinsSCL.java b/bundles/org.simantics.fileimport/src/org/simantics/fileimport/scl/DropinsSCL.java index 0758d3e78..cad451877 100644 --- a/bundles/org.simantics.fileimport/src/org/simantics/fileimport/scl/DropinsSCL.java +++ b/bundles/org.simantics.fileimport/src/org/simantics/fileimport/scl/DropinsSCL.java @@ -2,17 +2,40 @@ package org.simantics.fileimport.scl; import java.io.IOException; import java.nio.file.Path; +import java.util.HashMap; import java.util.Map; import java.util.Optional; +import org.simantics.Simantics; import org.simantics.databoard.util.Base64; +import org.simantics.db.ReadGraph; +import org.simantics.db.Resource; +import org.simantics.db.common.request.UniqueRead; +import org.simantics.db.exception.DatabaseException; +import org.simantics.db.service.SerialisationSupport; import org.simantics.fileimport.Activator; import org.simantics.fileimport.FileImportService; import org.simantics.fileimport.dropins.FileImportDropins; +import org.simantics.layer0.Layer0; import org.simantics.utils.FileUtils; +/** + * SCL interface for Simantics File Import Functionality + * See "Dropins/Core" SCL module for more + * + * @author Jani Simomaa + * + */ public class DropinsSCL { + public static void watchDropinsFolder() { + FileImportDropins.watchDropinsFolder(); + } + + public static void unwatchDropinsFolder() { + FileImportDropins.unwatchDropinsFolder(); + } + public static void uploadToDropinsBase64(String base64, String fileName) { // ensure that watcher is awake FileImportDropins.watchDropinsFolder(); @@ -26,8 +49,29 @@ public class DropinsSCL { } } - public static Map getUploadedFiles() { - return FileImportService.getPathsAndResources(); + public static Map getUploadedFiles() throws DatabaseException { + Map results = FileImportService.getPathsAndResources(); + Map result = Simantics.getSession().syncRequest(new UniqueRead>() { + + @Override + public Map perform(ReadGraph graph) throws DatabaseException { + Map map = new HashMap<>(); + for (Map.Entry entry : results.entrySet()) { + String value = (String) entry.getValue(); + Long id = Long.valueOf(value); + SerialisationSupport ss = graph.getService(SerialisationSupport.class); + try { + Resource r = ss.getResource(id); + String name = graph.getRelatedValue(r, Layer0.getInstance(graph).HasName); + map.put(name, id); + } catch (DatabaseException e) { + e.printStackTrace(); + } + } + return map; + } + }); + return result; } public static void removeFileForId(long id) {