001: /*
002: *
003: *
004: * Copyright 1990-2007 Sun Microsystems, Inc. All Rights Reserved.
005: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
006: *
007: * This program is free software; you can redistribute it and/or
008: * modify it under the terms of the GNU General Public License version
009: * 2 only, as published by the Free Software Foundation.
010: *
011: * This program is distributed in the hope that it will be useful, but
012: * WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * General Public License version 2 for more details (a copy is
015: * included at /legal/license.txt).
016: *
017: * You should have received a copy of the GNU General Public License
018: * version 2 along with this work; if not, write to the Free Software
019: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
020: * 02110-1301 USA
021: *
022: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
023: * Clara, CA 95054 or visit www.sun.com if you need additional
024: * information or have any questions.
025: */
026: package com.sun.perseus.midp;
027:
028: import java.io.InputStream;
029:
030: import javax.microedition.m2g.SVGAnimator;
031: import javax.microedition.m2g.SVGEventListener;
032: import javax.microedition.m2g.SVGImage;
033:
034: import com.sun.perseus.model.DocumentNode;
035:
036: /**
037: * The <code>SVGAnimatorImpl</code> class implements the <code>SVGAnimator</code>
038: * JSR 226 class. It mostly delegates to the <code>SVGCanvas</code> class.
039: *
040: * @version $Id: SVGAnimatorImpl.java,v 1.3 2006/04/21 06:40:54 st125089 Exp $
041: */
042: public final class SVGAnimatorImpl extends SVGAnimator {
043: /**
044: * The class name for a MIDP Canvas.
045: */
046: static final String MIDP_COMPONENT_CLASS = "javax.microedition.lcdui.Canvas";
047:
048: /**
049: * The associated SVG canvas.
050: */
051: SVGCanvas svgCanvas;
052:
053: /**
054: * Creates a new SVGAnimatorImpl associated with the given SVGImage
055: * instance.
056: *
057: * @param svgImage the SVGImage this animator implementation should play in
058: * a MIDP Canvas.
059: */
060: private SVGAnimatorImpl(final SVGImage svgImage) {
061: svgCanvas = new SVGCanvas((DocumentNode) svgImage.getDocument());
062: }
063:
064: // JAVADOC COMMENT ELIDED
065: public static SVGAnimator createAnimator(SVGImage svgImage,
066: String componentBaseClass) {
067: if (svgImage == null) {
068: throw new NullPointerException();
069: }
070:
071: if (componentBaseClass != null
072: && !MIDP_COMPONENT_CLASS.equals(componentBaseClass)) {
073: throw new IllegalArgumentException();
074: }
075:
076: return new SVGAnimatorImpl(svgImage);
077: }
078:
079: // JAVADOC COMMENT ELIDED
080: public void setSVGEventListener(SVGEventListener svgEventListener) {
081: svgCanvas.setSVGEventListener(svgEventListener);
082: }
083:
084: // JAVADOC COMMENT ELIDED
085: public void setTimeIncrement(float timeIncrement) {
086: svgCanvas.setTimeIncrement(timeIncrement);
087: }
088:
089: // JAVADOC COMMENT ELIDED
090: public float getTimeIncrement() {
091: return svgCanvas.getTimeIncrement();
092: }
093:
094: // JAVADOC COMMENT ELIDED
095: public void play() {
096: svgCanvas.play();
097: }
098:
099: // JAVADOC COMMENT ELIDED
100: public void pause() {
101: svgCanvas.pause();
102: }
103:
104: // JAVADOC COMMENT ELIDED
105: public void stop() {
106: svgCanvas.stop();
107: }
108:
109: // JAVADOC COMMENT ELIDED
110: public Object getTargetComponent() {
111: return svgCanvas;
112: }
113:
114: // JAVADOC COMMENT ELIDED
115: public void invokeAndWait(Runnable runnable)
116: throws InterruptedException {
117: svgCanvas.invokeAndWait(runnable);
118: }
119:
120: // JAVADOC COMMENT ELIDED
121: public void invokeLater(Runnable runnable) {
122: svgCanvas.invokeLater(runnable);
123: }
124:
125: }
|