Hi,

I do not know much about JSVGScrollPane. But if JSVGScrollPane is a true
swing component and behave like swing component, you should call
validate/revalidate method of scrollpane to enable scrollbar after you
resize/change the component that displayed by scrollpane.

Regards
Tonny Kohar
---------------------
Kiyut
http://www.kiyut.com
SVG Editor

On Thu, 2004-01-22 at 20:39, Wilkins, Rob wrote:
> Thomas,
> 
> Thanks again - I feel we're nearly there now...
> 
> I added the following code to our JSVGCanvas derived object:
> 
>    public void setMySize(Dimension sz)
>    {
>       setSize(sz);
>       setPreferredSize(sz);
>    }
> 
> I now get the SVG drawn at (I guess) its natural size in a window that is
> bigger than the physical window within the JSVGScrollPane. However I get no
> scroll bars until I do something to pan the SVG or resize the window.
> 
> Is there a nice method I can call that will refresh the JSVGScrollPane given
> the JSVGCanvas is now bigger than the 'viewport' on the JSVGScrollPane such
> that the scroll bars will be displayed?
> 
> Thanks again,
> 
> Rob
> 
> -----Original Message-----
> From: Thomas DeWeese [mailto:[EMAIL PROTECTED] 
> Sent: 22 January 2004 13:16
> To: [EMAIL PROTECTED]
> Subject: Re: Displaying Java objects on top of JSVGCanvas objects
> 
> Wilkins, Rob wrote:
> 
> > Thomas,
> > 
> > I'm now using Batik 1.5.1rc2. I've placed out JSVGCanvas derived object
> into
> > a JSVGScrollPane object. This appears to all work and provides a much
> nicer
> > interface for the user to the panning etc. (as you suggested).
> > 
> > I have one minor problem in that I need really need to control the initial
> > resolution that the SVG is displayed at (so that I can ensure that the
> > overlaid objects always load from the backend server and get displayed in
> > the correct place relative to the SVG).
> 
> > When I was placing the JSVGCanvas object in a JScrollPane I could do this
> > through an implementation of the Scrollable interface. When I move to
> > JSVGScrollPane the methods of this interface in my object are no longer
> > called. As a result the SVG just gets rendered to fill the opening size of
> > the JSVGCanvas window.
> 
>     The JSVGCanvas calls a method 'setMySize(Dimension sz)' when a
> document is loaded to request the desired size.  You should be able to
> override this method to do what ever you want to setup the document.
> 
> > Is there away that I can enforce the size of the JSVGCanvas window before
> > the SVG is loaded (so that it is rendered to a size I control)? If I could
> > do this then I think all my current problems will be resolved.
> 
>     I think the above does this.
> 
> > 
> > Thanks,
> > 
> > Rob
> > 
> > -----Original Message-----
> > From: Thomas DeWeese [mailto:[EMAIL PROTECTED] 
> > Sent: 20 January 2004 14:19
> > To: [EMAIL PROTECTED]
> > Subject: Re: Displaying Java objects on top of JSVGCanvas objects
> > 
> > Hi Rob,
> > 
> > Wilkins, Rob wrote:
> > 
> > 
> >>I spent the last two days re-working our code that overlays objects on the
> >>SVG. Using your suggestion of overriding setRenderingTransform() method.
> >>
> >>The good news is I have got almost all of the shape updates (in response
> > 
> > to
> > 
> >>changes in the SVG rendering transform) working. It also allowed me to
> >>remove many lines of the existing code and utilise the features of the
> >>JSVGCanvas component in the correct manner.
> > 
> > 
> >     Great!
> > 
> > 
> >> I should point out that I have also dispensed with the scrolled panel 
> >>that I was using in favour of the panning support built in to the 
> >>JSVGCanvas component.
> > 
> > 
> >     This is fine if you like the 'built in' panning.  However I
> > strong suspect that the way you are doing things the JSVGScrollPane
> > from the 1.5.1rc2 release will just work (all it does it set and
> > listen to the rendering transform).
> > 
> > 
> >>However I have hit the following problem. If I resize the window that
> > 
> > holds
> > 
> >>the JSVGCanvas component I do not get a call to setRenderingTransform().
> > 
> > So
> > 
> >>I get no chance to scale the overlaid components.
> > 
> > 
> >     This is handled in updateRenderingTransform, this is called when
> > the canvas changes size.  The reason this is 'different' is that when
> > the canvas changes size the normal behavior is to 'refit' the
> > SVG document's viewBox to the Canvas - thus it is not the Canvas's
> > transform that changes but the SVG's 'viewing' transform that
> > changes (this distinction is important to implement the SVG 'getCTM'
> > method correctly).
> > 
> >      If you are working with the 1.5.1rc2 release you
> > can avoid this behavior by calling 'setRecenterOnResize(false)'.
> > In this case the viewing transform will never change once the
> > document is loaded.
> > 
> > 
> >>The strange thing is that the SVG is clearly re-rendered as the
> >>GVTTreeRendererAdapter::gvtRenderingStarted()/gvtRenderingCompleted() are
> >>called. Calls to getRenderingTransform() in these methods return the
> >>identity transform.
> >>
> >>What method should I override in order to get hold of the transform that
> > 
> > is
> > 
> >>applied once the window has been resized thus allowing me to scale my
> >>overlaid components and align them with the scaled SVG in the resized
> >>window?
> > 
> > 
> >     The combined rendering and viewbox transform is available from
> > the JSVGCanvas.getViewBoxTransform().  It is my belief that this can
> > only change in the updateRenderingTransform call so overriding that
> > and using the getViewBoxTransform method should let you deal with
> > this issue.
> > 
> > 
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> > 
> >
> ****************************************************************************
> *******
> > This email, its content and any attachments is PRIVATE AND
> > CONFIDENTIAL to TANDBERG Television. If received in error please
> > notify the sender and destroy the original message and attachments.
> > 
> > www.tandbergtv.com
> >
> ****************************************************************************
> *******
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to