--- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGPath.java Fri Jul 23 12:27:20 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,263 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-package com.nokia.microedition.m2g;
-
-import org.w3c.dom.svg.*;
-import org.w3c.dom.DOMException;
-import java.io.IOException;
-import com.nokia.mj.impl.utils.Logger;
-
-/**
- * This interface represents an "SVGPath" datatype used to define the path geometry.
- * Corresponds to SVG path specification or the "d" attribute.
- */
-public class M2GSVGPath extends M2GObject implements SVGPath
-{
- //--------------------------------------------------
- // STATIC CONTANTS
- //--------------------------------------------------
- /* Optimization: static finals changed to local variables
- private static final String SEGMENT_INDEX_SIZE_ESTR =
- "The segment index is out of bounds.";
- private static final String PARAMETER_INDEX_SIZE_ESTR =
- "The parameter index is out of bounds for this segment's type.";
- */
- private static final int CLOSE_PARAMETER_COUNT = 0;
- private static final int MOVE_TO_PARAMETER_COUNT = 2;
- private static final int LINE_TO_PARAMETER_COUNT = 2;
- private static final int CURVE_TO_PARAMETER_COUNT = 6;
- private static final int QUAD_TO_PARAMETER_COUNT = 4;
-
- //--------------------------------------------------
- // VARIABLES
- //--------------------------------------------------
-
- //--------------------------------------------------
- // METHODS
- //--------------------------------------------------
-
- /**
- * Constructor
- * @param aHandle - native path object handle
- * @param aDoCleanup - true if the native object needed to be deleted
- */
- protected M2GSVGPath(int aHandle)
- {
- super();
- setHandle(aHandle);
- doConstruct();
- }
-
- /**
- * @see com.nokia.microedition.m2g.M2GObject#doCheckValidity()
- */
- public boolean doCheckValidity()
- {
- // SVGPath is invalid if it begins with any segment other
- // than MOVE_TO segment. Note that an empty SVGPath is still a valid value.
- try
- {
- if (!super.doCheckValidity() ||
- ((getNumberOfSegments() != 0) && (getSegment(0) != MOVE_TO)))
- {
- return false;
- }
- }
- catch (IOException e)
- {
- return false;
- }
- return true;
- }
-
- /**
- * @see com.nokia.microedition.m2g.M2GObject#doCleanup()
- */
- protected void doCleanup()
- {
- _destroyPath(getNativeSVGProxyHandle(),
- getHandle());
- resetHandles();
- }
-
- /**
- * @see com.nokia.microedition.m2g.M2GObject#doConstruct()
- */
- protected void doConstruct()
- {
- super.doConstruct();
- register(this);
- }
-
-
- /**
- * @see org.w3c.dom.svg.SVGPath#getNumberOfSegments()
- */
- public int getNumberOfSegments()
- {
- return _getNumberOfSegments(getNativeSVGProxyHandle(),
- getHandle() );
- }
-
- /**
- * @see org.w3c.dom.svg.SVGPath#getSegment()
- */
- public short getSegment(int index) throws DOMException
- {
- if ((index < 0) ||
- (index >= getNumberOfSegments()))
- {
- Logger.ELOG(Logger.EJavaUI, "getSegment() - exception:"
- + /*SF*/"The segment index is out of bounds."/*SF*/);
- throw new DOMException(
- DOMException.INDEX_SIZE_ERR,
- /*SF*/"The segment index is out of bounds."/*SF*/);
- }
- return M2GSVGConstants.parsePathCommand(
- _getSegmentType(getNativeSVGProxyHandle(),
- getHandle(),
- index)
- );
- }
-
- /**
- * Checks that parameter index is valid
- * @param aCommand -
- * @param aParameterIndex -
- */
- protected void checkParameterIndex(int aCommand, int aParameterIndex) throws DOMException
- {
- if ((aCommand == CLOSE && aParameterIndex >= CLOSE_PARAMETER_COUNT) ||
- (aCommand == MOVE_TO && aParameterIndex >= MOVE_TO_PARAMETER_COUNT)
- || (aCommand == LINE_TO && aParameterIndex >= LINE_TO_PARAMETER_COUNT)
- || (aCommand == CURVE_TO && aParameterIndex >= CURVE_TO_PARAMETER_COUNT)
- || (aCommand == QUAD_TO && aParameterIndex >= QUAD_TO_PARAMETER_COUNT))
- {
- throw new DOMException(
- DOMException.INDEX_SIZE_ERR,
- /*SF*/"The parameter index is out of bounds for this segment's type."/*SF*/);
- }
- }
-
- /**
- * @see org.w3c.dom.svg.SVGPath#close()
- */
- public void close()
- {
- _addClose(getNativeSVGProxyHandle(), getHandle());
- }
-
- /**
- * @see org.w3c.dom.svg.SVGPath#curveTo()
- */
- public void curveTo(float x1, float y1, float x2, float y2, float x3, float y3)
- {
- _addCurveTo(getNativeSVGProxyHandle(),
- getHandle(), x1, y1, x2, y2, x3, y3);
- }
-
- /**
- * @see org.w3c.dom.svg.SVGPath#getSegmentParam()
- */
- public float getSegmentParam(int cmdIndex, int paramIndex)
- {
- if ((cmdIndex >= getNumberOfSegments()) ||
- (cmdIndex < 0) ||
- (paramIndex < 0))
- {
- Logger.ELOG(Logger.EJavaUI, "getSegmentParam() - end, exception:"
- + /*SF*/"The segment index is out of bounds."/*SF*/);
- throw new DOMException(
- DOMException.INDEX_SIZE_ERR,
- /*SF*/"The segment index is out of bounds."/*SF*/);
- }
- short command = getSegment(cmdIndex);
- // Checks the validity of the parameter index.
- checkParameterIndex(command, paramIndex);
- return _getSegmentParameter(getNativeSVGProxyHandle(),
- getHandle(),
- cmdIndex,
- paramIndex
- );
- }
-
- /**
- * @see org.w3c.dom.svg.SVGPath#lineTo()
- */
- public void lineTo(float x, float y)
- {
- _addLineTo(getNativeSVGProxyHandle(), getHandle(), x, y);
- }
-
- /**
- * @see org.w3c.dom.svg.SVGPath#moveTo()
- */
- public void moveTo(float x, float y)
- {
- _addMoveTo(getNativeSVGProxyHandle(), getHandle(), x, y );
- }
-
- /**
- * @see org.w3c.dom.svg.SVGPath#quadTo()
- */
- public void quadTo(float x1, float y1, float x2, float y2)
- {
- _addQuadTo(getNativeSVGProxyHandle(),
- getHandle(),
- x1,
- y1,
- x2,
- y2 );
- }
-
- //--------------------------------------------------
- // NATIVE METHODS
- //--------------------------------------------------
- private static native void _addClose(
- int aSVGProxyHandle, int aPathHandle);
-
- private static native void _addCurveTo(
- int aSVGProxyHandle, int aPathHandle,
- float aX1, float aY1, float aX2, float aY2, float aX3, float aY3);
-
- private static native void _addLineTo(
- int aSVGProxyHandle, int aPathHandle, float aX, float aY);
-
- private static native void _addMoveTo(
- int aSVGProxyHandle, int aPathHandle, float aX, float aY);
-
- private static native void _addQuadTo(
- int aSVGProxyHandle, int aPathHandle,
- float aX1, float aY1, float aX2, float aY2);
-
- static native int _createPath(
- int aSVGProxyHandle);
-
- private static native void _destroyPath(
- int aSVGProxyHandle, int aPathHandle);
-
- private static native int _getNumberOfSegments(
- int aSVGProxyHandle, int aPathHandle);
-
- private static native float _getSegmentParameter(
- int aSVGProxyHandle, int aPathHandle, int aCmdIndex, int aParamIndex);
-
- private static native short _getSegmentType(
- int aSVGProxyHandle, int aPathHandle, int aIndex);
-}
-