2 import "Simantics/Diagram"
3 import "Simantics/Rename"
5 importJava "org.simantics.g2d.canvas.ICanvasContext" where
8 importJava "org.simantics.g2d.scenegraph.ICanvasSceneGraphProvider" where
9 data ICanvasSceneGraphProvider
11 getCanvasContext :: ICanvasSceneGraphProvider -> ICanvasContext
13 importJava "org.simantics.modeling.SCLScenegraph" where
14 sceneGraphTest :: ICanvasContext -> String -> String -> <Proc> String
16 getAllNodes :: ICanvasContext -> String
18 getBoundsNodes :: ICanvasContext -> String
20 getBackgroundNodes :: ICanvasContext -> String
22 getDataNodes :: ICanvasContext -> String
24 getNavigationNodes :: ICanvasContext -> String
26 getParentNodes :: ICanvasContext -> String
28 getDecorationNodes :: ICanvasContext -> String
30 getSingleElementNodes :: ICanvasContext -> String
32 getConnectionNodes :: ICanvasContext -> String
34 getTextNodes :: ICanvasContext -> String
36 getItemNodes :: ICanvasContext -> String
39 getText :: ICanvasContext -> String -> String
41 @JavaName getNodeCount
42 getCount :: ICanvasContext -> String
44 @JavaName getNodeTransform
45 getTransform :: ICanvasContext -> String -> String
48 getICanvasSceneGraphProvider :: Model -> Resource -> String -> <Proc> ICanvasSceneGraphProvider
51 disposeSceneGraphProvider :: ICanvasSceneGraphProvider -> <Proc> ()
53 doWithICanvasSceneGraphProvider :: Resource -> (ICanvasSceneGraphProvider -> <e> a) -> <Proc, Exception> a
55 doWithCanvasContext :: Resource -> (ICanvasContext -> <e> a) -> <Proc, Exception> a
57 editNodeText :: ICanvasContext -> String -> String -> String -> <Proc> String
59 copyPaste :: ICanvasContext -> ICanvasContext -> [Resource] -> <Proc> Boolean
61 renderSVG :: ICanvasContext -> <Proc> String
63 getSceneGraphProvider :: Diagram -> <Proc> ICanvasSceneGraphProvider
64 getSceneGraphProvider diagram = do
65 diagramName = syncRead(\() -> getSafeName diagram)
66 diagramRVI = "/" + diagramName
67 model = syncRead(\() -> fromJust $ possibleIndexRoot diagram)
68 composite = syncRead(\() -> compositeToDiagram' diagram)
69 getICanvasSceneGraphProvider model composite diagramRVI
71 getDiagramContext :: ICanvasSceneGraphProvider -> ICanvasContext
72 getDiagramContext provider = do
73 getCanvasContext provider
75 getNodeTransform :: Diagram -> String -> <Proc> String
76 getNodeTransform diagram nodeName = do
77 diagramName = syncRead(\() -> getSafeName diagram)
78 diagramRVI = "/" + diagramName
79 model = syncRead(\() -> getPossibleModel diagram)
80 composite = syncRead(\() -> compositeToDiagram' diagram)
81 provider = getICanvasSceneGraphProvider model composite diagramRVI
82 context = getCanvasContext provider
83 getTransform context nodeName
85 getNodeText :: Diagram -> String -> <Proc> String
86 getNodeText diagram nodeName = do
87 diagramName = syncRead(\() -> getSafeName diagram)
88 diagramRVI = "/" + diagramName
89 model = syncRead(\() -> getPossibleModel diagram)
90 composite = syncRead(\() -> compositeToDiagram' diagram)
91 provider = getICanvasSceneGraphProvider model composite diagramRVI
92 context = getCanvasContext provider
93 getText context nodeName
95 getNodeCount :: Diagram -> <Proc> String
96 getNodeCount diagram = do
97 diagramName = syncRead(\() -> getSafeName diagram)
98 diagramRVI = "/" + diagramName
99 model = syncRead(\() -> getPossibleModel diagram)
100 composite = syncRead(\() -> compositeToDiagram' diagram)
101 provider = getICanvasSceneGraphProvider model composite diagramRVI
102 context = getCanvasContext provider
105 importJava "org.simantics.scenegraph.g2d.G2DNodeModification" where
106 data G2DNodeModification
108 createG2DNodeModification :: [SVGNodeAssignment] -> [TransformationAssignment] -> G2DNodeModification
110 createG2DNodeModification3 :: [SVGNodeAssignment] -> [TargetedSVGNodeAssignment] -> [TransformationAssignment] -> G2DNodeModification
112 importJava "org.simantics.scenegraph.g2d.nodes.SVGNodeAssignment" where
113 data SVGNodeAssignment
115 createSVGNodeAssignment :: String -> String -> String -> SVGNodeAssignment
117 importJava "org.simantics.scenegraph.g2d.nodes.TargetedSVGNodeAssignment" where
118 data TargetedSVGNodeAssignment
120 createTargetedSVGNodeAssignment :: a -> String -> String -> String -> TargetedSVGNodeAssignment
122 importJava "org.simantics.scenegraph.g2d.nodes.TransformationAssignment" where
123 data TransformationAssignment
125 createTransformationAssignment :: a -> AffineTransform -> TransformationAssignment
127 importJava "java.awt.geom.AffineTransform" where
130 createAffineTransform :: Double -> Double -> Double -> Double -> Double -> Double -> AffineTransform
132 importJava "org.simantics.scenegraph.g2d.AffineTransformFunctions" where
133 transform :: AffineTransform -> (Double,Double) -> (Double,Double)
134 inverseTransform :: AffineTransform -> (Double,Double) -> (Double,Double)