--- /dev/null
+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