X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.modeling%2Fscl%2FSimantics%2FDiagramMapping.scl;h=0c184489565cabbc0eeb4a587d1653d5eb6141b4;hb=64e7d67f61e5cd5916760727eecab48c314d657c;hp=c11fc532d9697f85a20dec90fa287361513a2442;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.modeling/scl/Simantics/DiagramMapping.scl b/bundles/org.simantics.modeling/scl/Simantics/DiagramMapping.scl index c11fc532d..0c1844895 100644 --- a/bundles/org.simantics.modeling/scl/Simantics/DiagramMapping.scl +++ b/bundles/org.simantics.modeling/scl/Simantics/DiagramMapping.scl @@ -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) -> () +applyConnectionTypes :: MMap.T (DiagramElement Resource) (Resource,Resource) -> () 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 -> ()) = 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 -> ()) (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 -> [(DiagramElement Resource,Resource)]) (joinMap :: Dynamic -> Resource) - (elementMap :: Map.T (DiagramElement Resource) (Resource,Resource)) + (elementMap :: MMap.T (DiagramElement Resource) (Resource,Resource)) (diagramPostProcessing :: Diagram -> Diagram -> ()) (sourceDiagram :: Diagram) = do disableDependencies @@ -74,7 +73,7 @@ translateDiagram (sourceModel :: Model) possibleDrawingTemplate :: Model -> Diagram -> 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 -> () +store :: MMap.T (DiagramElement Resource) (Resource,Resource) -> (DiagramElement Resource) -> Resource -> Resource -> () 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 -> [(DiagramElement Resource,Resource)]) (joinMap :: Dynamic -> 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)