]> gerrit.simantics Code Review - simantics/platform.git/blob - 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
1 include "Simantics/DB"\r
2 include "Simantics/Model"\r
3 import "Simantics/Diagram"\r
4 \r
5 type Flag = Resource\r
6 \r
7 // FLAGS ---------------------------\r
8 \r
9 toFlag :: Resource -> Flag\r
10 toFlag flag = (fromResource flag)\r
11 \r
12 importJava "org.simantics.modeling.flags.MergeFlags" where\r
13     @JavaName mergeFlags\r
14     mergeAllFlagsInDiagram :: Resource -> <WriteGraph> String\r
15     \r
16     @JavaName expandFlags\r
17     expandAllFlagsInDiagram :: Resource -> <WriteGraph> ()\r
18     \r
19     @JavaName mergeWithoutMetadata\r
20     mergeFlags :: [Resource] -> <WriteGraph> String\r
21 \r
22 importJava "org.simantics.modeling.flags.ExpandFlags" where\r
23     @JavaName expandFlagWithoutMetadata\r
24     expandFlag :: Resource -> <WriteGraph> Vector Resource\r
25     \r
26 \r
27 importJava "org.simantics.diagram.flag.FlagUtil" where    \r
28     setFlagExternal :: [Flag] -> Boolean -> <WriteGraph> [Resource]\r
29 \r
30 """Joins two flags."""\r
31 joinFlags :: Flag -> Flag -> <WriteGraph> ()\r
32 joinFlags flag1 flag2 = do\r
33     j = newEntity [\r
34         hasType STR.ConnectionJoin,\r
35         hasStatement \r
36             DIA.JoinsFlag\r
37             (toResource flag1),\r
38         hasStatement\r
39             DIA.JoinsFlag\r
40             (toResource flag2)\r
41     ]\r
42     ()\r
43 \r
44 flagToElement :: Flag -> Element\r
45 flagToElement flag = do\r
46     flagResource = toResource flag\r
47     fromResource flagResource\r
48 \r
49 getFlags :: Diagram -> <ReadGraph> [Resource]\r
50 getFlags dia = do\r
51     children = collectionToList (objects_ (singleObject (toResource dia) MOD.CompositeToDiagram) L0.ConsistsOf)\r
52     flags = filter (\x -> isInstanceOf x DIA.Flag) children\r
53     flags\r
54    \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
59     flags_with_name\r