]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ui/src/org/simantics/district/network/ui/adapters/DistrictNetworkVertexElementFactory.java
Stash for edge styling & import progress monitoring
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / adapters / DistrictNetworkVertexElementFactory.java
index 976abd48596ccf177065addfa8ffbc1914e1904e..1fc38bf6e03f8cf56566a9445e929fb621d510ea 100644 (file)
@@ -1,7 +1,5 @@
 package org.simantics.district.network.ui.adapters;
 
-import java.awt.geom.AffineTransform;
-
 import org.simantics.db.AsyncReadGraph;
 import org.simantics.db.ReadGraph;
 import org.simantics.db.Resource;
@@ -22,13 +20,14 @@ import org.simantics.g2d.element.ElementUtils;
 import org.simantics.g2d.element.IElement;
 import org.simantics.g2d.element.handler.impl.StaticObjectAdapter;
 import org.simantics.g2d.layers.ILayersEditor;
+import org.simantics.maps.MapScalingTransform;
 
 public class DistrictNetworkVertexElementFactory extends SyncElementFactory {
 
     public static final ElementClass CLASS = DistrictNetworkVertexElement.CLASS;
     private DistrictNetworkResource DN;
     private DiagramResource DIA;
-
+    
     public DistrictNetworkVertexElementFactory(ReadGraph graph) {
         this.DN = DistrictNetworkResource.getInstance(graph);
         this.DIA = DiagramResource.getInstance(graph);
@@ -46,14 +45,18 @@ public class DistrictNetworkVertexElementFactory extends SyncElementFactory {
 
     @Override
     public void load(ReadGraph graph, ICanvasContext canvas, IDiagram diagram, Resource vertexResource, IElement element) throws DatabaseException {
-        
+        if (!graph.hasStatement(vertexResource))
+            return; // already deleted
+
         double[] coords = graph.getRelatedValue(vertexResource, DIA.HasLocation);
         DistrictNetworkVertex vertex = new DistrictNetworkVertex(coords);
+        
+        Resource mapping = graph.getSingleObject(vertexResource, DistrictNetworkResource.getInstance(graph).HasMapping);
+        element.setHint(DistrictNetworkAdditionalColor.KEY_DN_MAPPING_RESOURCE, mapping);
         element.setHint(DistrictNetworkVertexElement.KEY_DN_VERTEX, vertex);
         
-        // set element transform based on layer SRS and coords
-        AffineTransform at = new AffineTransform(1, 0, 0, 1, coords[0], coords[1]);
-        ElementUtils.setTransform(element, at);
+        // set scaling transform for vertices
+        ElementUtils.setTransform(element, MapScalingTransform.INSTANCE);
         
         IModifiableSynchronizationContext context = diagram.getHint(SynchronizationHints.CONTEXT);
         GraphLayerManager layerManager = context.get(GraphSynchronizationHints.GRAPH_LAYER_MANAGER);