package org.simantics.district.network.techtype;
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
+import java.util.stream.Collectors;
import org.simantics.Simantics;
import org.simantics.databoard.Bindings;
import org.simantics.district.network.techtype.requests.PossibleTechTypeTable;
import org.simantics.district.network.techtype.requests.TechTypeTableData;
import org.simantics.district.network.techtype.requests.TechTypeTableKeyName;
+import org.simantics.district.network.techtype.requests.WriteTechTypeTable;
import org.simantics.layer0.Layer0;
import org.simantics.scl.runtime.SCLContext;
import org.simantics.structural.stubs.StructuralResource2;
public static String DEFAULT_KEY_NAME = "pipeCode";
+ /**
+ * Load a tech type table from a CSV file and write it in the active model.
+ *
+ * @param componentType The component type that the tech type table is associated with
+ * @param filePath A path to a CSV file
+ * @throws DatabaseException
+ * @throws IOException
+ */
+ public static void loadTechTypeTable(Resource componentType, String filePath) throws DatabaseException, IOException {
+ String data;
+ try {
+ data = Files.lines(Paths.get(filePath), Charset.defaultCharset()).collect(Collectors.joining("\n"));
+ } catch (IOException e) {
+ LOGGER.error("Failed to read contents of file '{}' as {}", filePath, Charset.defaultCharset(), e);
+ return;
+ }
+
+ Simantics.getSession().syncRequest(new WriteRequest() {
+ @Override
+ public void perform(WriteGraph graph) throws DatabaseException {
+ graph.syncRequest(new WriteTechTypeTable(componentType, data));
+ }
+ });
+ }
+
/**
* Execute a cached query for a possible tech type table item in a table with a given item key.
*
}
/**
- * Reset all components that address the given tech type table to the table values.
+ * Reset all diagram elements to tech type table values.
*
* @param table A tech type table
* @throws DatabaseException