import "Simantics/DB" import "Simantics/Diagram" import "Simantics/Rename" importJava "org.simantics.g2d.canvas.ICanvasContext" where data ICanvasContext importJava "org.simantics.g2d.scenegraph.ICanvasSceneGraphProvider" where data ICanvasSceneGraphProvider getCanvasContext :: ICanvasSceneGraphProvider -> ICanvasContext importJava "org.simantics.modeling.SCLScenegraph" where sceneGraphTest :: ICanvasContext -> String -> String -> String getAllNodes :: ICanvasContext -> String getBoundsNodes :: ICanvasContext -> String getBackgroundNodes :: ICanvasContext -> String getDataNodes :: ICanvasContext -> String getNavigationNodes :: ICanvasContext -> String getParentNodes :: ICanvasContext -> String getDecorationNodes :: ICanvasContext -> String getSingleElementNodes :: ICanvasContext -> String getConnectionNodes :: ICanvasContext -> String getTextNodes :: ICanvasContext -> String getItemNodes :: ICanvasContext -> String @JavaName getNodeText getText :: ICanvasContext -> String -> String @JavaName getNodeCount getCount :: ICanvasContext -> String @JavaName getNodeTransform getTransform :: ICanvasContext -> String -> String getICanvasSceneGraphProvider :: Model -> Resource -> String -> ICanvasSceneGraphProvider disposeSceneGraphProvider :: ICanvasSceneGraphProvider -> () editNodeText :: ICanvasContext -> String -> String -> String -> String copyPaste :: ICanvasContext -> ICanvasContext -> [Resource] -> Boolean renderSVG :: ICanvasContext -> String getSceneGraphProvider :: Diagram -> ICanvasSceneGraphProvider getSceneGraphProvider diagram = do diagramName = syncRead(\() -> getSafeName diagram) diagramRVI = "/" + diagramName model = syncRead(\() -> fromJust $ possibleIndexRoot diagram) composite = syncRead(\() -> compositeToDiagram' diagram) getICanvasSceneGraphProvider model composite diagramRVI getDiagramContext :: ICanvasSceneGraphProvider -> ICanvasContext getDiagramContext provider = do getCanvasContext provider getNodeTransform :: Diagram -> String -> String getNodeTransform diagram nodeName = do diagramName = syncRead(\() -> getSafeName diagram) diagramRVI = "/" + diagramName model = syncRead(\() -> getPossibleModel diagram) composite = syncRead(\() -> compositeToDiagram' diagram) provider = getICanvasSceneGraphProvider model composite diagramRVI context = getCanvasContext provider getTransform context nodeName getNodeText :: Diagram -> String -> String getNodeText diagram nodeName = do diagramName = syncRead(\() -> getSafeName diagram) diagramRVI = "/" + diagramName model = syncRead(\() -> getPossibleModel diagram) composite = syncRead(\() -> compositeToDiagram' diagram) provider = getICanvasSceneGraphProvider model composite diagramRVI context = getCanvasContext provider getText context nodeName getNodeCount :: Diagram -> String getNodeCount diagram = do diagramName = syncRead(\() -> getSafeName diagram) diagramRVI = "/" + diagramName model = syncRead(\() -> getPossibleModel diagram) composite = syncRead(\() -> compositeToDiagram' diagram) provider = getICanvasSceneGraphProvider model composite diagramRVI context = getCanvasContext provider getCount context importJava "org.simantics.scenegraph.g2d.G2DNodeModification" where data G2DNodeModification @JavaName "" createG2DNodeModification :: [SVGNodeAssignment] -> [TransformationAssignment] -> G2DNodeModification @JavaName "" createG2DNodeModification3 :: [SVGNodeAssignment] -> [TargetedSVGNodeAssignment] -> [TransformationAssignment] -> G2DNodeModification importJava "org.simantics.scenegraph.g2d.nodes.SVGNodeAssignment" where data SVGNodeAssignment @JavaName "" createSVGNodeAssignment :: String -> String -> String -> SVGNodeAssignment importJava "org.simantics.scenegraph.g2d.nodes.TargetedSVGNodeAssignment" where data TargetedSVGNodeAssignment @JavaName "" createTargetedSVGNodeAssignment :: a -> String -> String -> String -> TargetedSVGNodeAssignment importJava "org.simantics.scenegraph.g2d.nodes.TransformationAssignment" where data TransformationAssignment @JavaName "" createTransformationAssignment :: a -> AffineTransform -> TransformationAssignment importJava "java.awt.geom.AffineTransform" where data AffineTransform @JavaName "" createAffineTransform :: Double -> Double -> Double -> Double -> Double -> Double -> AffineTransform importJava "org.simantics.scenegraph.g2d.AffineTransformFunctions" where transform :: AffineTransform -> (Double,Double) -> (Double,Double) inverseTransform :: AffineTransform -> (Double,Double) -> (Double,Double)