]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling/scl/Simantics/DiagramMapping.scl
Fixed Simantics/Diagram/setElements to resolve attachment relations
[simantics/platform.git] / bundles / org.simantics.modeling / scl / Simantics / DiagramMapping.scl
index c11fc532d9697f85a20dec90fa287361513a2442..0c184489565cabbc0eeb4a587d1653d5eb6141b4 100644 (file)
@@ -1,5 +1,4 @@
 import "Simantics/DB"
-import "Extras/HashMap" as Map
 import "Simantics/Entity"
 import "Simantics/Model"
 import "Simantics/Diagram"
@@ -7,19 +6,19 @@ import "Simantics/Diagram"
 import "http://www.simantics.org/Modeling-1.2" as MOD
 import "http://www.simantics.org/ModelingTemplate2d-1.0" as TMPL
 
-applyConnectionTypes :: Map.T (DiagramElement Resource) (Resource,Resource) -> <Proc,WriteGraph,ReadGraph> ()
+applyConnectionTypes :: MMap.T (DiagramElement Resource) (Resource,Resource) -> <Proc,WriteGraph,ReadGraph> ()
 applyConnectionTypes elementMap = 
     let
         isConnection ((Connection _ _ _),_) = True
         isConnection _ = False
-    in iter (\(a,(source,target)) -> applyConnectionType target) (filter isConnection (Map.entries elementMap))
+    in iter (\(a,(source,target)) -> applyConnectionType target) (filter isConnection (MMap.entries elementMap))
    
 
 // ----
 
-doElementPostProcessing (elementMap :: Map.T (DiagramElement Resource) (Resource,Resource))
+doElementPostProcessing (elementMap :: MMap.T (DiagramElement Resource) (Resource,Resource))
                         (elementPostProcessing :: DiagramElement Resource -> Resource -> Resource -> <Proc,ReadGraph,WriteGraph> ()) = do
-    list = sortByCluster (Map.entries elementMap) (\(a,(source,target)) -> target)
+    list = sortByCluster (MMap.entries elementMap) (\(a,(source,target)) -> target)
     iter (\(a,(source,target)) -> elementPostProcessing a source target) list
 
 translateDiagrams (sourceModel :: Model)
@@ -31,7 +30,7 @@ translateDiagrams (sourceModel :: Model)
                  (elementPostProcessing :: DiagramElement Resource -> Resource -> Resource -> <Proc,ReadGraph,WriteGraph> ()) 
                  (sourceDiagrams :: [Diagram]) = do
                  
-  elementMap = Map.create() :: Map.T (DiagramElement Resource) (Resource,Resource)
+  elementMap = MMap.create () :: MMap.T (DiagramElement Resource) (Resource,Resource)
 
   // Join map contains all joins of the model
   joinMap = createJoinMap ()
@@ -50,7 +49,7 @@ translateDiagrams (sourceModel :: Model)
                       $ sourceDiagram
   
   for targetDiagrams $ \diagram ->
-    syncActivateOnce $ toResource diagram
+    syncActivateOnce diagram
     
   doElementPostProcessing elementMap elementPostProcessing
 
@@ -60,7 +59,7 @@ translateDiagram (sourceModel :: Model)
                  (compositeType :: Resource)
                  (f :: Diagram -> <ReadGraph> [(DiagramElement Resource,Resource)])
                  (joinMap :: Dynamic -> <WriteGraph> Resource)
-                 (elementMap :: Map.T (DiagramElement Resource) (Resource,Resource))
+                 (elementMap :: MMap.T (DiagramElement Resource) (Resource,Resource))
                  (diagramPostProcessing :: Diagram -> Diagram -> <Proc,ReadGraph,WriteGraph> ()) 
                  (sourceDiagram :: Diagram) = do
   disableDependencies 
@@ -74,7 +73,7 @@ translateDiagram (sourceModel :: Model)
 possibleDrawingTemplate :: Model -> Diagram -> <ReadGraph> Maybe Resource
 possibleDrawingTemplate model d = do
     d' = diagramResourceOf d
-    library = fromJust $ possibleResourceChild (toResource model) "Diagram Templates"
+    library = fromJust $ possibleResourceChild model "Diagram Templates"
     match (possibleObject d' TMPL.HasDrawingTemplate) with
         Just dt -> match (possibleNameOf dt) with
             Just name -> possibleResourceChild library name
@@ -96,13 +95,13 @@ makeSpec targetModel sourceDiagram folderType compositeType =
 getTargetDiagram (targetModel :: Model) (sourceDiagram :: Diagram) =
     (possibleDiagram targetModel $ pathOf sourceDiagram) :: Maybe Diagram
 
-store :: Map.T (DiagramElement Resource) (Resource,Resource) -> (DiagramElement Resource) -> Resource -> Resource -> <Proc,WriteGraph,ReadGraph> ()
+store :: MMap.T (DiagramElement Resource) (Resource,Resource) -> (DiagramElement Resource) -> Resource -> Resource -> <Proc,WriteGraph,ReadGraph> ()
 store elementMap a b c = do
-  Map.put elementMap a (b,c)
+  MMap.put elementMap a (b,c)
   ()
 
 getTargetComponent (targetDiagram :: Diagram) (sourceComponent :: Resource) =
-    (possibleResourceChild (toResource targetDiagram) (fromJust $ possibleNameOf sourceComponent)) :: Maybe Resource
+    (possibleResourceChild targetDiagram (fromJust $ possibleNameOf sourceComponent)) :: Maybe Resource
 
 translateDiagram2 (targetModel :: Model)  
                   (sourceDiagram :: Diagram) 
@@ -110,7 +109,7 @@ translateDiagram2 (targetModel :: Model)
                   (compositeType :: Resource)
                   (f :: Diagram -> <ReadGraph> [(DiagramElement Resource,Resource)]) 
                   (joinMap :: Dynamic -> <WriteGraph> Resource)
-                  (elementMap ::  Map.T (DiagramElement Resource) (Resource,Resource)) = do
+                  (elementMap ::  MMap.T (DiagramElement Resource) (Resource,Resource)) = do
   spec = makeSpec targetModel sourceDiagram folderType compositeType
   elementSpecs = f sourceDiagram
   in1 = (filter (not . isReferring) elementSpecs + filter isReferring elementSpecs)