]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling/scl/Simantics/Flag.scl
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.modeling / scl / Simantics / Flag.scl
diff --git a/bundles/org.simantics.modeling/scl/Simantics/Flag.scl b/bundles/org.simantics.modeling/scl/Simantics/Flag.scl
new file mode 100644 (file)
index 0000000..97189a1
--- /dev/null
@@ -0,0 +1,59 @@
+include "Simantics/DB"\r
+include "Simantics/Model"\r
+import "Simantics/Diagram"\r
+\r
+type Flag = Resource\r
+\r
+// FLAGS ---------------------------\r
+\r
+toFlag :: Resource -> Flag\r
+toFlag flag = (fromResource flag)\r
+\r
+importJava "org.simantics.modeling.flags.MergeFlags" where\r
+    @JavaName mergeFlags\r
+    mergeAllFlagsInDiagram :: Resource -> <WriteGraph> String\r
+    \r
+    @JavaName expandFlags\r
+    expandAllFlagsInDiagram :: Resource -> <WriteGraph> ()\r
+    \r
+    @JavaName mergeWithoutMetadata\r
+    mergeFlags :: [Resource] -> <WriteGraph> String\r
+\r
+importJava "org.simantics.modeling.flags.ExpandFlags" where\r
+    @JavaName expandFlagWithoutMetadata\r
+    expandFlag :: Resource -> <WriteGraph> Vector Resource\r
+    \r
+\r
+importJava "org.simantics.diagram.flag.FlagUtil" where    \r
+    setFlagExternal :: [Flag] -> Boolean -> <WriteGraph> [Resource]\r
+\r
+"""Joins two flags."""\r
+joinFlags :: Flag -> Flag -> <WriteGraph> ()\r
+joinFlags flag1 flag2 = do\r
+    j = newEntity [\r
+        hasType STR.ConnectionJoin,\r
+        hasStatement \r
+            DIA.JoinsFlag\r
+            (toResource flag1),\r
+        hasStatement\r
+            DIA.JoinsFlag\r
+            (toResource flag2)\r
+    ]\r
+    ()\r
+\r
+flagToElement :: Flag -> Element\r
+flagToElement flag = do\r
+    flagResource = toResource flag\r
+    fromResource flagResource\r
+\r
+getFlags :: Diagram -> <ReadGraph> [Resource]\r
+getFlags dia = do\r
+    children = collectionToList (objects_ (singleObject (toResource dia) MOD.CompositeToDiagram) L0.ConsistsOf)\r
+    flags = filter (\x -> isInstanceOf x DIA.Flag) children\r
+    flags\r
+   \r
+getFlagByName :: Diagram -> String -> <ReadGraph> [Resource]\r
+getFlagByName dia name = do\r
+    flags = getFlags dia\r
+    flags_with_name = filter (\x -> relatedValue2 x L0.HasName == name) flags\r
+    flags_with_name\r