]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.graphviz/scl/Visualization/Graphviz/Graph.scl
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.graphviz / scl / Visualization / Graphviz / Graph.scl
1 import "Visualization/Graphviz/AbstractTypes"\r
2 import "Visualization/Graphviz/Property"\r
3 import "JavaBuiltin" as Java\r
4 \r
5 importJava "org.simantics.graphviz.Graph" where\r
6     data Graph\r
7     @JavaName "<init>"\r
8     newPrimitiveGraph :: <Proc> Graph\r
9     setLabel :: Graph -> String -> <Proc> ()\r
10     setRankdir :: Graph -> String -> <Proc> ()\r
11     @JavaName set\r
12     setGenericProperty :: Graph -> String -> String -> <Proc> ()\r
13 \r
14 instance IGraph Graph where\r
15     iGraph = Java.unsafeCoerce\r
16 \r
17 applyGraphProperty :: Graph -> Property -> <Proc> ()\r
18 applyGraphProperty graph (Label str) = setLabel graph str\r
19 applyGraphProperty graph (Rankdir str) = setRankdir graph str\r
20 applyGraphProperty graph (GenericProperty property str) = setGenericProperty graph property str\r
21     \r
22 newGraph :: [Property] -> <Proc> Graph\r
23 newGraph properties = graph\r
24   where\r
25     graph = newPrimitiveGraph\r
26     for properties (applyGraphProperty graph)\r