2 import "Simantics/Diagram"
3 import "Simantics/Rename"
5 importJava "org.simantics.g2d.canvas.ICanvasContext" where
9 disposeCanvasContext :: ICanvasContext -> <Proc> ()
11 importJava "org.simantics.g2d.scenegraph.ICanvasSceneGraphProvider" where
12 data ICanvasSceneGraphProvider
14 getCanvasContext :: ICanvasSceneGraphProvider -> ICanvasContext
16 importJava "org.simantics.modeling.SCLScenegraph" where
17 sceneGraphTest :: ICanvasContext -> String -> String -> <Proc> String
19 getAllNodes :: ICanvasContext -> String
21 getBoundsNodes :: ICanvasContext -> String
23 getBackgroundNodes :: ICanvasContext -> String
25 getDataNodes :: ICanvasContext -> String
27 getNavigationNodes :: ICanvasContext -> String
29 getParentNodes :: ICanvasContext -> String
31 getDecorationNodes :: ICanvasContext -> String
33 getSingleElementNodes :: ICanvasContext -> String
35 getConnectionNodes :: ICanvasContext -> String
37 getTextNodes :: ICanvasContext -> String
39 getItemNodes :: ICanvasContext -> String
42 getText :: ICanvasContext -> String -> String
44 @JavaName getNodeCount
45 getCount :: ICanvasContext -> String
47 @JavaName getNodeTransform
48 getTransform :: ICanvasContext -> String -> String
50 getBackgroundColor :: ICanvasContext -> Maybe [Integer]
53 getICanvasSceneGraphProvider :: Model -> Resource -> String -> <Proc> ICanvasSceneGraphProvider
56 disposeSceneGraphProvider :: ICanvasSceneGraphProvider -> <Proc> ()
58 doWithICanvasSceneGraphProvider :: Resource -> (ICanvasSceneGraphProvider -> <e> a) -> <Proc, Exception> a
60 doWithCanvasContext :: Resource -> (ICanvasContext -> <e> a) -> <Proc, Exception> a
62 editNodeText :: ICanvasContext -> String -> String -> String -> <Proc> String
64 copyPaste :: ICanvasContext -> ICanvasContext -> [Resource] -> <Proc> Boolean
66 renderSVG :: ICanvasContext -> <Proc> String
68 "Render an SVG with known width and height in pixels: `renderScaledSVG context width height`"
70 renderScaledSVG :: ICanvasContext -> Double -> Double -> <Proc> String
73 renderScaledAndAlignedSVG :: ICanvasContext -> Double -> Double -> Integer -> Integer -> <Proc> String
75 importJava "org.eclipse.swt.SWT" where
81 ALIGN_RIGHT :: Integer
84 ALIGN_CENTER :: Integer
90 ALIGN_BOTTOM :: Integer
92 getSceneGraphProvider :: Diagram -> <Proc> ICanvasSceneGraphProvider
93 getSceneGraphProvider diagram = do
94 diagramName = syncRead(\() -> getSafeName diagram)
95 diagramRVI = "/" + diagramName
96 model = syncRead(\() -> fromJust $ possibleIndexRoot diagram)
97 composite = syncRead(\() -> compositeToDiagram' diagram)
98 getICanvasSceneGraphProvider model composite diagramRVI
100 getDiagramContext :: ICanvasSceneGraphProvider -> ICanvasContext
101 getDiagramContext provider = do
102 getCanvasContext provider
104 getNodeTransform :: Diagram -> String -> <Proc> String
105 getNodeTransform diagram nodeName = do
106 diagramName = syncRead(\() -> getSafeName diagram)
107 diagramRVI = "/" + diagramName
108 model = syncRead(\() -> getPossibleModel diagram)
109 composite = syncRead(\() -> compositeToDiagram' diagram)
110 provider = getICanvasSceneGraphProvider model composite diagramRVI
111 context = getCanvasContext provider
112 getTransform context nodeName
114 getNodeText :: Diagram -> String -> <Proc> String
115 getNodeText diagram nodeName = do
116 diagramName = syncRead(\() -> getSafeName diagram)
117 diagramRVI = "/" + diagramName
118 model = syncRead(\() -> getPossibleModel diagram)
119 composite = syncRead(\() -> compositeToDiagram' diagram)
120 provider = getICanvasSceneGraphProvider model composite diagramRVI
121 context = getCanvasContext provider
122 getText context nodeName
124 getNodeCount :: Diagram -> <Proc> String
125 getNodeCount diagram = do
126 diagramName = syncRead(\() -> getSafeName diagram)
127 diagramRVI = "/" + diagramName
128 model = syncRead(\() -> getPossibleModel diagram)
129 composite = syncRead(\() -> compositeToDiagram' diagram)
130 provider = getICanvasSceneGraphProvider model composite diagramRVI
131 context = getCanvasContext provider
134 importJava "org.simantics.scenegraph.g2d.G2DNodeModification" where
135 data G2DNodeModification
137 createG2DNodeModification :: [SVGNodeAssignment] -> [TransformationAssignment] -> G2DNodeModification
139 createG2DNodeModification3 :: [SVGNodeAssignment] -> [TargetedSVGNodeAssignment] -> [TransformationAssignment] -> G2DNodeModification
141 importJava "org.simantics.scenegraph.g2d.nodes.SVGNodeAssignment" where
142 data SVGNodeAssignment
144 createSVGNodeAssignment :: String -> String -> String -> SVGNodeAssignment
146 importJava "org.simantics.scenegraph.g2d.nodes.TargetedSVGNodeAssignment" where
147 data TargetedSVGNodeAssignment
149 createTargetedSVGNodeAssignment :: a -> String -> String -> String -> TargetedSVGNodeAssignment
151 importJava "org.simantics.scenegraph.g2d.nodes.TransformationAssignment" where
152 data TransformationAssignment
154 createTransformationAssignment :: a -> AffineTransform -> TransformationAssignment
156 importJava "java.awt.geom.AffineTransform" where
159 createAffineTransform :: Double -> Double -> Double -> Double -> Double -> Double -> AffineTransform
161 importJava "org.simantics.scenegraph.g2d.AffineTransformFunctions" where
162 transform :: AffineTransform -> (Double,Double) -> (Double,Double)
163 inverseTransform :: AffineTransform -> (Double,Double) -> (Double,Double)