Ignore:
Timestamp:
2013-06-11T01:01:28+02:00 (12 years ago)
Author:
Don-vip
Message:

fix #8742 - update svgsalamander to release 0.1.18+patch (fix bug SVGSALAMANDER-26) -> allow to open more SVG files

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/com/kitfox/svg/TransformableElement.java

    r4453 r6002  
    11/*
    2  * BoundedElement.java
     2 * SVG Salamander
     3 * Copyright (c) 2004, Mark McKay
     4 * All rights reserved.
    35 *
     6 * Redistribution and use in source and binary forms, with or
     7 * without modification, are permitted provided that the following
     8 * conditions are met:
    49 *
    5  *  The Salamander Project - 2D and 3D graphics libraries in Java
    6  *  Copyright (C) 2004 Mark McKay
     10 *   - Redistributions of source code must retain the above
     11 *     copyright notice, this list of conditions and the following
     12 *     disclaimer.
     13 *   - Redistributions in binary form must reproduce the above
     14 *     copyright notice, this list of conditions and the following
     15 *     disclaimer in the documentation and/or other materials
     16 *     provided with the distribution.
    717 *
    8  *  This library is free software; you can redistribute it and/or
    9  *  modify it under the terms of the GNU Lesser General Public
    10  *  License as published by the Free Software Foundation; either
    11  *  version 2.1 of the License, or (at your option) any later version.
    12  *
    13  *  This library is distributed in the hope that it will be useful,
    14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    16  *  Lesser General Public License for more details.
    17  *
    18  *  You should have received a copy of the GNU Lesser General Public
    19  *  License along with this library; if not, write to the Free Software
    20  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
    21  *
    22  *  Mark McKay can be contacted at mark@kitfox.com.  Salamander and other
    23  *  projects can be found at http://www.kitfox.com
     18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
     21 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
     22 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
     23 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
     25 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     27 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
     29 * OF THE POSSIBILITY OF SUCH DAMAGE.
     30 *
     31 * Mark McKay can be contacted at mark@kitfox.com.  Salamander and other
     32 * projects can be found at http://www.kitfox.com
    2433 *
    2534 * Created on January 26, 2004, 9:00 AM
    2635 */
    27 
    2836package com.kitfox.svg;
    2937
     
    3341import java.awt.geom.Rectangle2D;
    3442
    35 
    3643/**
    3744 * Maintains bounding box for this element
     
    4047 * @author <a href="mailto:mark@kitfox.com">Mark McKay</a>
    4148 */
    42 public class TransformableElement extends SVGElement 
     49abstract public class TransformableElement extends SVGElement
    4350{
     51    AffineTransform xform = null;
    4452
    45     AffineTransform xform = null;
    46 //    AffineTransform invXform = null;
    47 
    48     /** Creates a new instance of BoundedElement */
    49     public TransformableElement() {
     53    /**
     54     * Creates a new instance of BoundedElement
     55     */
     56    public TransformableElement()
     57    {
    5058    }
    5159
     
    5563    }
    5664
     65    /**
     66     * Fetches a copy of the cached AffineTransform. Note that this value will
     67     * only be valid after the node has been updated.
     68     *
     69     * @return
     70     */
    5771    public AffineTransform getXForm()
    5872    {
    59         return xform;
     73        return xform != null ? new AffineTransform(xform) : null;
    6074    }
    61 /*
    62     public void loaderStartElement(SVGLoaderHelper helper, Attributes attrs, SVGElement parent)
    63     {
    64                 //Load style string
    65         super.loaderStartElement(helper, attrs, parent);
     75    /*
     76     public void loaderStartElement(SVGLoaderHelper helper, Attributes attrs, SVGElement parent)
     77     {
     78     //Load style string
     79     super.loaderStartElement(helper, attrs, parent);
    6680
    67         String transform = attrs.getValue("transform");
    68         if (transform != null)
    69         {
    70             xform = parseTransform(transform);
    71         }
    72     }
    73 */
    74    
     81     String transform = attrs.getValue("transform");
     82     if (transform != null)
     83     {
     84     xform = parseTransform(transform);
     85     }
     86     }
     87     */
     88
    7589    protected void build() throws SVGException
    7690    {
    7791        super.build();
    78        
     92
    7993        StyleAttribute sty = new StyleAttribute();
    80        
     94
    8195        if (getPres(sty.setName("transform")))
    8296        {
     
    8498        }
    8599    }
    86    
     100
    87101    protected Shape shapeToParent(Shape shape)
    88102    {
    89         if (xform == null) return shape;
     103        if (xform == null)
     104        {
     105            return shape;
     106        }
    90107        return xform.createTransformedShape(shape);
    91108    }
     
    93110    protected Rectangle2D boundsToParent(Rectangle2D rect)
    94111    {
    95         if (xform == null) return rect;
     112        if (xform == null)
     113        {
     114            return rect;
     115        }
    96116        return xform.createTransformedShape(rect).getBounds2D();
    97117    }
    98118
    99119    /**
    100      * Updates all attributes in this diagram associated with a time event.
    101      * Ie, all attributes with track information.
     120     * Updates all attributes in this diagram associated with a time event. Ie,
     121     * all attributes with track information.
     122     *
    102123     * @return - true if this node has changed state as a result of the time
    103124     * update
     
    106127    {
    107128        StyleAttribute sty = new StyleAttribute();
    108        
     129
    109130        if (getPres(sty.setName("transform")))
    110131        {
     
    116137            }
    117138        }
    118        
     139
    119140        return false;
    120141    }
Note: See TracChangeset for help on using the changeset viewer.