]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ui/src/org/simantics/district/network/ui/adapters/DistrictNetworkVertexElementFactory.java
Final push of district changes
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / adapters / DistrictNetworkVertexElementFactory.java
index 976abd48596ccf177065addfa8ffbc1914e1904e..6fa19c422a2d9439f36a265650f3b3cc051e7409 100644 (file)
@@ -13,6 +13,7 @@ import org.simantics.diagram.synchronization.IModifiableSynchronizationContext;
 import org.simantics.diagram.synchronization.SynchronizationHints;
 import org.simantics.diagram.synchronization.graph.GraphSynchronizationHints;
 import org.simantics.diagram.synchronization.graph.layer.GraphLayerManager;
+import org.simantics.district.network.ModelledCRS;
 import org.simantics.district.network.ontology.DistrictNetworkResource;
 import org.simantics.g2d.canvas.ICanvasContext;
 import org.simantics.g2d.diagram.DiagramHints;
@@ -28,7 +29,7 @@ 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);
@@ -49,10 +50,19 @@ public class DistrictNetworkVertexElementFactory extends SyncElementFactory {
         
         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]);
+        // TODO: set element transform based on layer SRS and coords
+        
+        double x = ModelledCRS.longitudeToX(coords[0]);
+        double y = ModelledCRS.latitudeToY(coords[1]);
+        
+        double scale = 100000;
+        
+        AffineTransform at = new AffineTransform(1, 0, 0, 1, x * scale, y * scale);
         ElementUtils.setTransform(element, at);
         
         IModifiableSynchronizationContext context = diagram.getHint(SynchronizationHints.CONTEXT);