xmlgraphics-batik-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Wagener <peter.wage...@hypoluxo.com>
Subject Combining SVG documents?
Date Thu, 02 Mar 2006 14:17:31 GMT
Hi All,

I'm working on an application where one of the new features allows  
the user to see the physical representation of the chunk of hardware  
they have sitting in their datacenter rack.  We have several  
different SVG files we are using to represent the various pieces of  
the hardware (one for the chassis, one for a "blade" that goes into  
the chassis in various slots, etc etc).

This is my initial foray into the world of SVG and Batik, but my  
initial approach to building up the combined image was:

1.  Load the initial SVG document (the chassis)
2.  Load in the rest of the pieces
3.  Get the root element of each component piece
4.  Import, position, and append that piece into the initial document

So, the code I'm using for that looks something like:

Document chassisDoc = ...
Document subDoc = ...

Element subElement = subDoc.getDocumentElement();
subElement = (Element) chassisDoc.importNode(subElement, true);

// Not shown: Position the sub-element at the right spot in the  
chassisDoc

Element chassisElement = chassisDoc.getDocumentElement();
chassisElement.appendChild(subElement)


This works, but I'm a little worried about performance.  The  
documents themselves are on the large side: the chassis is ~2MB, the  
sub-documents are between 200KB and 1MB.  It's possible that a  
chassis may have up to 20 - 30 components on the high side.  Also, a  
more recent test of this technique was throwing BridgeException's at  
seemingly random times on one of the many the 'appendChild' calls.

Is there a better way to accomplish this?  I've looked into using  
Overlay's, but am struggling with how I would draw an SVG from the  
Overlay's 'paint(...)' method.  I've also thought of rasterizing the  
SVG of each component, and drawing that way from within an Overlay,  
but would I then lose the ability to zoom in & out?  Any code  
snippets I could look at that do similar things?



Many thanks for your time,

Peter

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


Mime
View raw message