« Return to Thread: Pan and zoom navigation history

Re: Pan and zoom navigation history

by Luc_B :: Rate this Message:

Reply to Author | View in Thread

Thank you Thomas for your quick answer.

I got it working except for one thing which is major for me. Let me explain. All transformations such as zoom and pan are working fine with the history now.

My only problem is views. Whenever I set a new view via
canvas.setFragmentIdentifier("MyView");

It will be stored into the history but when I hit back it brings me back but not at the same zoom level I was prior to calling setFragmentIdentifier.

If I can nail this one I will be a happy camper :)

I suspect I need in this case to store the ViewBoxTransform in history instead of the RederingTransform

But if so how can I distinguish between a regular interaction(zoom, pan)  and a setFragmentIdentifier call?

Thanks again,
Luc
thomas.deweese wrote:
Hi Luc,

Luc_B <lucbard@gmail.com> wrote on 06/29/2009 04:03:39 PM:

> So I did my test by choosing the "Transform..." menu item. I did a bunch
of
> transforms and the next and previous menu item would never become
enabled...
>
> This did not work until I clicked on the Stop button that I noticed was
> enabled. Then all my transformations would trigger the
gvtRenderingCompleted
> event and therefor update the transformHistory object...

   Ok, I see the problem.  It used to be that all rendering transform
changes caused a gvtRenderingComplete, that is no longer the case for
'interactive' documents - i.e. ones with script and/or animation.  So
the right thing to do now is to register a JGVTComponentListener with
the canvas to catch componentTransformChanged events instead.

> thomas.deweese wrote:
> >
> > Hi Luc,
> >
> >> Luc_B wrote:
> >> >
> >> > I am trying to implement a back / forward history in the svg
whenever
> > a
> >> > user has panned or zoomed.
> >> >
> >> > I have tried to reuse the TransformHistory class from the
SVGBrowser
> > but
> >> > they seem to only store the RenderingTransform at load. I need more

> > than
> >> > that.
> >
> >    In my tests it records all my pan and zoom actions.  Are you
including
> > the code from the JSVGViewerFrame that notifies the history class of
> > transform changes?
> >
> >> > I want to know what AffineTransform should I store so when the user

> > hits
> >> > back in order to show him where he was before.
> >
> >     'canvas.getRenderingTransform()'.
> >
> >> > I am also wondering how to restore the svg view to that specific
> > point...
> >
> >     'canvas.setRenderingTransform( affine );'
> >
> >     This is all in the JSVGViewerFrame class already.  Just look for
all
> > the lines with 'transformHistory'.
> >
> >
>
> --
> View this message in context: http://www.nabble.com/Pan-and-zoom-
> navigation-history-tp24074338p24260583.html
> Sent from the Batik - Users mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: batik-users-unsubscribe@xmlgraphics.apache.org
> For additional commands, e-mail: batik-users-help@xmlgraphics.apache.org
>

 « Return to Thread: Pan and zoom navigation history