Revision 9407 branches/v10/applications/appgvSIG/src/com/iver/cit/gvsig/gui/layout/fframes/FFramePicture.java
FFramePicture.java | ||
---|---|---|
53 | 53 |
import java.awt.image.BufferedImage; |
54 | 54 |
import java.awt.image.ImagingOpException; |
55 | 55 |
import java.io.File; |
56 |
import java.net.MalformedURLException; |
|
57 |
import java.net.URI; |
|
58 |
import java.net.URISyntaxException; |
|
59 |
import java.net.URL; |
|
56 | 60 |
|
57 | 61 |
import javax.swing.ImageIcon; |
58 | 62 |
|
... | ... | |
63 | 67 |
import org.apache.batik.bridge.ViewBox; |
64 | 68 |
import org.apache.batik.gvt.GraphicsNode; |
65 | 69 |
import org.apache.batik.gvt.renderer.StaticRenderer; |
70 |
import org.apache.batik.util.ParsedURL; |
|
66 | 71 |
import org.w3c.dom.Document; |
67 | 72 |
import org.w3c.dom.Element; |
68 | 73 |
import org.w3c.dom.svg.SVGDocument; |
... | ... | |
182 | 187 |
* @param rv Rect?ngulo que forma la parte visible del Layout. |
183 | 188 |
*/ |
184 | 189 |
private void drawSVG(Graphics2D g, Rectangle2D rect, Rectangle2D rv) { |
185 |
if ((rv == null) || rv.contains(rect)) { |
|
186 |
AffineTransform ataux = new AffineTransform(); |
|
190 |
AffineTransform ataux = new AffineTransform(); |
|
191 |
|
|
192 |
System.out.println("SVG GLOBAL TRANSFORM: " + gvtRoot.getGlobalTransform()); |
|
193 |
System.out.println("SVG TRANSFORM: " + gvtRoot.getTransform()); |
|
194 |
// try { |
|
195 |
// URI uri = new URI(m_path); |
|
196 |
// URL url = new URL(m_path); |
|
197 |
// |
|
198 |
// ParsedURL pU = new ParsedURL(url); |
|
199 |
// |
|
200 |
// String fragmentIdentifier = url.getRef(); |
|
201 |
gvtRoot.setTransform(new AffineTransform()); |
|
202 |
ataux.translate(rect.getX(), rect.getY()); |
|
203 |
AffineTransform aux = ViewBox.getPreserveAspectRatioTransform(elt, |
|
204 |
(float) rect.getWidth(), (float) rect.getHeight()); |
|
187 | 205 |
|
188 |
ataux.translate(rect.getX(), rect.getY()); |
|
206 |
// AffineTransform aux = ViewBox.getViewTransform(fragmentIdentifier, elt, |
|
207 |
// (float) rect.getWidth(), (float) rect.getHeight()); |
|
189 | 208 |
|
190 |
try { |
|
191 |
ataux.concatenate(ViewBox.getViewTransform(null, elt, |
|
192 |
(float) rect.getWidth(), (float) rect.getHeight())); |
|
193 |
gvtRoot.setTransform(ataux); |
|
194 |
} catch (Exception e) { |
|
195 |
// TODO: handle exception |
|
196 |
} |
|
197 |
} else { |
|
198 |
AffineTransform ataux = new AffineTransform(); |
|
199 |
|
|
200 |
ataux.translate(rect.getX(), rect.getY()); |
|
201 |
ataux.concatenate(ViewBox.getViewTransform(null, elt, |
|
202 |
(float) rect.getWidth(), (float) rect.getHeight())); |
|
203 |
|
|
204 |
gvtRoot.setTransform(ataux); |
|
205 |
} |
|
206 |
|
|
207 |
RenderingHints renderingHints = new RenderingHints(defaultRenderingHints); |
|
208 |
g.setRenderingHints(renderingHints); |
|
209 |
|
|
210 |
if (gvtRoot != null) { |
|
211 |
gvtRoot.paint(g); |
|
212 |
} |
|
209 |
ataux.concatenate(aux); |
|
210 |
|
|
211 |
gvtRoot.setTransform(ataux); |
|
212 |
|
|
213 |
RenderingHints renderingHints = new RenderingHints(defaultRenderingHints); |
|
214 |
g.setRenderingHints(renderingHints); |
|
215 |
|
|
216 |
if (gvtRoot != null) { |
|
217 |
gvtRoot.paint(g); |
|
218 |
} |
|
219 |
// } catch (URISyntaxException e) { |
|
220 |
// // TODO Auto-generated catch block |
|
221 |
// e.printStackTrace(); |
|
222 |
// } catch (MalformedURLException e) { |
|
223 |
// // TODO Auto-generated catch block |
|
224 |
// e.printStackTrace(); |
|
225 |
// } |
|
226 |
|
|
213 | 227 |
} |
214 | 228 |
|
215 | 229 |
/** |
... | ... | |
310 | 324 |
Image img = load(file); |
311 | 325 |
|
312 | 326 |
if (isSVG) { |
313 |
return new Dimension(100, 100); |
|
327 |
return new Dimension((int) gvtRoot.getBounds().getWidth(), |
|
328 |
(int) gvtRoot.getBounds().getHeight()); |
|
329 |
// return new Dimension(100, 100); |
|
314 | 330 |
} |
315 | 331 |
|
316 | 332 |
if (img == null) { |
... | ... | |
380 | 396 |
BridgeContext ctx = new BridgeContext(userAgent, loader); |
381 | 397 |
Document svgDoc = loader.loadDocument(file.toURI().toString()); |
382 | 398 |
gvtRoot = gvtBuilder.build(ctx, svgDoc); |
399 |
|
|
383 | 400 |
renderer.setTree(gvtRoot); |
384 | 401 |
elt = ((SVGDocument) svgDoc).getRootElement(); |
402 |
|
|
385 | 403 |
} catch (Exception ex) { |
386 | 404 |
ex.printStackTrace(); |
387 | 405 |
} |
Also available in: Unified diff