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]