You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-users@xmlgraphics.apache.org by Olivier Beaudoux <ol...@eseo.fr> on 2003/12/11 16:46:35 UTC

Repainting troubble while interacting with Batik/SVG elements

Hi,

I provide my own action/event scheme in order to define how users can
interact with SVG documents (by adding dedicated tags within the SVG
file).

As a consequence, I have some "callbacks" written in Java that handle
interaction. For example, the following callback handle a translation
action on any transformable svg elements :

public class TranslateTransformable extends Consumer
{
  public void doAction(Action action)
  {
    SVGTransformable transformable = 
     (SVGTransformable)  action.getTarget();
    SVGMatrix matrix =  
      transformable.getTransform().getBaseVal().
        consolidate().getMatrix();
    Translate translate = (Translate) action;
    matrix.setE(matrix.getE() + translate.getDx());
    matrix.setF(matrix.getF() + translate.getDy());
  }

 	(...)
}


This callback captures a "translation" action as a DOM event. By
checking for its target (it's a transformable svg element), we apply a
translation through its transform matrix.

This code works fine except for the scenegraph repainting ("old" regions
are not refreshed). I thus use a call to renderGVTTree() that repairs
the troubble but this is very time consuming (I believe renderGVTTree
redraws the overall scene). Is there a solution to solve this (classic?)
repainting problem? I have read that Batik 1.5 does not pass
successfully many of SVG interaction tests. Is it related to this
problem?

Dealing with interaction aspects of Batik 1.5, I have observe that the
SGVSVGElement implementation does not provide any code for "picking"
methods (such as getIntersection/EncloserList). Does the Batik team
plans to do that in the "future"?


Thanks for your help
Olivier


---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org


Re: Repainting troubble while interacting with Batik/SVG elements

Posted by Thomas DeWeese <Th...@Kodak.com>.
Hi Olivier,

    It sounds like you are modifying the DOM outside of the
Update Managers Runnable Queue.  Search the list for
UpdateManager and/or RunnableQueue and you should find out
what you need to do.


Olivier Beaudoux wrote:

> Hi,
> 
> I provide my own action/event scheme in order to define how users can
> interact with SVG documents (by adding dedicated tags within the SVG
> file).
> 
> As a consequence, I have some "callbacks" written in Java that handle
> interaction. For example, the following callback handle a translation
> action on any transformable svg elements :
> 
> public class TranslateTransformable extends Consumer
> {
>   public void doAction(Action action)
>   {
>     SVGTransformable transformable = 
>      (SVGTransformable)  action.getTarget();
>     SVGMatrix matrix =  
>       transformable.getTransform().getBaseVal().
>         consolidate().getMatrix();
>     Translate translate = (Translate) action;
>     matrix.setE(matrix.getE() + translate.getDx());
>     matrix.setF(matrix.getF() + translate.getDy());
>   }
> 
>  	(...)
> }
> 
> 
> This callback captures a "translation" action as a DOM event. By
> checking for its target (it's a transformable svg element), we apply a
> translation through its transform matrix.
> 
> This code works fine except for the scenegraph repainting ("old" regions
> are not refreshed). I thus use a call to renderGVTTree() that repairs
> the troubble but this is very time consuming (I believe renderGVTTree
> redraws the overall scene). Is there a solution to solve this (classic?)
> repainting problem? I have read that Batik 1.5 does not pass
> successfully many of SVG interaction tests. Is it related to this
> problem?
> 
> Dealing with interaction aspects of Batik 1.5, I have observe that the
> SGVSVGElement implementation does not provide any code for "picking"
> methods (such as getIntersection/EncloserList). Does the Batik team
> plans to do that in the "future"?
> 
> 
> Thanks for your help
> Olivier
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
> For additional commands, e-mail: batik-users-help@xml.apache.org
> 




---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org