001/*
002 * SVG Salamander
003 * Copyright (c) 2004, Mark McKay
004 * All rights reserved.
005 *
006 * Redistribution and use in source and binary forms, with or 
007 * without modification, are permitted provided that the following
008 * conditions are met:
009 *
010 *   - Redistributions of source code must retain the above 
011 *     copyright notice, this list of conditions and the following
012 *     disclaimer.
013 *   - Redistributions in binary form must reproduce the above
014 *     copyright notice, this list of conditions and the following
015 *     disclaimer in the documentation and/or other materials 
016 *     provided with the distribution.
017 *
018 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
019 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
020 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
021 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
022 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
023 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
025 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
026 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
027 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
028 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
029 * OF THE POSSIBILITY OF SUCH DAMAGE. 
030 * 
031 * Mark McKay can be contacted at mark@kitfox.com.  Salamander and other
032 * projects can be found at http://www.kitfox.com
033 *
034 * Created on January 26, 2004, 1:56 AM
035 */
036
037package com.kitfox.svg;
038
039import com.kitfox.svg.xml.StyleAttribute;
040import java.net.URI;
041
042/**
043 * @author Mark McKay
044 * @author <a href="mailto:mark@kitfox.com">Mark McKay</a>
045 */
046public class A extends Group
047{
048    public static final String TAG_NAME = "a";
049
050    URI href;
051    String title;
052
053    /** Creates a new instance of Stop */
054    public A()
055    {
056    }
057
058    public String getTagName()
059    {
060        return TAG_NAME;
061    }
062    
063    protected void build() throws SVGException
064    {
065        super.build();
066        
067        StyleAttribute sty = new StyleAttribute();
068        
069        if (getPres(sty.setName("xlink:href")))
070        {
071            href = sty.getURIValue(getXMLBase());
072        }
073        
074        if (getPres(sty.setName("xlink:title")))
075        {
076            title = sty.getStringValue();
077        }
078    }
079
080    /**
081     * Updates all attributes in this diagram associated with a time event.
082     * Ie, all attributes with track information.
083     * @return - true if this node has changed state as a result of the time
084     * update
085     */
086    public boolean updateTime(double curTime) throws SVGException
087    {
088        boolean changeState = super.updateTime(curTime);
089//        if (trackManager.getNumTracks() == 0) return false;
090
091        //Get current values for parameters
092        StyleAttribute sty = new StyleAttribute();
093        
094        if (getPres(sty.setName("xlink:href")))
095        {
096            href = sty.getURIValue(getXMLBase());
097        }
098        
099        if (getPres(sty.setName("xlink:title")))
100        {
101            title = sty.getStringValue();
102        }
103        
104        return changeState;
105    }
106}