Package org.apache.batik.dom.svg

Source Code of org.apache.batik.dom.svg.SVGOMFEGaussianBlurElement

/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved.        *
* ------------------------------------------------------------------------- *
* This software is published under the terms of the Apache Software License *
* version 1.1, a copy of which has been included with this distribution in  *
* the LICENSE file.                                                         *
*****************************************************************************/

package org.apache.batik.dom.svg;

import java.lang.ref.WeakReference;
import java.util.StringTokenizer;

import org.apache.batik.dom.AbstractDocument;

import org.w3c.dom.Attr;
import org.w3c.dom.DOMException;
import org.w3c.dom.Node;
import org.w3c.dom.svg.SVGAnimatedLength;
import org.w3c.dom.svg.SVGAnimatedNumber;
import org.w3c.dom.svg.SVGAnimatedString;
import org.w3c.dom.svg.SVGFEGaussianBlurElement;

/**
* This class implements {@link org.w3c.dom.svg.SVGFEGaussianBlurElement}.
*
* @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
* @version $Id: SVGOMFEGaussianBlurElement.java,v 1.6 2001/04/01 18:05:10 hillion Exp $
*/
public class SVGOMFEGaussianBlurElement
    extends    SVGOMFilterPrimitiveStandardAttributes
    implements SVGFEGaussianBlurElement {

    /**
     * The reference to the in attribute.
     */
    protected transient WeakReference inReference;

    /**
     * The reference to the stdDeviation x attribute.
     */
    protected transient WeakReference stdDeviationXReference;

    /**
     * The reference to the stdDeviation y attribute.
     */
    protected transient WeakReference stdDeviationYReference;

    /**
     * Creates a new SVGOMFEGaussianBlurElement object.
     */
    protected SVGOMFEGaussianBlurElement() {
    }

    /**
     * Creates a new SVGOMFEGaussianBlurElement object.
     * @param prefix The namespace prefix.
     * @param owner The owner document.
     */
    public SVGOMFEGaussianBlurElement(String prefix, AbstractDocument owner) {
        super(prefix, owner);
    }

    /**
     * <b>DOM</b>: Implements {@link org.w3c.dom.Node#getLocalName()}.
     */
    public String getLocalName() {
        return SVG_FE_GAUSSIAN_BLUR_TAG;
    }

    /**
     * <b>DOM</b>: Implements {@link
     * SVGFEGaussianBlurElement#getIn1()}.
     */
    public SVGAnimatedString getIn1() {
  SVGAnimatedString result;
  if (inReference == null ||
      (result = (SVGAnimatedString)inReference.get()) == null) {
      result = new SVGOMAnimatedString(this, null, SVG_IN_ATTRIBUTE);
      inReference = new WeakReference(result);
  }
  return result;
    }

    /**
     * <b>DOM</b>: Implements {@link
     * SVGFEGaussianBlurElement#getStdDeviationX()}.
     */
    public SVGAnimatedNumber getStdDeviationX() {
        SVGAnimatedNumber result;
        if (stdDeviationXReference == null ||
            (result = (SVGAnimatedNumber)stdDeviationXReference.get()) == null) {
            result = new SVGAnimatedNumber() {
                public float getBaseVal() {
                    Attr a = getAttributeNodeNS(null, SVG_STD_DEVIATION_ATTRIBUTE);
                    if (a != null) {
                        StringTokenizer st = new StringTokenizer(a.getValue(), " ");
                        if (st.hasMoreTokens()) {
                            return Float.parseFloat(st.nextToken());
                        }
                    }
                    return 0;
                }
                public void setBaseVal(float baseVal) throws DOMException {
                    String sdy = "";
                    Attr a = getAttributeNodeNS(null, SVG_STD_DEVIATION_ATTRIBUTE);
                    if (a != null) {
                        StringTokenizer st = new StringTokenizer(a.getValue(), " ");
                        if (st.hasMoreTokens()) {
                            st.nextToken();
                            if (st.hasMoreTokens()) {
                                sdy = st.nextToken();
                            }
                        }
                    }
                    setAttributeNS(null, SVG_STD_DEVIATION_ATTRIBUTE,
                                   Float.toString(baseVal) +
                                   ((sdy.length() == 0) ? "" :" " + sdy));
                }
                public float getAnimVal() {
                    throw new RuntimeException(" !!! TODO");
                }
            };
            stdDeviationXReference = new WeakReference(result);
        }
        return result;
    }

    /**
     * <b>DOM</b>: Implements {@link
     * SVGFEGaussianBlurElement#getStdDeviationY()}.
     */
    public SVGAnimatedNumber getStdDeviationY() {
        SVGAnimatedNumber result;
        if (stdDeviationYReference == null ||
            (result = (SVGAnimatedNumber)stdDeviationYReference.get()) == null) {
            result = new SVGAnimatedNumber() {
                public float getBaseVal() {
                    Attr a = getAttributeNodeNS(null, SVG_STD_DEVIATION_ATTRIBUTE);
                    if (a != null) {
                        StringTokenizer st = new StringTokenizer(a.getValue(), " ");
                        if (st.hasMoreTokens()) {
                            String s = st.nextToken();
                            if (st.hasMoreTokens()) {
                                return Float.parseFloat(st.nextToken());
                            }
                            return Float.parseFloat(s);
                        }
                    }
                    return 0;
                }
                public void setBaseVal(float baseVal) throws DOMException {
                    Attr a = getAttributeNodeNS(null, SVG_STD_DEVIATION_ATTRIBUTE);
                    String sdx = "0 ";
                    if (a != null) {
                        StringTokenizer st = new StringTokenizer(a.getValue(), " ");
                        if (st.hasMoreTokens()) {
                            sdx = st.nextToken() + " ";
                        }
                    }
                    setAttributeNS(null, SVG_STD_DEVIATION_ATTRIBUTE,
                                   sdx + Float.toString(baseVal));
                }
                public float getAnimVal() {
                    throw new RuntimeException(" !!! TODO");
                }
            };
            stdDeviationYReference = new WeakReference(result);
        }
        return result;
    }

    /**
     * <b>DOM</b>: Implements {@link
     * SVGFEGaussianBlurElement#setStdDeviation(float,float)}.
     */
    public void setStdDeviation (float devX, float devY) {
        setAttributeNS(null, SVG_STD_DEVIATION_ATTRIBUTE,
                       Float.toString(devX) + " " + Float.toString(devY));
    }

    /**
     * Returns a new uninitialized instance of this object's class.
     */
    protected Node newNode() {
        return new SVGOMFEGaussianBlurElement();
    }
}
TOP

Related Classes of org.apache.batik.dom.svg.SVGOMFEGaussianBlurElement

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.