X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.modeling%2Fscl%2FSimantics%2FFlag.scl;fp=bundles%2Forg.simantics.modeling%2Fscl%2FSimantics%2FFlag.scl;h=97189a14f07db4a3fc91b426329396668441bdd9;hb=969bd23cab98a79ca9101af33334000879fb60c5;hp=0000000000000000000000000000000000000000;hpb=866dba5cd5a3929bbeae85991796acb212338a08;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.modeling/scl/Simantics/Flag.scl b/bundles/org.simantics.modeling/scl/Simantics/Flag.scl new file mode 100644 index 000000000..97189a14f --- /dev/null +++ b/bundles/org.simantics.modeling/scl/Simantics/Flag.scl @@ -0,0 +1,59 @@ +include "Simantics/DB" +include "Simantics/Model" +import "Simantics/Diagram" + +type Flag = Resource + +// FLAGS --------------------------- + +toFlag :: Resource -> Flag +toFlag flag = (fromResource flag) + +importJava "org.simantics.modeling.flags.MergeFlags" where + @JavaName mergeFlags + mergeAllFlagsInDiagram :: Resource -> String + + @JavaName expandFlags + expandAllFlagsInDiagram :: Resource -> () + + @JavaName mergeWithoutMetadata + mergeFlags :: [Resource] -> String + +importJava "org.simantics.modeling.flags.ExpandFlags" where + @JavaName expandFlagWithoutMetadata + expandFlag :: Resource -> Vector Resource + + +importJava "org.simantics.diagram.flag.FlagUtil" where + setFlagExternal :: [Flag] -> Boolean -> [Resource] + +"""Joins two flags.""" +joinFlags :: Flag -> Flag -> () +joinFlags flag1 flag2 = do + j = newEntity [ + hasType STR.ConnectionJoin, + hasStatement + DIA.JoinsFlag + (toResource flag1), + hasStatement + DIA.JoinsFlag + (toResource flag2) + ] + () + +flagToElement :: Flag -> Element +flagToElement flag = do + flagResource = toResource flag + fromResource flagResource + +getFlags :: Diagram -> [Resource] +getFlags dia = do + children = collectionToList (objects_ (singleObject (toResource dia) MOD.CompositeToDiagram) L0.ConsistsOf) + flags = filter (\x -> isInstanceOf x DIA.Flag) children + flags + +getFlagByName :: Diagram -> String -> [Resource] +getFlagByName dia name = do + flags = getFlags dia + flags_with_name = filter (\x -> relatedValue2 x L0.HasName == name) flags + flags_with_name