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.model;
027:
028: import com.sun.perseus.j2d.PaintServer;
029: import com.sun.perseus.j2d.RenderGraphics;
030: import com.sun.perseus.j2d.RenderContext;
031:
032: import com.sun.perseus.j2d.Box;
033: import com.sun.perseus.j2d.Tile;
034: import com.sun.perseus.j2d.Transform;
035:
036: /**
037: * An <code>AbstractShapeNodeProxy</code> delegates its rendering to a
038: * proxied <code>AbstractShapeNode</code> and has the same policy for
039: * handling computed value changes.
040: *
041: * @version $Id: AbstractShapeNodeProxy.java,v 1.3 2006/06/29 10:47:29 ln156897 Exp $
042: */
043: public class AbstractShapeNodeProxy extends AbstractRenderingNodeProxy {
044: /**
045: * @param proxiedNode <tt>AbstractShapeNode</tt> to proxy
046: */
047: protected AbstractShapeNodeProxy(final AbstractShapeNode proxiedNode) {
048: super (proxiedNode);
049: }
050:
051: /**
052: * @param newFill the new computed fill property.
053: */
054: public void setFill(final PaintServer newFill) {
055: this .fill = newFill;
056: renderingDirty();
057: }
058:
059: /**
060: * @param newStroke the new computed stroke property.
061: */
062: public void setStroke(final PaintServer newStroke) {
063: this .stroke = newStroke;
064: renderingDirty();
065: }
066:
067: /**
068: * @param newStrokeWidth the new computed stroke-width property value.
069: */
070: public void setStrokeWidth(final float newStrokeWidth) {
071: strokeWidth = newStrokeWidth;
072:
073: // Only dirty rendering if the object is actually stroked.
074: if (stroke != null) {
075: renderingDirty();
076: }
077: }
078:
079: /**
080: * @param newStrokeLineJoin the new computed value for stroke-line-join
081: */
082: public void setStrokeLineJoin(final int newStrokeLineJoin) {
083: super .setStrokeLineJoin(newStrokeLineJoin);
084:
085: if (stroke != null) {
086: renderingDirty();
087: }
088: }
089:
090: /**
091: * @param newStrokeLineCap the new value for the stroke-linecap property.
092: */
093: public void setStrokeLineCap(final int newStrokeLineCap) {
094: super .setStrokeLineCap(newStrokeLineCap);
095:
096: if (stroke != null) {
097: renderingDirty();
098: }
099: }
100:
101: /**
102: * @param newStrokeMiterLimit the new computed stroke-miterlimit property.
103: */
104: public void setStrokeMiterLimit(final float newStrokeMiterLimit) {
105: strokeMiterLimit = newStrokeMiterLimit;
106:
107: if (stroke != null && getStrokeLineJoin() == JOIN_MITER) {
108: renderingDirty();
109: }
110: }
111:
112: /**
113: * @param newStrokeDashArray the new computed stroke-dasharray property
114: * value.
115: */
116: public void setStrokeDashArray(final float[] newStrokeDashArray) {
117: strokeDashArray = newStrokeDashArray;
118:
119: if (stroke != null) {
120: renderingDirty();
121: }
122: }
123:
124: /**
125: * @param newStrokeDashOffset the new stroke-dashoffset computed property
126: * value.
127: */
128: public void setStrokeDashOffset(final float newStrokeDashOffset) {
129: strokeDashOffset = newStrokeDashOffset;
130:
131: if (stroke != null && strokeDashArray != null) {
132: renderingDirty();
133: }
134: }
135:
136: /**
137: * @param newFillOpacity the new computed value for the fill opacity
138: * property.
139: */
140: public void setFillOpacity(final float newFillOpacity) {
141: super .setFillOpacity(newFillOpacity);
142:
143: if (fill != null) {
144: renderingDirty();
145: }
146: }
147:
148: /**
149: * @param newStrokeOpacity the new computed stroke-opacity property.
150: */
151: public void setStrokeOpacity(final float newStrokeOpacity) {
152: super.setStrokeOpacity(newStrokeOpacity);
153:
154: if (stroke != null) {
155: renderingDirty();
156: }
157: }
158: }
|