X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.modeling%2Fscl%2FSimantics%2FScenegraph.scl;h=3c9c5579969cb61b1015f0d461cc5e9c50431d1a;hp=27ffc5dfc793770bd7beb57993c65ba063dfe112;hb=411b91db954684861999a5f66280a767055e8258;hpb=969bd23cab98a79ca9101af33334000879fb60c5 diff --git a/bundles/org.simantics.modeling/scl/Simantics/Scenegraph.scl b/bundles/org.simantics.modeling/scl/Simantics/Scenegraph.scl index 27ffc5dfc..3c9c55799 100644 --- a/bundles/org.simantics.modeling/scl/Simantics/Scenegraph.scl +++ b/bundles/org.simantics.modeling/scl/Simantics/Scenegraph.scl @@ -1,95 +1,129 @@ -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 - -getSceneGraphProvider :: Diagram -> ICanvasSceneGraphProvider -getSceneGraphProvider diagram = do - diagramName = syncRead(\() -> getSafeName (toResource diagram)) - diagramRVI = "/" + diagramName - model = syncRead(\() -> getPossibleModel (toResource diagram)) - composite = syncRead(\() -> compositeToDiagram' (toResource diagram)) - getICanvasSceneGraphProvider model composite diagramRVI - -getDiagramContext :: ICanvasSceneGraphProvider -> ICanvasContext -getDiagramContext provider = do - getCanvasContext provider - -getNodeTransform :: Diagram -> String -> String -getNodeTransform diagram nodeName = do - diagramName = syncRead(\() -> getSafeName (toResource diagram)) - diagramRVI = "/" + diagramName - model = syncRead(\() -> getPossibleModel (toResource diagram)) - composite = syncRead(\() -> compositeToDiagram' (toResource diagram)) - provider = getICanvasSceneGraphProvider model composite diagramRVI - context = getCanvasContext provider - getTransform context nodeName - -getNodeText :: Diagram -> String -> String -getNodeText diagram nodeName = do - diagramName = syncRead(\() -> getSafeName (toResource diagram)) - diagramRVI = "/" + diagramName - model = syncRead(\() -> getPossibleModel (toResource diagram)) - composite = syncRead(\() -> compositeToDiagram' (toResource diagram)) - provider = getICanvasSceneGraphProvider model composite diagramRVI - context = getCanvasContext provider - getText context nodeName - -getNodeCount :: Diagram -> String -getNodeCount diagram = do - diagramName = syncRead(\() -> getSafeName (toResource diagram)) - diagramRVI = "/" + diagramName - model = syncRead(\() -> getPossibleModel (toResource diagram)) - composite = syncRead(\() -> compositeToDiagram' (toResource diagram)) - provider = getICanvasSceneGraphProvider model composite diagramRVI - context = getCanvasContext provider - getCount context +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) + \ No newline at end of file