Revision 9407 branches/v10/applications/appgvSIG/src/com/iver/cit/gvsig/gui/layout/fframes/FFramePicture.java

View differences:

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