5bf540e3563fdfd9649086af82a55e79393e59d2
[simantics/platform.git] / bundles / org.simantics.modeling / scl / Simantics / Scenegraph.scl
1 import "Simantics/DB"
2 import "Simantics/Diagram"
3 import "Simantics/Rename"
4
5 importJava "org.simantics.g2d.canvas.ICanvasContext" where
6     data ICanvasContext
7     
8 importJava "org.simantics.g2d.scenegraph.ICanvasSceneGraphProvider" where
9     data ICanvasSceneGraphProvider
10     
11     getCanvasContext :: ICanvasSceneGraphProvider -> ICanvasContext 
12
13 importJava "org.simantics.modeling.SCLScenegraph" where
14     sceneGraphTest :: ICanvasContext -> String -> String -> <Proc> String
15
16     getAllNodes :: ICanvasContext -> String
17     
18     getBoundsNodes :: ICanvasContext -> String
19     
20     getBackgroundNodes :: ICanvasContext -> String
21     
22     getDataNodes :: ICanvasContext -> String
23     
24     getNavigationNodes :: ICanvasContext -> String
25     
26     getParentNodes :: ICanvasContext -> String
27     
28     getDecorationNodes :: ICanvasContext -> String
29
30     getSingleElementNodes :: ICanvasContext -> String
31     
32     getConnectionNodes :: ICanvasContext -> String
33     
34     getTextNodes :: ICanvasContext -> String
35     
36     getItemNodes :: ICanvasContext -> String
37     
38     @JavaName getNodeText
39     getText :: ICanvasContext -> String -> String 
40     
41     @JavaName getNodeCount
42     getCount :: ICanvasContext -> String
43     
44     @JavaName getNodeTransform
45     getTransform :: ICanvasContext -> String -> String
46     
47     @Deprecated
48     getICanvasSceneGraphProvider :: Model -> Resource -> String -> <Proc> ICanvasSceneGraphProvider
49     
50     @Deprecated
51     disposeSceneGraphProvider :: ICanvasSceneGraphProvider -> <Proc> ()
52     
53     doWithICanvasSceneGraphProvider :: Resource -> (ICanvasSceneGraphProvider -> <e> a) -> <Proc, Exception> a
54     
55     doWithCanvasContext :: Resource -> (ICanvasContext -> <e> a) -> <Proc, Exception> a
56     
57     editNodeText :: ICanvasContext -> String -> String -> String -> <Proc> String
58     
59     copyPaste :: ICanvasContext -> ICanvasContext -> [Resource] -> <Proc> Boolean
60     
61     renderSVG :: ICanvasContext -> <Proc> String
62
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
70
71 getDiagramContext :: ICanvasSceneGraphProvider -> ICanvasContext
72 getDiagramContext provider = do
73     getCanvasContext provider
74     
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
84     
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
94
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 
103     getCount context
104
105 importJava "org.simantics.scenegraph.g2d.G2DNodeModification" where
106     data G2DNodeModification
107     @JavaName "<init>"
108     createG2DNodeModification :: [SVGNodeAssignment] -> [TransformationAssignment] -> G2DNodeModification 
109     @JavaName "<init>"
110     createG2DNodeModification3 :: [SVGNodeAssignment] -> [TargetedSVGNodeAssignment] -> [TransformationAssignment] -> G2DNodeModification 
111     
112 importJava "org.simantics.scenegraph.g2d.nodes.SVGNodeAssignment" where
113     data SVGNodeAssignment
114     @JavaName "<init>"
115     createSVGNodeAssignment :: String -> String -> String -> SVGNodeAssignment 
116     
117 importJava "org.simantics.scenegraph.g2d.nodes.TargetedSVGNodeAssignment" where
118     data TargetedSVGNodeAssignment
119     @JavaName "<init>"
120     createTargetedSVGNodeAssignment :: a -> String -> String -> String -> TargetedSVGNodeAssignment 
121
122 importJava "org.simantics.scenegraph.g2d.nodes.TransformationAssignment" where
123     data TransformationAssignment
124     @JavaName "<init>"
125     createTransformationAssignment :: a -> AffineTransform -> TransformationAssignment
126     
127 importJava "java.awt.geom.AffineTransform" where
128     data AffineTransform
129     @JavaName "<init>"
130     createAffineTransform :: Double -> Double -> Double -> Double -> Double -> Double -> AffineTransform
131
132 importJava "org.simantics.scenegraph.g2d.AffineTransformFunctions" where
133     transform :: AffineTransform -> (Double,Double) -> (Double,Double)
134     inverseTransform :: AffineTransform -> (Double,Double) -> (Double,Double)
135