X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.imports%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fimports%2FDistrictImportUtils.java;h=cad063fd5094fa9d73ad4da5012d65f093c35153;hb=a82b2ac2e9ed26debc90ed024360283af449d761;hp=083b58d5fa1d91c7fad40bc53d2fc939aab1d9e5;hpb=1a9e7423c31c56955bcf7d051d1c8e756d2d4cb7;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.imports/src/org/simantics/district/imports/DistrictImportUtils.java b/org.simantics.district.imports/src/org/simantics/district/imports/DistrictImportUtils.java index 083b58d5..cad063fd 100644 --- a/org.simantics.district.imports/src/org/simantics/district/imports/DistrictImportUtils.java +++ b/org.simantics.district.imports/src/org/simantics/district/imports/DistrictImportUtils.java @@ -29,24 +29,17 @@ import org.opengis.referencing.operation.MathTransform; import org.opengis.referencing.operation.TransformException; import org.simantics.Simantics; import org.simantics.databoard.Bindings; -import org.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.WriteGraph; -import org.simantics.db.common.request.ObjectsWithType; -import org.simantics.db.common.request.UniqueRead; import org.simantics.db.common.request.WriteRequest; import org.simantics.db.exception.DatabaseException; import org.simantics.db.layer0.util.Layer0Utils; -import org.simantics.diagram.stubs.DiagramResource; import org.simantics.district.network.DNEdgeBuilder; import org.simantics.district.network.DistrictNetworkUtil; import org.simantics.district.network.ontology.DistrictNetworkResource; -import org.simantics.layer0.Layer0; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.simantics.district.network.DistrictNetworkUtil.ResourceVertex; -import com.vividsolutions.jts.geom.Envelope; import com.vividsolutions.jts.index.quadtree.Quadtree; public class DistrictImportUtils { @@ -408,24 +401,7 @@ public class DistrictImportUtils { double halfPadding = padding / 2; - Quadtree vv = Simantics.getSession().syncRequest(new UniqueRead() { - - @Override - public Quadtree perform(ReadGraph graph) throws DatabaseException { - Collection vertices = graph.syncRequest(new ObjectsWithType(model.getParentDiagram(), Layer0.getInstance(graph).ConsistsOf, DistrictNetworkResource.getInstance(graph).Vertex)); - Quadtree vv = new Quadtree(); - for (Resource vertex : vertices) { - double[] coords = graph.getRelatedValue2(vertex, DiagramResource.getInstance(graph).HasLocation, Bindings.DOUBLE_ARRAY); - double x1 = coords[0] - halfPadding; - double y1= coords[1] - halfPadding; - double x2 = coords[0] + halfPadding; - double y2= coords[1] + halfPadding; - Envelope e = new Envelope(x1, x2, y1, y2); - vv.insert(e, new ResourceVertex(vertex, coords, true)); - } - return vv; - } - }); + Quadtree existingVertices = DistrictNetworkUtil.existingVertices(model.getParentDiagram(), halfPadding); Simantics.getSession().syncRequest(new WriteRequest() { @@ -480,8 +456,8 @@ public class DistrictImportUtils { // Switch to (longitude, latitude) flipAxes(startCoords); flipAxes(endCoords); - - Optional oedge = DNEdgeBuilder.create(graph, vv, model.getParentDiagram(), model.getComponentMappings().get(mappingValue), startCoords, startZCoord, endCoords, endZCoord, new double[0], padding, true); + + Optional oedge = DNEdgeBuilder.create(graph, existingVertices, model.getParentDiagram(), model.getComponentMappings().get(mappingValue), startCoords, startZCoord, endCoords, endZCoord, new double[0], padding, true); if (oedge.isPresent()) { Resource edge = oedge.get();