X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.imports.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fimports%2Fui%2FCSVImportModel.java;h=53de5cfe27714ad2be556b34b065a564174a7bfe;hb=e6378bf9c77ffd2d33d81ab882e6a2243506a0a8;hp=50c427c4d14f66138ec17246411ecae4d617294b;hpb=31bcbe46c93a576cd6ade673a745ea9cb28672da;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.imports.ui/src/org/simantics/district/imports/ui/CSVImportModel.java b/org.simantics.district.imports.ui/src/org/simantics/district/imports/ui/CSVImportModel.java index 50c427c4..53de5cfe 100644 --- a/org.simantics.district.imports.ui/src/org/simantics/district/imports/ui/CSVImportModel.java +++ b/org.simantics.district.imports.ui/src/org/simantics/district/imports/ui/CSVImportModel.java @@ -1,73 +1,225 @@ -package org.simantics.district.imports.ui; - -import java.io.IOException; -import java.nio.file.Path; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import org.simantics.district.imports.DistrictImportUtils; -import org.simantics.district.imports.DistrictImportUtils.CSVHeader; - -public class CSVImportModel { - - private Path source; - private char delimiter; - private boolean read; - private Map delimiters; - - public CSVImportModel() { - delimiters = DistrictImportUtils.getSupportedCSVDelimiterFormats(); - } - - public void setSource(Path source) { - this.source = source; - } - - public void setDelimiter(char delimiter) { - this.delimiter = delimiter; - } - - public void setReadFirstAsHeader(boolean read) { - this.read = read; - } - - public Path getSource() { - return source; - } - - public Map> getHeaderAndRows(int amount) throws IOException { - if (source != null) - return DistrictImportUtils.readCSVHeaderAndRows(source, delimiter, read, amount); - else - return Collections.emptyMap(); - } - - public Map getHeader() throws IOException { - Map header = null; - if (source != null) - header = DistrictImportUtils.readCSVHeader(source, delimiter, read); - if (header == null) - header = Collections.emptyMap(); - return header; - } - - public boolean getReadFirstAsHeader() { - return read; - } - - public String[] getDelimiterFormats() { - return delimiters.keySet().toArray(new String[delimiters.size()]); - } - - public void setDelimiterByLabel(String item) { - setDelimiter(delimiters.get(item)); - } - - public List> readRows(int amount) throws IOException { - if (source != null) - return DistrictImportUtils.readRows(source, delimiter, read, amount); - else - return Collections.emptyList(); - } -} +package org.simantics.district.imports.ui; + +import java.io.IOException; +import java.nio.file.Path; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.commons.csv.CSVRecord; +import org.simantics.db.Resource; +import org.simantics.district.imports.DistrictImportUtils; +import org.simantics.district.imports.DistrictImportUtils.CSVHeader; + +public class CSVImportModel { + + // First page fills these + private Resource targetDiagram; + private Path source; + + // Second page fills these + private char delimiter; + private boolean read; + private Map delimiters; + private Path wktFile; + + // Vertex import + private int xCoordIndex = -1; + private int yCoordIndex = -1; + private int zCoordIndex = -1; + + // Edge import + private int startXCoordIndex = -1; + private int startYCoordIndex = -1; + private int startZCoordIndex = -1; + private int endXCoordIndex = -1; + private int endYCoordIndex = -1; + private int endZCoordIndex = -1; + + // common + private int componentMappingIndex = -1; + private Map componentMappings = new HashMap<>(); + private boolean isVertexImport; + + // Third page + + public CSVImportModel() { + delimiters = DistrictImportUtils.getSupportedCSVDelimiterFormats(); + } + + public void setSource(Path source) { + this.source = source; + } + + public void setDelimiter(char delimiter) { + this.delimiter = delimiter; + } + + public void setReadFirstAsHeader(boolean read) { + this.read = read; + } + + public Path getSource() { + return source; + } + + public List getRows(int amount) throws IOException { + if (source != null) + return DistrictImportUtils.readRows(source, delimiter, amount); + else + return Collections.emptyList(); + } + + public Map> getHeaderAndRows(int amount) throws IOException { + if (source != null) + return DistrictImportUtils.readCSVHeaderAndRows(source, delimiter, read, amount); + else + return Collections.emptyMap(); + } + + public Map getHeader() throws IOException { + Map header = null; + if (source != null) + header = DistrictImportUtils.readCSVHeader(source, delimiter, read); + if (header == null) + header = Collections.emptyMap(); + return header; + } + + public boolean getReadFirstAsHeader() { + return read; + } + + public String[] getDelimiterFormats() { + return delimiters.keySet().toArray(new String[delimiters.size()]); + } + + public void setDelimiterByLabel(String item) { + setDelimiter(delimiters.get(item)); + } + + public List> readRows(int amount) throws IOException { + if (source != null) + return DistrictImportUtils.readRows(source, delimiter, read, amount); + else + return Collections.emptyList(); + } + + public char getDelimiter() { + return delimiter; + } + + public Path getWKTFile() { + return wktFile; + } + + public int getXCoordIndex() { + return xCoordIndex; + } + + public void setXCoordIndex(int xCoordIndex) { + this.xCoordIndex = xCoordIndex; + } + + public int getYCoordIndex() { + return yCoordIndex; + } + + public void setYCoordIndex(int yCoordIndex) { + this.yCoordIndex = yCoordIndex; + } + + public int getZCoordIndex() { + return zCoordIndex; + } + + public void setZCoordIndex(int zCoordIndex) { + this.zCoordIndex = zCoordIndex; + } + + public int getComponentMappingIndex() { + return componentMappingIndex; + } + + public void setComponentMappingIndex(int componentMappingIndex) { + this.componentMappingIndex = componentMappingIndex; + } + + public void setParentDiagram(Resource diagram) { + this.targetDiagram = diagram; + } + + public Resource getParentDiagram() { + return targetDiagram; + } + + public void setWKTFile(Path wktFile) { + this.wktFile = wktFile; + } + + public void setComponentMappings(String value, Resource resource) { + componentMappings.put(value, resource); + } + + public Map getComponentMappings() { + return componentMappings; + } + + public boolean isVertexImport() { + return isVertexImport; + } + + public void setVertexImport(boolean isVertexImport) { + this.isVertexImport = isVertexImport; + } + + public void setStartXCoordIndex(int parseInt) { + this.startXCoordIndex = parseInt; + } + + public int getStartXCoordIndex() { + return startXCoordIndex; + } + + public void setStartYCoordIndex(int parseInt) { + this.startYCoordIndex = parseInt; + } + + public int getStartYCoordIndex() { + return startYCoordIndex; + } + + public void setStartZCoordIndex(int parseInt) { + this.startZCoordIndex = parseInt; + } + + public int getStartZCoordIndex() { + return startZCoordIndex; + } + + public void setEndXCoordIndex(int parseInt) { + this.endXCoordIndex = parseInt; + } + + public int getEndXCoordIndex() { + return endXCoordIndex; + } + + public void setEndYCoordIndex(int parseInt) { + this.endYCoordIndex = parseInt; + } + + public int getEndYCoordIndex() { + return endYCoordIndex; + } + + public void setEndZCoordIndex(int parseInt) { + this.endZCoordIndex = parseInt; + } + + public int getEndZCoordIndex() { + return endZCoordIndex; + } + +}