tkormann 02/02/15 06:58:45
Modified: sources/org/apache/batik/bridge
AbstractGraphicsNodeBridge.java
AbstractSVGGradientElementBridge.java
BridgeContext.java BridgeUpdateEvent.java
BridgeUpdateHandler.java PaintServer.java
SVGCircleElementBridge.java
SVGEllipseElementBridge.java SVGGElementBridge.java
SVGImageElementBridge.java
SVGLineElementBridge.java
SVGLinearGradientElementBridge.java
SVGPathElementBridge.java
SVGPolygonElementBridge.java
SVGPolylineElementBridge.java
SVGRadialGradientElementBridge.java
SVGRectElementBridge.java SVGSVGElementBridge.java
SVGShapeElementBridge.java
SVGTextElementBridge.java SVGUseElementBridge.java
sources/org/apache/batik/gvt CompositeShapePainter.java
Log:
first quick and dirty support for dynamic radial and linear gradient.
Revision Changes Path
1.13 +31 -3
xml-batik/sources/org/apache/batik/bridge/AbstractGraphicsNodeBridge.java
Index: AbstractGraphicsNodeBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/AbstractGraphicsNodeBridge.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- AbstractGraphicsNodeBridge.java 13 Feb 2002 15:01:14 -0000 1.12
+++ AbstractGraphicsNodeBridge.java 15 Feb 2002 14:58:44 -0000 1.13
@@ -39,10 +39,10 @@
* </ul>
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: AbstractGraphicsNodeBridge.java,v 1.12 2002/02/13 15:01:14
tkormann Exp $
+ * @version $Id: AbstractGraphicsNodeBridge.java,v 1.13 2002/02/15 14:58:44
tkormann Exp $
*/
public abstract class AbstractGraphicsNodeBridge extends AbstractSVGBridge
- implements GraphicsNodeBridge, ErrorConstants {
+ implements BridgeUpdateHandler, GraphicsNodeBridge, ErrorConstants {
/**
* The element that has been handled by this bridge.
@@ -106,6 +106,12 @@
public void buildGraphicsNode(BridgeContext ctx,
Element e,
GraphicsNode node) {
+
+ // push 'this' as the current BridgeUpdateHandler for subbridges
+ if (ctx.isDynamic()) {
+ ctx.pushBridgeUpdateHandler(this);
+ }
+
// 'opacity'
node.setComposite(CSSUtilities.convertOpacity(e));
// 'filter'
@@ -122,6 +128,8 @@
this.node = node;
this.ctx = ctx;
initializeDynamicSupport();
+ // 'this' is no more the current BridgeUpdateHandler
+ ctx.popBridgeUpdateHandler();
}
// Handle children elements such as <title>
@@ -145,6 +153,26 @@
}
/**
+ * Invoked when a bridge update is starting.
+ *
+ * @param evt the evt that describes the incoming update
+ */
+ public void bridgeUpdateStarting(BridgeUpdateEvent evt) {
+ System.out.println("("+e.getLocalName()+" "+node+") update started "+
+ evt.getHandlerKey());
+ }
+
+ /**
+ * Invoked when a bridge update is completed.
+ *
+ * @param evt the evt that describes the update
+ */
+ public void bridgeUpdateCompleted(BridgeUpdateEvent evt) {
+ System.out.println("("+e.getLocalName()+" "+node+") update completed "+
+ evt.getHandlerKey());
+ }
+
+ /**
* Handles DOMAttrModified events.
*
* @param evt the DOM mutation event
@@ -152,7 +180,7 @@
protected void handleDOMAttrModifiedEvent(MutationEvent evt) {
String attrName = evt.getAttrName();
if (attrName.equals(SVG_TRANSFORM_ATTRIBUTE)) {
- BridgeUpdateEvent be = new BridgeUpdateEvent();
+ BridgeUpdateEvent be = new BridgeUpdateEvent(this);
fireBridgeUpdateStarting(be);
String s = evt.getNewValue();
1.4 +96 -10
xml-batik/sources/org/apache/batik/bridge/AbstractSVGGradientElementBridge.java
Index: AbstractSVGGradientElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/AbstractSVGGradientElementBridge.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- AbstractSVGGradientElementBridge.java 11 Feb 2002 16:00:07 -0000 1.3
+++ AbstractSVGGradientElementBridge.java 15 Feb 2002 14:58:44 -0000 1.4
@@ -24,16 +24,32 @@
import org.w3c.dom.Element;
import org.w3c.dom.Node;
+import org.w3c.dom.events.Event;
+import org.w3c.dom.events.EventListener;
+import org.w3c.dom.events.EventTarget;
+import org.w3c.dom.events.MutationEvent;
/**
* Bridge class for vending gradients.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: AbstractSVGGradientElementBridge.java,v 1.3 2002/02/11 16:00:07
tkormann Exp $
+ * @version $Id: AbstractSVGGradientElementBridge.java,v 1.4 2002/02/15 14:58:44
tkormann Exp $
*/
public abstract class AbstractSVGGradientElementBridge extends AbstractSVGBridge
implements PaintBridge, ErrorConstants {
+ protected BridgeContext ctx;
+
+ protected Element paintElement;
+
+ protected Element paintedElement;
+
+ protected GraphicsNode paintedNode;
+
+ protected float opacity;
+
+ protected Paint paint;
+
/**
* Constructs a new AbstractSVGGradientElementBridge.
*/
@@ -100,15 +116,36 @@
transform = new AffineTransform();
}
- return buildGradient(paintElement,
- paintedElement,
- paintedNode,
- spreadMethod,
- colorSpace,
- transform,
- colors,
- offsets,
- ctx);
+ Paint paint = buildGradient(paintElement,
+ paintedElement,
+ paintedNode,
+ spreadMethod,
+ colorSpace,
+ transform,
+ colors,
+ offsets,
+ ctx);
+
+ if (ctx.isDynamic()) {
+ if (handler == null) { // quick hack to fix dynamic
+ this.handler = ctx.getCurrentBridgeUpdateHandler();
+ this.handlerKey = ctx.getCurrentBridgeUpdateHandlerKey();
+
+ this.ctx = ctx;
+ this.paintElement = paintElement;
+ this.paintedElement = paintedElement;
+ this.paintedNode = paintedNode;
+ this.opacity = opacity;
+
+ ((EventTarget)paintElement).addEventListener
+ ("DOMAttrModified",
+ new DOMAttrModifiedEventListener(),
+ false);
+ }
+ this.paint = paint;
+ }
+
+ return paint;
}
/**
@@ -134,6 +171,55 @@
Color [] colors,
float [] offsets,
BridgeContext ctx);
+ // dynamic support
+
+ /**
+ * Handles DOMAttrModified events.
+ *
+ * @param evt the DOM mutation event
+ */
+ protected void handleDOMAttrModifiedEvent(MutationEvent evt) {
+ String attrName = evt.getAttrName();
+ if (attrName.equals(SVG_GRADIENT_TRANSFORM_ATTRIBUTE) ||
+ attrName.equals(SVG_SPREAD_METHOD_ATTRIBUTE)) {
+
+ BridgeUpdateEvent be = new BridgeUpdateEvent(this);
+ be.setOldValue(paint);
+ fireBridgeUpdateStarting(be);
+ this.paint = createPaint
+ (ctx, paintElement, paintedElement, paintedNode, opacity);
+ be.setNewValue(paint);
+ fireBridgeUpdateCompleted(be);
+ } else {
+ System.out.println("Unsupported attribute modification: "+attrName+
+ " on "+paintElement.getLocalName());
+ }
+ }
+
+ /**
+ * The listener class for 'DOMAttrModified' event.
+ */
+ protected class DOMAttrModifiedEventListener implements EventListener {
+
+ /**
+ * Handles 'DOMAttrModfied' events and deleguates to the
+ * 'handleDOMAttrModifiedEvent' method any changes to the
+ * GraphicsNode if any.
+ *
+ * @param evt the DOM event
+ */
+ public void handleEvent(Event evt) {
+ Element e = (Element)evt.getTarget();
+ // <!> FIXME: need to check if e is a stop
+ // check if an attribute has changed on the gradient or on a stop
+ if (e != paintElement && e.getParentNode() != paintElement) {
+ return;
+ }
+ handleDOMAttrModifiedEvent((MutationEvent)evt);
+ }
+ }
+
+ // convenient methods
/**
* Converts the spreadMethod attribute.
1.34 +47 -2 xml-batik/sources/org/apache/batik/bridge/BridgeContext.java
Index: BridgeContext.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/BridgeContext.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- BridgeContext.java 14 Feb 2002 12:37:54 -0000 1.33
+++ BridgeContext.java 15 Feb 2002 14:58:44 -0000 1.34
@@ -47,7 +47,7 @@
* a SVG DOM tree such as the current viewport or the user agent.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: BridgeContext.java,v 1.33 2002/02/14 12:37:54 tkormann Exp $
+ * @version $Id: BridgeContext.java,v 1.34 2002/02/15 14:58:44 tkormann Exp $
*/
public class BridgeContext implements ErrorConstants {
@@ -81,6 +81,11 @@
protected List viewportStack = new LinkedList();
/**
+ * The BridgeUpdateHandler stack. Used in building time.
+ */
+ protected List bridgeUpdateHandlerStack = new LinkedList();
+
+ /**
* The user agent.
*/
protected UserAgent userAgent;
@@ -389,7 +394,7 @@
* @param e the element that closes its viewport
*/
public void closeViewport(Element e) {
- viewportMap.remove(e);
+ //viewportMap.remove(e); FIXME: potential memory leak
viewportStack.remove(0);
if (viewportStack.size() == 0) {
viewportStack = null;
@@ -612,6 +617,46 @@
}
}
}
+
+ // dynamic support
+
+ public void pushBridgeUpdateHandler(BridgeUpdateHandler handler) {
+ bridgeUpdateHandlerStack.add(0, new BridgeUpdateHandlerInfo(handler));
+ }
+
+ public void setCurrentBridgeUpdateHandlerKey(int handlerKey) {
+ BridgeUpdateHandlerInfo info =
+ (BridgeUpdateHandlerInfo)bridgeUpdateHandlerStack.get(0);
+ info.handlerKey = handlerKey;
+ }
+
+ public BridgeUpdateHandler getCurrentBridgeUpdateHandler() {
+ BridgeUpdateHandlerInfo info =
+ (BridgeUpdateHandlerInfo)bridgeUpdateHandlerStack.get(0);
+ return info.handler;
+ }
+
+ public int getCurrentBridgeUpdateHandlerKey() {
+ BridgeUpdateHandlerInfo info =
+ (BridgeUpdateHandlerInfo)bridgeUpdateHandlerStack.get(0);
+ return info.handlerKey;
+ }
+
+ public void popBridgeUpdateHandler() {
+ bridgeUpdateHandlerStack.remove(0);
+ }
+
+ protected static class BridgeUpdateHandlerInfo {
+
+ protected BridgeUpdateHandler handler;
+ protected int handlerKey;
+
+ public BridgeUpdateHandlerInfo(BridgeUpdateHandler handler) {
+ this.handler = handler;
+ }
+ }
+
+ // bridge extensions support
/**
* Registers the bridges to handle SVG 1.0 elements.
1.2 +27 -11 xml-batik/sources/org/apache/batik/bridge/BridgeUpdateEvent.java
Index: BridgeUpdateEvent.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/BridgeUpdateEvent.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BridgeUpdateEvent.java 23 Jan 2002 14:14:07 -0000 1.1
+++ BridgeUpdateEvent.java 15 Feb 2002 14:58:44 -0000 1.2
@@ -8,65 +8,81 @@
package org.apache.batik.bridge;
+import java.util.EventObject;
+
/**
* Describes an update from a <tt>DynamicBridge</tt>
*
* @author <a href="mailto:[EMAIL PROTECTED]">Vincent Hardy</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: BridgeUpdateEvent.java,v 1.1 2002/01/23 14:14:07 deweese Exp $
+ * @version $Id: BridgeUpdateEvent.java,v 1.2 2002/02/15 14:58:44 tkormann Exp $
*/
-public class BridgeUpdateEvent {
-
+public class BridgeUpdateEvent extends EventObject {
+
+ /** The handler key. */
private int handlerKey;
+
+ /* The new value of the GVT product. */
private Object newValue;
+
+ /* The old value of the GVT product. */
private Object oldValue;
/**
+ * Constructs a new <tt>BridgeUpdateEvent</tt>.
*
+ * @param source the source of the event
*/
- public BridgeUpdateEvent(){
+ public BridgeUpdateEvent(Object source){
+ super(source);
}
/**
- *
+ * Returns the BridgeUpdateHandler's key.
*/
public int getHandlerKey(){
return handlerKey;
}
/**
- *
+ * Sets the BridgeUpdateHandler's key to the specified value.
+ *
+ * @param handlerKey the key of the BridgeUpdateHandler
*/
public void setHandlerKey(int handlerKey){
this.handlerKey = handlerKey;
}
/**
- *
+ * Returns the new GVT product resulting from the update or null
+ * if the update has not been completed yet.
*/
public Object getNewValue(){
return newValue;
}
/**
- *
+ * Sets the new GVT product to the specified value.
+ *
+ * @param newValue the new GVT product resulting from the update
*/
public void setNewValue(Object newValue){
this.newValue = newValue;
}
/**
- *
+ * Returns the old GVT product before the update.
*/
public Object getOldValue(){
return oldValue;
}
/**
- *
+ * Sets the old GVT product to the specified value.
+ *
+ * @param oldValue the old GVT product before the update
*/
public void setOldValue(Object oldValue){
this.oldValue = oldValue;
}
-
}
1.2 +10 -6
xml-batik/sources/org/apache/batik/bridge/BridgeUpdateHandler.java
Index: BridgeUpdateHandler.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/BridgeUpdateHandler.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BridgeUpdateHandler.java 23 Jan 2002 14:14:07 -0000 1.1
+++ BridgeUpdateHandler.java 15 Feb 2002 14:58:44 -0000 1.2
@@ -9,22 +9,26 @@
package org.apache.batik.bridge;
/**
- * Interface for objects interesed in being notified of updates
- * by a <tt>DynamicBridge</tt>.
+ * Interface for objects interested in being notified of updates
+ * by a <tt>Bridge</tt>.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Vincent Hardy</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: BridgeUpdateHandler.java,v 1.1 2002/01/23 14:14:07 deweese Exp $
+ * @version $Id: BridgeUpdateHandler.java,v 1.2 2002/02/15 14:58:44 tkormann Exp $
*/
public interface BridgeUpdateHandler {
/**
+ * Invoked when a bridge update starts.
*
+ * @param evt the evt that describes the incoming update
*/
- public void bridgeUpdateStarting(BridgeUpdateEvent e);
+ void bridgeUpdateStarting(BridgeUpdateEvent evt);
/**
- *
+ * Invoked when a bridge update ends.
+ *
+ * @param evt the evt that describes the update
*/
- public void bridgeUpdateCompleted(BridgeUpdateEvent e);
+ void bridgeUpdateCompleted(BridgeUpdateEvent evt);
}
1.3 +12 -2 xml-batik/sources/org/apache/batik/bridge/PaintServer.java
Index: PaintServer.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/PaintServer.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PaintServer.java 15 Mar 2001 16:28:00 -0000 1.2
+++ PaintServer.java 15 Feb 2002 14:58:44 -0000 1.3
@@ -49,11 +49,15 @@
* Paint using the ShapePainter interface.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: PaintServer.java,v 1.2 2001/03/15 16:28:00 tkormann Exp $
+ * @version $Id: PaintServer.java,v 1.3 2002/02/15 14:58:44 tkormann Exp $
*/
public abstract class PaintServer
implements SVGConstants, CSSConstants, ErrorConstants {
+ public static final int KEY_STROKE = 1;
+
+ public static final int KEY_FILL = 2;
+
/**
* No instance of this class is required.
*/
@@ -154,10 +158,16 @@
ShapeNode node,
BridgeContext ctx) {
+ if (ctx.isDynamic()) {
+ ctx.setCurrentBridgeUpdateHandlerKey(KEY_FILL);
+ }
Paint fillPaint = convertFillPaint(e, node, ctx);
+ if (ctx.isDynamic()) {
+ ctx.setCurrentBridgeUpdateHandlerKey(KEY_STROKE);
+ }
Paint strokePaint = convertStrokePaint(e, node, ctx);
- Shape shape = node.getShape();
+ Shape shape = node.getShape();
if (fillPaint != null && strokePaint != null) {
FillShapePainter fp = new FillShapePainter(shape);
fp.setPaint(fillPaint);
1.7 +2 -2
xml-batik/sources/org/apache/batik/bridge/SVGCircleElementBridge.java
Index: SVGCircleElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGCircleElementBridge.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- SVGCircleElementBridge.java 13 Feb 2002 09:51:01 -0000 1.6
+++ SVGCircleElementBridge.java 15 Feb 2002 14:58:44 -0000 1.7
@@ -22,7 +22,7 @@
* Bridge class for the <circle> element.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: SVGCircleElementBridge.java,v 1.6 2002/02/13 09:51:01 tkormann Exp
$
+ * @version $Id: SVGCircleElementBridge.java,v 1.7 2002/02/15 14:58:44 tkormann Exp
$
*/
public class SVGCircleElementBridge extends SVGShapeElementBridge {
@@ -108,7 +108,7 @@
attrName.equals(SVG_CY_ATTRIBUTE) ||
attrName.equals(SVG_R_ATTRIBUTE)) {
- BridgeUpdateEvent be = new BridgeUpdateEvent();
+ BridgeUpdateEvent be = new BridgeUpdateEvent(this);
fireBridgeUpdateStarting(be);
buildShape(ctx, e, (ShapeNode)node);
if (((ShapeNode)node).getShape() == null) {
1.7 +2 -2
xml-batik/sources/org/apache/batik/bridge/SVGEllipseElementBridge.java
Index: SVGEllipseElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGEllipseElementBridge.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- SVGEllipseElementBridge.java 13 Feb 2002 09:51:01 -0000 1.6
+++ SVGEllipseElementBridge.java 15 Feb 2002 14:58:44 -0000 1.7
@@ -22,7 +22,7 @@
* Bridge class for the <ellipse> element.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: SVGEllipseElementBridge.java,v 1.6 2002/02/13 09:51:01 tkormann
Exp $
+ * @version $Id: SVGEllipseElementBridge.java,v 1.7 2002/02/15 14:58:44 tkormann
Exp $
*/
public class SVGEllipseElementBridge extends SVGShapeElementBridge {
@@ -122,7 +122,7 @@
attrName.equals(SVG_RX_ATTRIBUTE) ||
attrName.equals(SVG_RY_ATTRIBUTE)) {
- BridgeUpdateEvent be = new BridgeUpdateEvent();
+ BridgeUpdateEvent be = new BridgeUpdateEvent(this);
fireBridgeUpdateStarting(be);
buildShape(ctx, e, (ShapeNode)node);
if (((ShapeNode)node).getShape() == null) {
1.14 +7 -4 xml-batik/sources/org/apache/batik/bridge/SVGGElementBridge.java
Index: SVGGElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGGElementBridge.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- SVGGElementBridge.java 14 Feb 2002 12:37:54 -0000 1.13
+++ SVGGElementBridge.java 15 Feb 2002 14:58:44 -0000 1.14
@@ -26,7 +26,7 @@
* Bridge class for the <g> element.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: SVGGElementBridge.java,v 1.13 2002/02/14 12:37:54 tkormann Exp $
+ * @version $Id: SVGGElementBridge.java,v 1.14 2002/02/15 14:58:44 tkormann Exp $
*/
public class SVGGElementBridge extends AbstractGraphicsNodeBridge {
@@ -124,7 +124,7 @@
GVTBuilder builder = ctx.getGVTBuilder();
GraphicsNode childNode = builder.build(ctx, childElt);
if (childNode == null) {
- return;
+ return; // the added element is not a graphic element
}
// add the graphics node
Node n = e.getFirstChild();
@@ -136,7 +136,7 @@
// append at the end
((CompositeGraphicsNode)node).add(childNode);
} else {
- // find the index into the CompositeGraphicsNode
+ // find the index of the GraphicsNode to add
int index = 0;
while (n != lastChild && n != childElt) {
if (n.getNodeType() == Node.ELEMENT_NODE) {
@@ -159,6 +159,9 @@
protected void handleDOMNodeRemoved(MutationEvent evt) {
//System.out.println("handleDOMNodeRemoved "+e.getLocalName());
Element childElt = (Element)evt.getTarget();
+ if (!ctx.hasGraphicsNodeBridge(childElt)) {
+ return; // the removed element is not a graphic element
+ }
Node n = e.getFirstChild();
Node lastChild = e.getLastChild();
if (n == childElt) {
@@ -169,7 +172,7 @@
CompositeGraphicsNode cgn = (CompositeGraphicsNode)node;
cgn.remove(cgn.size()-1);
} else {
- // find the index into the CompositeGraphicsNode
+ // find the index of the GraphicsNode to remove
int index = 0;
while (n != lastChild && n != childElt) {
if (n.getNodeType() == Node.ELEMENT_NODE) {
1.37 +2 -2
xml-batik/sources/org/apache/batik/bridge/SVGImageElementBridge.java
Index: SVGImageElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGImageElementBridge.java,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- SVGImageElementBridge.java 13 Feb 2002 15:01:14 -0000 1.36
+++ SVGImageElementBridge.java 15 Feb 2002 14:58:44 -0000 1.37
@@ -52,7 +52,7 @@
* Bridge class for the <image> element.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: SVGImageElementBridge.java,v 1.36 2002/02/13 15:01:14 tkormann Exp
$
+ * @version $Id: SVGImageElementBridge.java,v 1.37 2002/02/15 14:58:44 tkormann Exp
$
*/
public class SVGImageElementBridge extends AbstractGraphicsNodeBridge {
@@ -235,7 +235,7 @@
attrName.equals(SVG_WIDTH_ATTRIBUTE) ||
attrName.equals(SVG_HEIGHT_ATTRIBUTE)) {
- BridgeUpdateEvent be = new BridgeUpdateEvent();
+ BridgeUpdateEvent be = new BridgeUpdateEvent(this);
fireBridgeUpdateStarting(be);
// <!> FIXME: Not yet implemented
1.7 +2 -2
xml-batik/sources/org/apache/batik/bridge/SVGLineElementBridge.java
Index: SVGLineElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGLineElementBridge.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- SVGLineElementBridge.java 13 Feb 2002 09:51:01 -0000 1.6
+++ SVGLineElementBridge.java 15 Feb 2002 14:58:44 -0000 1.7
@@ -21,7 +21,7 @@
* Bridge class for the <line> element.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: SVGLineElementBridge.java,v 1.6 2002/02/13 09:51:01 tkormann Exp $
+ * @version $Id: SVGLineElementBridge.java,v 1.7 2002/02/15 14:58:44 tkormann Exp $
*/
public class SVGLineElementBridge extends SVGDecoratedShapeElementBridge {
@@ -107,7 +107,7 @@
attrName.equals(SVG_X2_ATTRIBUTE) ||
attrName.equals(SVG_Y2_ATTRIBUTE)) {
- BridgeUpdateEvent be = new BridgeUpdateEvent();
+ BridgeUpdateEvent be = new BridgeUpdateEvent(this);
fireBridgeUpdateStarting(be);
buildShape(ctx, e, (ShapeNode)node);
if (((ShapeNode)node).getShape() == null) {
1.6 +37 -1
xml-batik/sources/org/apache/batik/bridge/SVGLinearGradientElementBridge.java
Index: SVGLinearGradientElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGLinearGradientElementBridge.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SVGLinearGradientElementBridge.java 15 Oct 2001 12:33:51 -0000 1.5
+++ SVGLinearGradientElementBridge.java 15 Feb 2002 14:58:44 -0000 1.6
@@ -19,12 +19,13 @@
import org.apache.batik.gvt.GraphicsNode;
import org.w3c.dom.Element;
+import org.w3c.dom.events.MutationEvent;
/**
* Bridge class for the <linearGradient> element.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: SVGLinearGradientElementBridge.java,v 1.5 2001/10/15 12:33:51
tkormann Exp $
+ * @version $Id: SVGLinearGradientElementBridge.java,v 1.6 2002/02/15 14:58:44
tkormann Exp $
*/
public class SVGLinearGradientElementBridge
extends AbstractSVGGradientElementBridge {
@@ -42,6 +43,13 @@
}
/**
+ * Returns a new instance of this bridge.
+ */
+ public Bridge getInstance() {
+ return new SVGLinearGradientElementBridge();
+ }
+
+ /**
* Builds a linear gradient according to the specified parameters.
*
* @param paintElement the element that defines a Paint
@@ -138,5 +146,33 @@
colorSpace,
transform);
}
+ }
+
+ // dynamic support
+
+ /**
+ * Handles DOMAttrModified events.
+ *
+ * @param evt the DOM mutation event
+ */
+ protected void handleDOMAttrModifiedEvent(MutationEvent evt) {
+ String attrName = evt.getAttrName();
+ if (attrName.equals(SVG_X1_ATTRIBUTE) ||
+ attrName.equals(SVG_Y1_ATTRIBUTE) ||
+ attrName.equals(SVG_X2_ATTRIBUTE) ||
+ attrName.equals(SVG_Y2_ATTRIBUTE) ||
+ attrName.equals(SVG_GRADIENT_UNITS_ATTRIBUTE)) {
+
+ BridgeUpdateEvent be = new BridgeUpdateEvent(this);
+ be.setOldValue(paint);
+ fireBridgeUpdateStarting(be);
+ // <!> FIXME: create a new paint each time
+ this.paint = createPaint
+ (ctx, paintElement, paintedElement, paintedNode, opacity);
+ be.setNewValue(paint);
+ fireBridgeUpdateCompleted(be);
+ } else {
+ super.handleDOMAttrModifiedEvent(evt);
+ }
}
}
1.10 +2 -2
xml-batik/sources/org/apache/batik/bridge/SVGPathElementBridge.java
Index: SVGPathElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGPathElementBridge.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- SVGPathElementBridge.java 13 Feb 2002 09:51:01 -0000 1.9
+++ SVGPathElementBridge.java 15 Feb 2002 14:58:44 -0000 1.10
@@ -24,7 +24,7 @@
* Bridge class for the <path> element.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: SVGPathElementBridge.java,v 1.9 2002/02/13 09:51:01 tkormann Exp $
+ * @version $Id: SVGPathElementBridge.java,v 1.10 2002/02/15 14:58:44 tkormann Exp $
*/
public class SVGPathElementBridge extends SVGDecoratedShapeElementBridge {
@@ -93,7 +93,7 @@
String attrName = evt.getAttrName();
if (attrName.equals(SVG_D_ATTRIBUTE)) {
- BridgeUpdateEvent be = new BridgeUpdateEvent();
+ BridgeUpdateEvent be = new BridgeUpdateEvent(this);
fireBridgeUpdateStarting(be);
buildShape(ctx, e, (ShapeNode)node);
if (((ShapeNode)node).getShape() == null) {
1.11 +2 -2
xml-batik/sources/org/apache/batik/bridge/SVGPolygonElementBridge.java
Index: SVGPolygonElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGPolygonElementBridge.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- SVGPolygonElementBridge.java 13 Feb 2002 09:51:01 -0000 1.10
+++ SVGPolygonElementBridge.java 15 Feb 2002 14:58:44 -0000 1.11
@@ -24,7 +24,7 @@
* Bridge class for the <polygon> element.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: SVGPolygonElementBridge.java,v 1.10 2002/02/13 09:51:01 tkormann
Exp $
+ * @version $Id: SVGPolygonElementBridge.java,v 1.11 2002/02/15 14:58:44 tkormann
Exp $
*/
public class SVGPolygonElementBridge extends SVGDecoratedShapeElementBridge {
@@ -92,7 +92,7 @@
String attrName = evt.getAttrName();
if (attrName.equals(SVG_POINTS_ATTRIBUTE)) {
- BridgeUpdateEvent be = new BridgeUpdateEvent();
+ BridgeUpdateEvent be = new BridgeUpdateEvent(this);
fireBridgeUpdateStarting(be);
buildShape(ctx, e, (ShapeNode)node);
if (((ShapeNode)node).getShape() == null) {
1.10 +2 -2
xml-batik/sources/org/apache/batik/bridge/SVGPolylineElementBridge.java
Index: SVGPolylineElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGPolylineElementBridge.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- SVGPolylineElementBridge.java 13 Feb 2002 09:51:01 -0000 1.9
+++ SVGPolylineElementBridge.java 15 Feb 2002 14:58:44 -0000 1.10
@@ -24,7 +24,7 @@
* Bridge class for the <polyline> element.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: SVGPolylineElementBridge.java,v 1.9 2002/02/13 09:51:01 tkormann
Exp $
+ * @version $Id: SVGPolylineElementBridge.java,v 1.10 2002/02/15 14:58:44 tkormann
Exp $
*/
public class SVGPolylineElementBridge extends SVGDecoratedShapeElementBridge {
@@ -92,7 +92,7 @@
String attrName = evt.getAttrName();
if (attrName.equals(SVG_POINTS_ATTRIBUTE)) {
- BridgeUpdateEvent be = new BridgeUpdateEvent();
+ BridgeUpdateEvent be = new BridgeUpdateEvent(this);
fireBridgeUpdateStarting(be);
buildShape(ctx, e, (ShapeNode)node);
if (((ShapeNode)node).getShape() == null) {
1.7 +40 -1
xml-batik/sources/org/apache/batik/bridge/SVGRadialGradientElementBridge.java
Index: SVGRadialGradientElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGRadialGradientElementBridge.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- SVGRadialGradientElementBridge.java 15 Oct 2001 12:33:51 -0000 1.6
+++ SVGRadialGradientElementBridge.java 15 Feb 2002 14:58:44 -0000 1.7
@@ -19,12 +19,13 @@
import org.apache.batik.gvt.GraphicsNode;
import org.w3c.dom.Element;
+import org.w3c.dom.events.MutationEvent;
/**
* Bridge class for the <radialGradient> element.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: SVGRadialGradientElementBridge.java,v 1.6 2001/10/15 12:33:51
tkormann Exp $
+ * @version $Id: SVGRadialGradientElementBridge.java,v 1.7 2002/02/15 14:58:44
tkormann Exp $
*/
public class SVGRadialGradientElementBridge
extends AbstractSVGGradientElementBridge {
@@ -43,6 +44,13 @@
}
/**
+ * Returns a new instance of this bridge.
+ */
+ public Bridge getInstance() {
+ return new SVGRadialGradientElementBridge();
+ }
+
+ /**
* Builds a radial gradient according to the specified parameters.
*
* @param paintElement the element that defines a Paint
@@ -152,6 +160,37 @@
spreadMethod,
RadialGradientPaint.SRGB,
transform);
+ }
+ }
+
+ // dynamic support
+
+ /**
+ * Handles DOMAttrModified events.
+ *
+ * @param evt the DOM mutation event
+ */
+ protected void handleDOMAttrModifiedEvent(MutationEvent evt) {
+ String attrName = evt.getAttrName();
+ if (attrName.equals(SVG_CX_ATTRIBUTE) ||
+ attrName.equals(SVG_CY_ATTRIBUTE) ||
+ attrName.equals(SVG_R_ATTRIBUTE) ||
+ attrName.equals(SVG_FX_ATTRIBUTE) ||
+ attrName.equals(SVG_FY_ATTRIBUTE) ||
+ attrName.equals(SVG_GRADIENT_UNITS_ATTRIBUTE)) {
+ //long t0 = System.currentTimeMillis();
+ BridgeUpdateEvent be = new BridgeUpdateEvent(this);
+ be.setOldValue(paint);
+ fireBridgeUpdateStarting(be);
+ // <!> FIXME: create a new paint each time
+ this.paint = createPaint
+ (ctx, paintElement, paintedElement, paintedNode, opacity);
+ be.setNewValue(paint);
+ fireBridgeUpdateCompleted(be);
+ //long t1 = System.currentTimeMillis();
+ //System.out.println("new grad: "+(t1-t0));
+ } else {
+ super.handleDOMAttrModifiedEvent(evt);
}
}
}
1.9 +2 -2
xml-batik/sources/org/apache/batik/bridge/SVGRectElementBridge.java
Index: SVGRectElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGRectElementBridge.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- SVGRectElementBridge.java 13 Feb 2002 09:51:01 -0000 1.8
+++ SVGRectElementBridge.java 15 Feb 2002 14:58:44 -0000 1.9
@@ -24,7 +24,7 @@
* Bridge class for the <rect> element.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: SVGRectElementBridge.java,v 1.8 2002/02/13 09:51:01 tkormann Exp $
+ * @version $Id: SVGRectElementBridge.java,v 1.9 2002/02/15 14:58:44 tkormann Exp $
*/
public class SVGRectElementBridge extends SVGShapeElementBridge {
@@ -168,7 +168,7 @@
attrName.equals(SVG_RX_ATTRIBUTE) ||
attrName.equals(SVG_RY_ATTRIBUTE)) {
- BridgeUpdateEvent be = new BridgeUpdateEvent();
+ BridgeUpdateEvent be = new BridgeUpdateEvent(this);
fireBridgeUpdateStarting(be);
buildShape(ctx, e, (ShapeNode)node);
if (((ShapeNode)node).getShape() == null) {
1.23 +2 -2
xml-batik/sources/org/apache/batik/bridge/SVGSVGElementBridge.java
Index: SVGSVGElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGSVGElementBridge.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- SVGSVGElementBridge.java 13 Feb 2002 15:01:14 -0000 1.22
+++ SVGSVGElementBridge.java 15 Feb 2002 14:58:44 -0000 1.23
@@ -33,7 +33,7 @@
* Bridge class for the <svg> element.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: SVGSVGElementBridge.java,v 1.22 2002/02/13 15:01:14 tkormann Exp $
+ * @version $Id: SVGSVGElementBridge.java,v 1.23 2002/02/15 14:58:44 tkormann Exp $
*/
public class SVGSVGElementBridge extends AbstractSVGBridge
implements GraphicsNodeBridge, ErrorConstants {
@@ -248,7 +248,7 @@
protected void handleDOMAttrModifiedEvent(MutationEvent evt) {
String attrName = evt.getAttrName();
- BridgeUpdateEvent be = new BridgeUpdateEvent();
+ BridgeUpdateEvent be = new BridgeUpdateEvent(this);
fireBridgeUpdateStarting(be);
System.out.println("Unsupported attribute modification: "+attrName+
" on "+e.getLocalName());
1.14 +78 -1
xml-batik/sources/org/apache/batik/bridge/SVGShapeElementBridge.java
Index: SVGShapeElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGShapeElementBridge.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- SVGShapeElementBridge.java 12 Feb 2002 15:14:37 -0000 1.13
+++ SVGShapeElementBridge.java 15 Feb 2002 14:58:45 -0000 1.14
@@ -17,11 +17,20 @@
import org.w3c.dom.Element;
+
+import org.apache.batik.gvt.CompositeShapePainter;
+import org.apache.batik.gvt.FillShapePainter;
+import org.apache.batik.gvt.StrokeShapePainter;
+import java.awt.Paint;
+import java.awt.Shape;
+
+
+
/**
* The base bridge class for shapes. Subclasses bridge <tt>ShapeNode</tt>.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: SVGShapeElementBridge.java,v 1.13 2002/02/12 15:14:37 tkormann Exp
$
+ * @version $Id: SVGShapeElementBridge.java,v 1.14 2002/02/15 14:58:45 tkormann Exp
$
*/
public abstract class SVGShapeElementBridge extends AbstractGraphicsNodeBridge {
@@ -84,8 +93,19 @@
public void buildGraphicsNode(BridgeContext ctx,
Element e,
GraphicsNode node) {
+ // push 'this' as the current BridgeUpdateHandler for subbridges
+ if (ctx.isDynamic()) {
+ ctx.pushBridgeUpdateHandler(this);
+ }
+
ShapeNode shapeNode = (ShapeNode)node;
shapeNode.setShapePainter(createShapePainter(ctx, e, shapeNode));
+
+ // 'this' is no more the current BridgeUpdateHandler
+ if (ctx.isDynamic()) {
+ ctx.popBridgeUpdateHandler();
+ }
+
super.buildGraphicsNode(ctx, e, node);
}
@@ -131,5 +151,62 @@
*/
public boolean isComposite() {
return false;
+ }
+
+ // dynamic support
+
+ /**
+ * Invoked when a bridge update is starting.
+ *
+ * @param evt the evt that describes the incoming update
+ */
+ public void bridgeUpdateStarting(BridgeUpdateEvent evt) {
+ // System.out.println("("+e.getLocalName()+" "+node+") update
started "+evt.getHandlerKey());
+ }
+
+ /**
+ * Invoked when a bridge update is completed.
+ *
+ * @param evt the evt that describes the update
+ */
+ public void bridgeUpdateCompleted(BridgeUpdateEvent evt) {
+ // System.out.println(">>> ("+e.getLocalName()+" "+node+") update
completed "+ evt.getHandlerKey());
+ switch(evt.getHandlerKey()) {
+ case PaintServer.KEY_FILL: {
+ Paint paint = (Paint)evt.getNewValue();
+ ShapeNode shapeNode = (ShapeNode)node;
+ Shape shape = shapeNode.getShape();
+ ShapePainter painter = shapeNode.getShapePainter();
+ if (painter instanceof FillShapePainter) {
+ FillShapePainter fp = (FillShapePainter)painter;
+ fp.setPaint(paint);
+ shapeNode.setShapePainter(fp);
+ } else if (painter instanceof CompositeShapePainter) {
+ CompositeShapePainter cp = (CompositeShapePainter)painter;
+ FillShapePainter fp = (FillShapePainter)cp.getShapePainter(0);
+ fp.setPaint(paint);
+ shapeNode.setShapePainter(cp);
+ }
+ break;
+ } case PaintServer.KEY_STROKE: {
+ Paint paint = (Paint)evt.getNewValue();
+ ShapeNode shapeNode = (ShapeNode)node;
+ Shape shape = shapeNode.getShape();
+ ShapePainter painter = shapeNode.getShapePainter();
+ if (painter instanceof StrokeShapePainter) {
+ StrokeShapePainter sp = (StrokeShapePainter)painter;
+ sp.setPaint(paint);
+ shapeNode.setShapePainter(sp);
+ } else if (painter instanceof CompositeShapePainter) {
+ CompositeShapePainter cp = (CompositeShapePainter)painter;
+ StrokeShapePainter sp =
+ (StrokeShapePainter)cp.getShapePainter(1);
+ sp.setPaint(paint);
+ shapeNode.setShapePainter(cp);
+ }
+ break;
+ }
+ }
+ // System.out.println("<<< ("+e.getLocalName()+" "+node+") update
completed "+ evt.getHandlerKey());
}
}
1.49 +32 -3
xml-batik/sources/org/apache/batik/bridge/SVGTextElementBridge.java
Index: SVGTextElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGTextElementBridge.java,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- SVGTextElementBridge.java 13 Feb 2002 15:01:14 -0000 1.48
+++ SVGTextElementBridge.java 15 Feb 2002 14:58:45 -0000 1.49
@@ -60,10 +60,10 @@
* Bridge class for the <text> element.
*
* @author <a href="[EMAIL PROTECTED]>Bill Haneman</a>
- * @version $Id: SVGTextElementBridge.java,v 1.48 2002/02/13 15:01:14 tkormann Exp $
+ * @version $Id: SVGTextElementBridge.java,v 1.49 2002/02/15 14:58:45 tkormann Exp $
*/
public class SVGTextElementBridge extends AbstractSVGBridge
- implements GraphicsNodeBridge, ErrorConstants {
+ implements BridgeUpdateHandler, GraphicsNodeBridge, ErrorConstants {
/**
* The element that has been handled by this bridge.
@@ -193,6 +193,13 @@
public void buildGraphicsNode(BridgeContext ctx,
Element e,
GraphicsNode node) {
+
+
+ // push 'this' as the current BridgeUpdateHandler for subbridges
+ if (ctx.isDynamic()) {
+ ctx.pushBridgeUpdateHandler(this);
+ }
+
e.normalize();
AttributedString as = buildAttributedString(ctx, e, node);
addGlyphPositionAttributes(as, e, ctx);
@@ -220,6 +227,8 @@
this.node = node;
this.ctx = ctx;
initializeDynamicSupport();
+ // 'this' is no more the current BridgeUpdateHandler
+ ctx.popBridgeUpdateHandler();
}
// Handle children elements such as <title>
@@ -250,6 +259,26 @@
}
/**
+ * Invoked when a bridge update is starting.
+ *
+ * @param evt the evt that describes the incoming update
+ */
+ public void bridgeUpdateStarting(BridgeUpdateEvent evt) {
+ System.out.println("("+e.getLocalName()+" "+node+") update started "+
+ evt.getHandlerKey());
+ }
+
+ /**
+ * Invoked when a bridge update is completed.
+ *
+ * @param evt the evt that describes the update
+ */
+ public void bridgeUpdateCompleted(BridgeUpdateEvent evt) {
+ System.out.println("("+e.getLocalName()+" "+node+") update completed "+
+ evt.getHandlerKey());
+ }
+
+ /**
* Handles DOMAttrModified events.
*
* @param evt the DOM mutation event
@@ -257,7 +286,7 @@
protected void handleDOMAttrModifiedEvent(MutationEvent evt) {
String attrName = evt.getAttrName();
if (attrName.equals(SVG_TRANSFORM_ATTRIBUTE)) {
- BridgeUpdateEvent be = new BridgeUpdateEvent();
+ BridgeUpdateEvent be = new BridgeUpdateEvent(this);
fireBridgeUpdateStarting(be);
String s = evt.getNewValue();
1.20 +2 -2
xml-batik/sources/org/apache/batik/bridge/SVGUseElementBridge.java
Index: SVGUseElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGUseElementBridge.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- SVGUseElementBridge.java 13 Feb 2002 15:01:15 -0000 1.19
+++ SVGUseElementBridge.java 15 Feb 2002 14:58:45 -0000 1.20
@@ -37,7 +37,7 @@
* Bridge class for the <use> element.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: SVGUseElementBridge.java,v 1.19 2002/02/13 15:01:15 tkormann Exp $
+ * @version $Id: SVGUseElementBridge.java,v 1.20 2002/02/15 14:58:45 tkormann Exp $
*/
public class SVGUseElementBridge extends AbstractSVGBridge
implements GraphicsNodeBridge, ErrorConstants {
@@ -274,7 +274,7 @@
protected void handleDOMAttrModifiedEvent(MutationEvent evt) {
String attrName = evt.getAttrName();
- BridgeUpdateEvent be = new BridgeUpdateEvent();
+ BridgeUpdateEvent be = new BridgeUpdateEvent(this);
fireBridgeUpdateStarting(be);
System.out.println("Unsupported attribute modification: "+attrName+
" on "+e.getLocalName());
1.14 +20 -1
xml-batik/sources/org/apache/batik/gvt/CompositeShapePainter.java
Index: CompositeShapePainter.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/gvt/CompositeShapePainter.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- CompositeShapePainter.java 6 Feb 2002 17:52:36 -0000 1.13
+++ CompositeShapePainter.java 15 Feb 2002 14:58:45 -0000 1.14
@@ -21,7 +21,7 @@
* A shape painter which consists of multiple shape painters.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: CompositeShapePainter.java,v 1.13 2002/02/06 17:52:36 deweese Exp $
+ * @version $Id: CompositeShapePainter.java,v 1.14 2002/02/15 14:58:45 tkormann Exp
$
*/
public class CompositeShapePainter implements ShapePainter {
@@ -72,6 +72,25 @@
}
painters[count++] = shapePainter;
}
+
+ /**
+ * Sets to the specified index, the specified ShapePainter.
+ *
+ * @param index the index where to set the ShapePainter
+ * @param shapePainter the ShapePainter to set
+ */
+ /* public void setShapePainter(int index, ShapePainter shapePainter) {
+ if (shapePainter == null) {
+ return;
+ }
+ if (this.shape != shapePainter.getShape()) {
+ shapePainter.setShape(shape);
+ }
+ if (painters == null || index >= painters.length) {
+ throw new IllegalArgumentException("Bad index: "+index);
+ }
+ painters[index] = shapePainter;
+ }*/
/**
* Returns the shape painter at the specified index.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]