]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - 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
diff --git a/bundles/org.simantics.graphviz/scl/Visualization/Graphviz/Graph.scl b/bundles/org.simantics.graphviz/scl/Visualization/Graphviz/Graph.scl
new file mode 100644 (file)
index 0000000..0e7ba85
--- /dev/null
@@ -0,0 +1,26 @@
+import "Visualization/Graphviz/AbstractTypes"\r
+import "Visualization/Graphviz/Property"\r
+import "JavaBuiltin" as Java\r
+\r
+importJava "org.simantics.graphviz.Graph" where\r
+    data Graph\r
+    @JavaName "<init>"\r
+    newPrimitiveGraph :: <Proc> Graph\r
+    setLabel :: Graph -> String -> <Proc> ()\r
+    setRankdir :: Graph -> String -> <Proc> ()\r
+    @JavaName set\r
+    setGenericProperty :: Graph -> String -> String -> <Proc> ()\r
+\r
+instance IGraph Graph where\r
+    iGraph = Java.unsafeCoerce\r
+\r
+applyGraphProperty :: Graph -> Property -> <Proc> ()\r
+applyGraphProperty graph (Label str) = setLabel graph str\r
+applyGraphProperty graph (Rankdir str) = setRankdir graph str\r
+applyGraphProperty graph (GenericProperty property str) = setGenericProperty graph property str\r
+    \r
+newGraph :: [Property] -> <Proc> Graph\r
+newGraph properties = graph\r
+  where\r
+    graph = newPrimitiveGraph\r
+    for properties (applyGraphProperty graph)\r