Invoke ecmascript method from java
VEYSSIERE Nicolas <[email protected]>
| Newsgroups | gmane.text.xml.batik.user |
|---|---|
| Message-ID | <26017_1305897413_4DD669C5_26017_6603_1_ECB646CBB62FD044927FDEDF0252D3E701E2B46527F2@THSONEA01CMS03P.one.grp> |
Hello,
I am unable to call a method from java, here is my test :
SVG :
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 70 15" id="svg">
<script type="application/ecmascript">
function lTick()
{
.....
}
</script>
<g>
....
</g>
</svg>
JAVA :
public class JHorlogeSVGCanvas extends JSVGCanvas
{
private RhinoInterpreter ecmaInterpreter;
public JHorlogeSVGCanvas()
{
super();
initCanvas();
}
private void initCanvas()
{
setURI(getClass().getResource("horloge.svg").toString());
setDocumentState(JSVGCanvas.ALWAYS_DYNAMIC);
setBackground(Color.BLACK);
setDoubleBuffered(true);
setDoubleBufferedRendering(true);
setProgressivePaint(true);
setRecenterOnResize(true);
setOpaque(true);
setAnimationLimitingFPS(2);
addGVTTreeBuilderListener(new GVTTreeBuilderAdapter()
{
@Override
public void gvtBuildStarted(GVTTreeBuilderEvent e)
{
}
@Override
public void gvtBuildCompleted(GVTTreeBuilderEvent e)
{
ecmaInterpreter = (RhinoInterpreter)bridgeContext.getInterpreter("application/ecmascript");
try
{
ecmaInterpreter.evaluate("alert(2)"); // OK
ecmaInterpreter.evaluate("lTick ()"); // error
}
catch(InterpreterException e)
{
e.printStackTrace();
}
}
});
}
}
Here is the error :
org.apache.batik.script.InterpreterException: ReferenceError: " lTick " n'est pas défini (<SVG>#1)
I am using jdk 1.6u24 on windows, with Batik 1.7.
Can someone tell my where is my problem ?
Regards.
--