1 include "Simantics/DB"
\r
2 include "Simantics/Model"
\r
3 import "Simantics/Diagram"
\r
7 // FLAGS ---------------------------
\r
9 toFlag :: Resource -> Flag
\r
10 toFlag flag = (fromResource flag)
\r
12 importJava "org.simantics.modeling.flags.MergeFlags" where
\r
13 @JavaName mergeFlags
\r
14 mergeAllFlagsInDiagram :: Resource -> <WriteGraph> String
\r
16 @JavaName expandFlags
\r
17 expandAllFlagsInDiagram :: Resource -> <WriteGraph> ()
\r
19 @JavaName mergeWithoutMetadata
\r
20 mergeFlags :: [Resource] -> <WriteGraph> String
\r
22 importJava "org.simantics.modeling.flags.ExpandFlags" where
\r
23 @JavaName expandFlagWithoutMetadata
\r
24 expandFlag :: Resource -> <WriteGraph> Vector Resource
\r
27 importJava "org.simantics.diagram.flag.FlagUtil" where
\r
28 setFlagExternal :: [Flag] -> Boolean -> <WriteGraph> [Resource]
\r
30 """Joins two flags."""
\r
31 joinFlags :: Flag -> Flag -> <WriteGraph> ()
\r
32 joinFlags flag1 flag2 = do
\r
34 hasType STR.ConnectionJoin,
\r
44 flagToElement :: Flag -> Element
\r
45 flagToElement flag = do
\r
46 flagResource = toResource flag
\r
47 fromResource flagResource
\r
49 getFlags :: Diagram -> <ReadGraph> [Resource]
\r
51 children = collectionToList (objects_ (singleObject (toResource dia) MOD.CompositeToDiagram) L0.ConsistsOf)
\r
52 flags = filter (\x -> isInstanceOf x DIA.Flag) children
\r
55 getFlagByName :: Diagram -> String -> <ReadGraph> [Resource]
\r
56 getFlagByName dia name = do
\r
57 flags = getFlags dia
\r
58 flags_with_name = filter (\x -> relatedValue2 x L0.HasName == name) flags
\r