You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-dev@xmlgraphics.apache.org by tk...@apache.org on 2001/02/07 11:24:02 UTC
cvs commit: xml-batik/sources/org/apache/batik/bridge SVGFeBlendElementBridge.java SVGFeColorMatrixElementBridge.java SVGFeComponentTransferElementBridge.java SVGFeCompositeElementBridge.java SVGFeConvolveMatrixElementBridge.java SVGFeDiffuseLightingElementBridge.java SVGFeDisplacementMapElementBridge.java SVGFeFloodElementBridge.java SVGFeGaussianBlurElementBridge.java SVGFeImageElementBridge.java SVGFeMergeElementBridge.java SVGFeMorphologyElementBridge.java SVGFeOffsetElementBridge.java SVGFeSpecularLightingElementBridge.java SVGFeTileElementBridge.java SVGFeTurbulenceElementBridge.java SVGFilterElementBridge.java SVGUtilities.java
tkormann 01/02/07 02:24:02
Modified: sources/org/apache/batik/bridge SVGFeBlendElementBridge.java
SVGFeColorMatrixElementBridge.java
SVGFeComponentTransferElementBridge.java
SVGFeCompositeElementBridge.java
SVGFeConvolveMatrixElementBridge.java
SVGFeDiffuseLightingElementBridge.java
SVGFeDisplacementMapElementBridge.java
SVGFeFloodElementBridge.java
SVGFeGaussianBlurElementBridge.java
SVGFeImageElementBridge.java
SVGFeMergeElementBridge.java
SVGFeMorphologyElementBridge.java
SVGFeOffsetElementBridge.java
SVGFeSpecularLightingElementBridge.java
SVGFeTileElementBridge.java
SVGFeTurbulenceElementBridge.java
SVGFilterElementBridge.java SVGUtilities.java
Log:
primitiveUnits and filter primitives (the content of the filter element) are now
inherited. xlink:href should be implemented everywhere it's needed.
Revision Changes Path
1.5 +8 -12 xml-batik/sources/org/apache/batik/bridge/SVGFeBlendElementBridge.java
Index: SVGFeBlendElementBridge.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGFeBlendElementBridge.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SVGFeBlendElementBridge.java 2001/02/06 09:30:49 1.4
+++ SVGFeBlendElementBridge.java 2001/02/07 10:24:00 1.5
@@ -12,12 +12,6 @@
import java.util.Map;
import java.util.Vector;
-import org.apache.batik.bridge.BridgeContext;
-import org.apache.batik.bridge.BridgeMutationEvent;
-import org.apache.batik.bridge.FilterPrimitiveBridge;
-import org.apache.batik.bridge.IllegalAttributeValueException;
-import org.apache.batik.bridge.MissingAttributeException;
-
import org.apache.batik.gvt.GraphicsNode;
import org.apache.batik.gvt.GraphicsNodeRenderContext;
import org.apache.batik.ext.awt.image.renderable.CompositeRable;
@@ -43,7 +37,7 @@
*
* @author <a href="mailto:Thomas.DeWeeese@Kodak.com">Thomas DeWeese</a>
* @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a>
- * @version $Id: SVGFeBlendElementBridge.java,v 1.4 2001/02/06 09:30:49 tkormann Exp $
+ * @version $Id: SVGFeBlendElementBridge.java,v 1.5 2001/02/07 10:24:00 tkormann Exp $
*/
public class SVGFeBlendElementBridge implements FilterPrimitiveBridge,
SVGConstants {
@@ -73,9 +67,10 @@
Rectangle2D filterRegion,
Map filterMap){
- GraphicsNodeRenderContext rc =
- bridgeContext.getGraphicsNodeRenderContext();
+ GraphicsNodeRenderContext rc =
+ bridgeContext.getGraphicsNodeRenderContext();
+ DocumentLoader loader = bridgeContext.getDocumentLoader();
// Extract Blend operation
CompositeRule rule = getRule(filterElement);
@@ -133,7 +128,8 @@
filterRegion,
filteredNode,
rc,
- uctx);
+ uctx,
+ loader);
// Now, do the blend.
Filter filter = null;
@@ -177,8 +173,8 @@
} else {
throw new IllegalAttributeValueException(
- Messages.formatMessage("feBlen.mode.invalid",
- new Object[] { ruleStr }));
+ Messages.formatMessage("feBlen.mode.invalid",
+ new Object[] { ruleStr }));
}
return rule;
}
1.4 +4 -7 xml-batik/sources/org/apache/batik/bridge/SVGFeColorMatrixElementBridge.java
Index: SVGFeColorMatrixElementBridge.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGFeColorMatrixElementBridge.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SVGFeColorMatrixElementBridge.java 2001/02/06 09:30:49 1.3
+++ SVGFeColorMatrixElementBridge.java 2001/02/07 10:24:00 1.4
@@ -13,11 +13,6 @@
import java.util.Map;
import java.util.StringTokenizer;
-import org.apache.batik.bridge.BridgeContext;
-import org.apache.batik.bridge.BridgeMutationEvent;
-import org.apache.batik.bridge.FilterPrimitiveBridge;
-import org.apache.batik.bridge.IllegalAttributeValueException;
-
import org.apache.batik.gvt.GraphicsNode;
import org.apache.batik.gvt.GraphicsNodeRenderContext;
import org.apache.batik.ext.awt.image.renderable.ColorMatrixRable;
@@ -43,7 +38,7 @@
*
* @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
* @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a>
- * @version $Id: SVGFeColorMatrixElementBridge.java,v 1.3 2001/02/06 09:30:49 tkormann Exp $
+ * @version $Id: SVGFeColorMatrixElementBridge.java,v 1.4 2001/02/07 10:24:00 tkormann Exp $
*/
public class SVGFeColorMatrixElementBridge implements FilterPrimitiveBridge,
SVGConstants {
@@ -76,6 +71,7 @@
GraphicsNodeRenderContext rc =
bridgeContext.getGraphicsNodeRenderContext();
+ DocumentLoader loader = bridgeContext.getDocumentLoader();
// First, extract source
String inAttr = filterElement.getAttributeNS(null, SVG_IN_ATTRIBUTE);
@@ -117,7 +113,8 @@
filterRegion,
filteredNode,
rc,
- uctx);
+ uctx,
+ loader);
//
// Extract the matrix type. Interpret the values accordingly.
1.4 +4 -8 xml-batik/sources/org/apache/batik/bridge/SVGFeComponentTransferElementBridge.java
Index: SVGFeComponentTransferElementBridge.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGFeComponentTransferElementBridge.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SVGFeComponentTransferElementBridge.java 2001/02/06 09:30:50 1.3
+++ SVGFeComponentTransferElementBridge.java 2001/02/07 10:24:00 1.4
@@ -13,12 +13,6 @@
import java.util.Map;
import java.util.StringTokenizer;
-import org.apache.batik.bridge.BridgeContext;
-import org.apache.batik.bridge.BridgeMutationEvent;
-import org.apache.batik.bridge.FilterPrimitiveBridge;
-import org.apache.batik.bridge.IllegalAttributeValueException;
-import org.apache.batik.bridge.MissingAttributeException;
-
import org.apache.batik.gvt.GraphicsNode;
import org.apache.batik.gvt.GraphicsNodeRenderContext;
import org.apache.batik.ext.awt.image.renderable.ComponentTransferFunction;
@@ -46,7 +40,7 @@
*
* @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
* @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a>
- * @version $Id: SVGFeComponentTransferElementBridge.java,v 1.3 2001/02/06 09:30:50 tkormann Exp $
+ * @version $Id: SVGFeComponentTransferElementBridge.java,v 1.4 2001/02/07 10:24:00 tkormann Exp $
*/
public class SVGFeComponentTransferElementBridge
implements FilterPrimitiveBridge, SVGConstants {
@@ -78,6 +72,7 @@
GraphicsNodeRenderContext rc =
bridgeContext.getGraphicsNodeRenderContext();
+ DocumentLoader loader = bridgeContext.getDocumentLoader();
// First, extract source
String inAttr = filterElement.getAttributeNS(null, SVG_IN_ATTRIBUTE);
@@ -119,7 +114,8 @@
filterRegion,
filteredNode,
rc,
- uctx);
+ uctx,
+ loader);
//
// Now, extract the various transfer functions. They
1.5 +4 -8 xml-batik/sources/org/apache/batik/bridge/SVGFeCompositeElementBridge.java
Index: SVGFeCompositeElementBridge.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGFeCompositeElementBridge.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SVGFeCompositeElementBridge.java 2001/02/06 09:30:50 1.4
+++ SVGFeCompositeElementBridge.java 2001/02/07 10:24:00 1.5
@@ -12,12 +12,6 @@
import java.util.Map;
import java.util.Vector;
-import org.apache.batik.bridge.BridgeContext;
-import org.apache.batik.bridge.BridgeMutationEvent;
-import org.apache.batik.bridge.FilterPrimitiveBridge;
-import org.apache.batik.bridge.IllegalAttributeValueException;
-import org.apache.batik.bridge.MissingAttributeException;
-
import org.apache.batik.gvt.GraphicsNode;
import org.apache.batik.gvt.GraphicsNodeRenderContext;
import org.apache.batik.ext.awt.image.renderable.CompositeRable;
@@ -43,7 +37,7 @@
*
* @author <a href="mailto:Thomas.DeWeeese@Kodak.com">Thomas DeWeese</a>
* @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a>
- * @version $Id: SVGFeCompositeElementBridge.java,v 1.4 2001/02/06 09:30:50 tkormann Exp $
+ * @version $Id: SVGFeCompositeElementBridge.java,v 1.5 2001/02/07 10:24:00 tkormann Exp $
*/
public class SVGFeCompositeElementBridge implements FilterPrimitiveBridge,
SVGConstants {
@@ -76,6 +70,7 @@
GraphicsNodeRenderContext rc =
bridgeContext.getGraphicsNodeRenderContext();
+ DocumentLoader loader = bridgeContext.getDocumentLoader();
// Extract Composite operation
CompositeRule rule = getRule(filterElement);
@@ -133,7 +128,8 @@
filterRegion,
filteredNode,
rc,
- uctx);
+ uctx,
+ loader);
// Now, do the composite.
Filter filter = null;
1.4 +4 -7 xml-batik/sources/org/apache/batik/bridge/SVGFeConvolveMatrixElementBridge.java
Index: SVGFeConvolveMatrixElementBridge.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGFeConvolveMatrixElementBridge.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SVGFeConvolveMatrixElementBridge.java 2001/02/06 09:30:51 1.3
+++ SVGFeConvolveMatrixElementBridge.java 2001/02/07 10:24:00 1.4
@@ -16,11 +16,6 @@
import java.util.Map;
-import org.apache.batik.bridge.BridgeContext;
-import org.apache.batik.bridge.BridgeMutationEvent;
-import org.apache.batik.bridge.FilterPrimitiveBridge;
-import org.apache.batik.bridge.IllegalAttributeValueException;
-
import org.apache.batik.gvt.GraphicsNode;
import org.apache.batik.gvt.GraphicsNodeRenderContext;
import org.apache.batik.ext.awt.image.renderable.Filter;
@@ -44,7 +39,7 @@
* <tt>ConvolveMatrixRable</tt>
*
* @author <a href="mailto:Thomas.DeWeese@Kodak.com">Thomas DeWeese</a>
- * @version $Id: SVGFeConvolveMatrixElementBridge.java,v 1.3 2001/02/06 09:30:51 tkormann Exp $
+ * @version $Id: SVGFeConvolveMatrixElementBridge.java,v 1.4 2001/02/07 10:24:00 tkormann Exp $
*/
public class SVGFeConvolveMatrixElementBridge implements FilterPrimitiveBridge,
SVGConstants {
@@ -72,6 +67,7 @@
Rectangle2D filterRegion,
Map filterMap){
+ DocumentLoader loader = bridgeContext.getDocumentLoader();
// Extract kernel Order (Size)
String attrStr;
attrStr = filterElement.getAttributeNS(null, SVG_ORDER_ATTRIBUTE);
@@ -277,7 +273,8 @@
filterRegion,
filteredNode,
rc,
- uctx);
+ uctx,
+ loader);
PadRable pad;
pad = new PadRable8Bit(in, convolveArea, PadMode.ZERO_PAD);
1.4 +4 -8 xml-batik/sources/org/apache/batik/bridge/SVGFeDiffuseLightingElementBridge.java
Index: SVGFeDiffuseLightingElementBridge.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGFeDiffuseLightingElementBridge.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SVGFeDiffuseLightingElementBridge.java 2001/02/06 09:30:51 1.3
+++ SVGFeDiffuseLightingElementBridge.java 2001/02/07 10:24:01 1.4
@@ -14,12 +14,6 @@
import java.util.Map;
import java.util.StringTokenizer;
-import org.apache.batik.bridge.BridgeContext;
-import org.apache.batik.bridge.BridgeMutationEvent;
-import org.apache.batik.bridge.FilterPrimitiveBridge;
-import org.apache.batik.bridge.IllegalAttributeValueException;
-import org.apache.batik.bridge.MissingAttributeException;
-
import org.apache.batik.gvt.GraphicsNode;
import org.apache.batik.gvt.GraphicsNodeRenderContext;
import org.apache.batik.ext.awt.image.renderable.Light;
@@ -46,7 +40,7 @@
* a concrete <tt>Filter</tt> filter implementation
*
* @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
- * @version $Id: SVGFeDiffuseLightingElementBridge.java,v 1.3 2001/02/06 09:30:51 tkormann Exp $
+ * @version $Id: SVGFeDiffuseLightingElementBridge.java,v 1.4 2001/02/07 10:24:01 tkormann Exp $
*/
public class SVGFeDiffuseLightingElementBridge
implements FilterPrimitiveBridge, SVGConstants {
@@ -79,6 +73,7 @@
GraphicsNodeRenderContext rc =
bridgeContext.getGraphicsNodeRenderContext();
+ DocumentLoader loader = bridgeContext.getDocumentLoader();
// First, extract source
String inAttr = filterElement.getAttributeNS(null, SVG_IN_ATTRIBUTE);
in = CSSUtilities.getFilterSource(filteredNode,
@@ -119,7 +114,8 @@
filterRegion,
filteredNode,
rc,
- uctx);
+ uctx,
+ loader);
// Extract the light color
1.4 +4 -8 xml-batik/sources/org/apache/batik/bridge/SVGFeDisplacementMapElementBridge.java
Index: SVGFeDisplacementMapElementBridge.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGFeDisplacementMapElementBridge.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SVGFeDisplacementMapElementBridge.java 2001/02/06 09:30:51 1.3
+++ SVGFeDisplacementMapElementBridge.java 2001/02/07 10:24:01 1.4
@@ -13,12 +13,6 @@
import java.util.Map;
import java.util.Vector;
-import org.apache.batik.bridge.BridgeContext;
-import org.apache.batik.bridge.BridgeMutationEvent;
-import org.apache.batik.bridge.FilterPrimitiveBridge;
-import org.apache.batik.bridge.IllegalAttributeValueException;
-import org.apache.batik.bridge.MissingAttributeException;
-
import org.apache.batik.gvt.GraphicsNode;
import org.apache.batik.gvt.GraphicsNodeRenderContext;
import org.apache.batik.ext.awt.image.renderable.ARGBChannel;
@@ -44,7 +38,7 @@
*
* @author <a href="mailto:sheng.pei@eng.sun.com">Sheng Pei</a>
* @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a>
- * @version $Id: SVGFeDisplacementMapElementBridge.java,v 1.3 2001/02/06 09:30:51 tkormann Exp $
+ * @version $Id: SVGFeDisplacementMapElementBridge.java,v 1.4 2001/02/07 10:24:01 tkormann Exp $
*/
public class SVGFeDisplacementMapElementBridge implements FilterPrimitiveBridge,
SVGConstants {
@@ -75,6 +69,7 @@
GraphicsNodeRenderContext rc =
bridgeContext.getGraphicsNodeRenderContext();
+ DocumentLoader loader = bridgeContext.getDocumentLoader();
//
// Extract standard deviation
//
@@ -152,7 +147,8 @@
filterRegion,
filteredNode,
rc,
- uctx);
+ uctx,
+ loader);
PadRable pad = new PadRable8Bit(in, dispArea, PadMode.ZERO_PAD);
1.4 +4 -6 xml-batik/sources/org/apache/batik/bridge/SVGFeFloodElementBridge.java
Index: SVGFeFloodElementBridge.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGFeFloodElementBridge.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SVGFeFloodElementBridge.java 2001/02/06 09:30:52 1.3
+++ SVGFeFloodElementBridge.java 2001/02/07 10:24:01 1.4
@@ -14,10 +14,6 @@
import java.util.Map;
import java.util.StringTokenizer;
-import org.apache.batik.bridge.BridgeContext;
-import org.apache.batik.bridge.BridgeMutationEvent;
-import org.apache.batik.bridge.FilterPrimitiveBridge;
-
import org.apache.batik.gvt.GraphicsNode;
import org.apache.batik.gvt.GraphicsNodeRenderContext;
import org.apache.batik.ext.awt.image.renderable.Filter;
@@ -48,7 +44,7 @@
*
* @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
* @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a>
- * @version $Id: SVGFeFloodElementBridge.java,v 1.3 2001/02/06 09:30:52 tkormann Exp $
+ * @version $Id: SVGFeFloodElementBridge.java,v 1.4 2001/02/07 10:24:01 tkormann Exp $
*/
public class SVGFeFloodElementBridge implements FilterPrimitiveBridge,
SVGConstants {
@@ -80,6 +76,7 @@
GraphicsNodeRenderContext rc =
bridgeContext.getGraphicsNodeRenderContext();
+ DocumentLoader loader = bridgeContext.getDocumentLoader();
// Extract flood color
CSSStyleDeclaration decl
= CSSUtilities.getComputedStyle(filterElement);
@@ -99,7 +96,8 @@
filterRegion,
filteredNode,
rc,
- uctx);
+ uctx,
+ loader);
// First, create the FloodRable that maps the input filter node
FloodRable flood = new FloodRable8Bit(floodRegion, floodColor);
1.4 +5 -7 xml-batik/sources/org/apache/batik/bridge/SVGFeGaussianBlurElementBridge.java
Index: SVGFeGaussianBlurElementBridge.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGFeGaussianBlurElementBridge.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SVGFeGaussianBlurElementBridge.java 2001/02/06 09:30:52 1.3
+++ SVGFeGaussianBlurElementBridge.java 2001/02/07 10:24:01 1.4
@@ -11,11 +11,6 @@
import java.awt.geom.Rectangle2D;
import java.util.Map;
-import org.apache.batik.bridge.BridgeContext;
-import org.apache.batik.bridge.BridgeMutationEvent;
-import org.apache.batik.bridge.FilterPrimitiveBridge;
-import org.apache.batik.bridge.IllegalAttributeValueException;
-
import org.apache.batik.gvt.GraphicsNode;
import org.apache.batik.gvt.GraphicsNodeRenderContext;
import org.apache.batik.ext.awt.image.renderable.Filter;
@@ -40,7 +35,7 @@
*
* @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
* @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a>
- * @version $Id: SVGFeGaussianBlurElementBridge.java,v 1.3 2001/02/06 09:30:52 tkormann Exp $
+ * @version $Id: SVGFeGaussianBlurElementBridge.java,v 1.4 2001/02/07 10:24:01 tkormann Exp $
*/
public class SVGFeGaussianBlurElementBridge implements FilterPrimitiveBridge,
SVGConstants {
@@ -71,6 +66,8 @@
GraphicsNodeRenderContext rc =
bridgeContext.getGraphicsNodeRenderContext();
+ DocumentLoader loader = bridgeContext.getDocumentLoader();
+
// Extract standard deviation
String stdDeviation =
filterElement.getAttributeNS(null, ATTR_STD_DEVIATION);
@@ -147,7 +144,8 @@
filterRegion,
filteredNode,
rc,
- uctx);
+ uctx,
+ loader);
PadRable pad = new PadRable8Bit(in, blurArea, PadMode.ZERO_PAD);
1.4 +3 -7 xml-batik/sources/org/apache/batik/bridge/SVGFeImageElementBridge.java
Index: SVGFeImageElementBridge.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGFeImageElementBridge.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SVGFeImageElementBridge.java 2001/02/06 09:30:53 1.3
+++ SVGFeImageElementBridge.java 2001/02/07 10:24:01 1.4
@@ -17,12 +17,6 @@
import java.util.Map;
import java.util.Vector;
-import org.apache.batik.bridge.BridgeContext;
-import org.apache.batik.bridge.BridgeMutationEvent;
-import org.apache.batik.bridge.FilterPrimitiveBridge;
-import org.apache.batik.bridge.IllegalAttributeValueException;
-import org.apache.batik.bridge.MissingAttributeException;
-
import org.apache.batik.dom.svg.SVGOMDocument;
import org.apache.batik.dom.util.XLinkSupport;
@@ -86,6 +80,7 @@
GraphicsNodeRenderContext rc =
bridgeContext.getGraphicsNodeRenderContext();
+ DocumentLoader loader = bridgeContext.getDocumentLoader();
SVGElement svgElement = (SVGElement) filterElement;
@@ -113,7 +108,8 @@
filterRegion,
filteredNode,
rc,
- uctx);
+ uctx,
+ loader);
Filter filter = null;
if (uriStr.startsWith(PROTOCOL_DATA)) {
1.6 +4 -7 xml-batik/sources/org/apache/batik/bridge/SVGFeMergeElementBridge.java
Index: SVGFeMergeElementBridge.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGFeMergeElementBridge.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SVGFeMergeElementBridge.java 2001/02/06 09:30:53 1.5
+++ SVGFeMergeElementBridge.java 2001/02/07 10:24:01 1.6
@@ -14,11 +14,6 @@
import java.util.LinkedList;
import java.util.List;
-import org.apache.batik.bridge.BridgeContext;
-import org.apache.batik.bridge.BridgeMutationEvent;
-import org.apache.batik.bridge.FilterPrimitiveBridge;
-import org.apache.batik.bridge.IllegalAttributeValueException;
-
import org.apache.batik.gvt.GraphicsNode;
import org.apache.batik.gvt.GraphicsNodeRenderContext;
import org.apache.batik.ext.awt.image.renderable.CompositeRable;
@@ -43,7 +38,7 @@
*
* @author <a href="mailto:Thomas.DeWeeese@Kodak.com">Thomas DeWeese</a>
* @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a>
- * @version $Id: SVGFeMergeElementBridge.java,v 1.5 2001/02/06 09:30:53 tkormann Exp $
+ * @version $Id: SVGFeMergeElementBridge.java,v 1.6 2001/02/07 10:24:01 tkormann Exp $
*/
public class SVGFeMergeElementBridge implements FilterPrimitiveBridge,
SVGConstants {
@@ -74,6 +69,7 @@
GraphicsNodeRenderContext rc =
bridgeContext.getGraphicsNodeRenderContext();
+ DocumentLoader loader = bridgeContext.getDocumentLoader();
// Extract sources, they are defined in the filterElement's children.
List srcs = new LinkedList();
@@ -136,7 +132,8 @@
filterRegion,
filteredNode,
rc,
- uctx);
+ uctx,
+ loader);
Filter filter = null;
filter = new CompositeRable8Bit(srcs, CompositeRule.OVER, true);
1.4 +4 -7 xml-batik/sources/org/apache/batik/bridge/SVGFeMorphologyElementBridge.java
Index: SVGFeMorphologyElementBridge.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGFeMorphologyElementBridge.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SVGFeMorphologyElementBridge.java 2001/02/06 09:30:53 1.3
+++ SVGFeMorphologyElementBridge.java 2001/02/07 10:24:01 1.4
@@ -11,11 +11,6 @@
import java.awt.geom.Rectangle2D;
import java.util.Map;
-import org.apache.batik.bridge.BridgeContext;
-import org.apache.batik.bridge.BridgeMutationEvent;
-import org.apache.batik.bridge.FilterPrimitiveBridge;
-import org.apache.batik.bridge.IllegalAttributeValueException;
-
import org.apache.batik.gvt.GraphicsNode;
import org.apache.batik.gvt.GraphicsNodeRenderContext;
import org.apache.batik.ext.awt.image.renderable.Filter;
@@ -40,7 +35,7 @@
*
* @author <a href="mailto:sheng.pei@eng.sun.com">Sheng Pei</a>
* @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a>
- * @version $Id: SVGFeMorphologyElementBridge.java,v 1.3 2001/02/06 09:30:53 tkormann Exp $
+ * @version $Id: SVGFeMorphologyElementBridge.java,v 1.4 2001/02/07 10:24:01 tkormann Exp $
*/
public class SVGFeMorphologyElementBridge implements FilterPrimitiveBridge,
SVGConstants {
@@ -71,6 +66,7 @@
GraphicsNodeRenderContext rc =
bridgeContext.getGraphicsNodeRenderContext();
+ DocumentLoader loader = bridgeContext.getDocumentLoader();
// Extract the radius (or radii) for the operation.
String radius = filterElement.getAttributeNS(null, ATTR_RADIUS);
@@ -160,7 +156,8 @@
filterRegion,
filteredNode,
rc,
- uctx);
+ uctx,
+ loader);
PadRable pad = new PadRable8Bit(in,
primitiveRegion,
1.4 +5 -6 xml-batik/sources/org/apache/batik/bridge/SVGFeOffsetElementBridge.java
Index: SVGFeOffsetElementBridge.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGFeOffsetElementBridge.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SVGFeOffsetElementBridge.java 2001/02/06 09:30:54 1.3
+++ SVGFeOffsetElementBridge.java 2001/02/07 10:24:01 1.4
@@ -15,10 +15,6 @@
import java.util.Map;
import java.util.StringTokenizer;
-import org.apache.batik.bridge.BridgeContext;
-import org.apache.batik.bridge.BridgeMutationEvent;
-import org.apache.batik.bridge.FilterPrimitiveBridge;
-
import org.apache.batik.gvt.GraphicsNode;
import org.apache.batik.gvt.GraphicsNodeRenderContext;
import org.apache.batik.ext.awt.image.renderable.AffineRable;
@@ -50,7 +46,7 @@
*
* @author <a href="mailto:dean@w3.org">Dean Jackson</a>
* @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a>
- * @version $Id: SVGFeOffsetElementBridge.java,v 1.3 2001/02/06 09:30:54 tkormann Exp $
+ * @version $Id: SVGFeOffsetElementBridge.java,v 1.4 2001/02/07 10:24:01 tkormann Exp $
*/
public class SVGFeOffsetElementBridge implements FilterPrimitiveBridge,
SVGConstants {
@@ -82,6 +78,8 @@
GraphicsNodeRenderContext rc =
bridgeContext.getGraphicsNodeRenderContext();
+ DocumentLoader loader = bridgeContext.getDocumentLoader();
+
// parse the dx attribute
String dxAttr = filterElement.getAttributeNS(null, SVG_DX_ATTRIBUTE);
float dx = 0; // default is 0
@@ -138,7 +136,8 @@
filterRegion,
filteredNode,
rc,
- uctx);
+ uctx,
+ loader);
PadRable pad = new PadRable8Bit(in,
offsetArea,
1.4 +4 -8 xml-batik/sources/org/apache/batik/bridge/SVGFeSpecularLightingElementBridge.java
Index: SVGFeSpecularLightingElementBridge.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGFeSpecularLightingElementBridge.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SVGFeSpecularLightingElementBridge.java 2001/02/06 09:30:54 1.3
+++ SVGFeSpecularLightingElementBridge.java 2001/02/07 10:24:01 1.4
@@ -14,12 +14,6 @@
import java.util.Map;
import java.util.StringTokenizer;
-import org.apache.batik.bridge.BridgeContext;
-import org.apache.batik.bridge.BridgeMutationEvent;
-import org.apache.batik.bridge.FilterPrimitiveBridge;
-import org.apache.batik.bridge.IllegalAttributeValueException;
-import org.apache.batik.bridge.MissingAttributeException;
-
import org.apache.batik.gvt.GraphicsNode;
import org.apache.batik.gvt.GraphicsNodeRenderContext;
import org.apache.batik.ext.awt.image.renderable.Light;
@@ -46,7 +40,7 @@
* a concrete <tt>Filter</tt> filter implementation
*
* @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
- * @version $Id: SVGFeSpecularLightingElementBridge.java,v 1.3 2001/02/06 09:30:54 tkormann Exp $
+ * @version $Id: SVGFeSpecularLightingElementBridge.java,v 1.4 2001/02/07 10:24:01 tkormann Exp $
*/
public class SVGFeSpecularLightingElementBridge
implements FilterPrimitiveBridge, SVGConstants {
@@ -78,6 +72,7 @@
GraphicsNodeRenderContext rc =
bridgeContext.getGraphicsNodeRenderContext();
+ DocumentLoader loader = bridgeContext.getDocumentLoader();
// First, extract source
String inAttr = filterElement.getAttributeNS(null, SVG_IN_ATTRIBUTE);
@@ -119,7 +114,8 @@
filterRegion,
filteredNode,
rc,
- uctx);
+ uctx,
+ loader);
// Extract the light color
1.5 +4 -6 xml-batik/sources/org/apache/batik/bridge/SVGFeTileElementBridge.java
Index: SVGFeTileElementBridge.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGFeTileElementBridge.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SVGFeTileElementBridge.java 2001/02/06 09:30:54 1.4
+++ SVGFeTileElementBridge.java 2001/02/07 10:24:01 1.5
@@ -11,10 +11,6 @@
import java.awt.geom.Rectangle2D;
import java.util.Map;
-import org.apache.batik.bridge.BridgeContext;
-import org.apache.batik.bridge.BridgeMutationEvent;
-import org.apache.batik.bridge.FilterPrimitiveBridge;
-
import org.apache.batik.gvt.GraphicsNode;
import org.apache.batik.gvt.GraphicsNodeRenderContext;
import org.apache.batik.ext.awt.image.renderable.Filter;
@@ -35,7 +31,7 @@
*
* @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
* @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a>
- * @version $Id: SVGFeTileElementBridge.java,v 1.4 2001/02/06 09:30:54 tkormann Exp $
+ * @version $Id: SVGFeTileElementBridge.java,v 1.5 2001/02/07 10:24:01 tkormann Exp $
*/
public class SVGFeTileElementBridge implements FilterPrimitiveBridge,
SVGConstants {
@@ -66,6 +62,7 @@
GraphicsNodeRenderContext rc =
bridgeContext.getGraphicsNodeRenderContext();
+ DocumentLoader loader = bridgeContext.getDocumentLoader();
//
// Tile region is defined by the filter region
@@ -89,7 +86,8 @@
filterRegion,
filteredNode,
rc,
- uctx);
+ uctx,
+ loader);
//
// Get the tile source
1.4 +6 -9 xml-batik/sources/org/apache/batik/bridge/SVGFeTurbulenceElementBridge.java
Index: SVGFeTurbulenceElementBridge.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGFeTurbulenceElementBridge.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SVGFeTurbulenceElementBridge.java 2001/02/06 09:30:55 1.3
+++ SVGFeTurbulenceElementBridge.java 2001/02/07 10:24:01 1.4
@@ -14,11 +14,6 @@
import java.awt.image.renderable.RenderContext;
import java.util.Map;
-import org.apache.batik.bridge.BridgeContext;
-import org.apache.batik.bridge.BridgeMutationEvent;
-import org.apache.batik.bridge.FilterPrimitiveBridge;
-import org.apache.batik.bridge.IllegalAttributeValueException;
-
import org.apache.batik.gvt.GraphicsNode;
import org.apache.batik.gvt.GraphicsNodeRenderContext;
import org.apache.batik.ext.awt.image.renderable.Clip;
@@ -44,7 +39,7 @@
*
* @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
* @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a>
- * @version $Id: SVGFeTurbulenceElementBridge.java,v 1.3 2001/02/06 09:30:55 tkormann Exp $
+ * @version $Id: SVGFeTurbulenceElementBridge.java,v 1.4 2001/02/07 10:24:01 tkormann Exp $
*/
public class SVGFeTurbulenceElementBridge implements FilterPrimitiveBridge,
SVGConstants {
@@ -72,8 +67,9 @@
Rectangle2D filterRegion,
Map filterMap){
- GraphicsNodeRenderContext rc =
- bridgeContext.getGraphicsNodeRenderContext();
+ GraphicsNodeRenderContext rc =
+ bridgeContext.getGraphicsNodeRenderContext();
+ DocumentLoader loader = bridgeContext.getDocumentLoader();
// parse the baseFrequency attribute
String baseFrequencyAttr =
@@ -161,7 +157,8 @@
filterRegion,
filteredNode,
rc,
- uctx);
+ uctx,
+ loader);
TurbulenceRable turbulenceRable
= new TurbulenceRable8Bit(turbulenceRegion);
1.5 +75 -43 xml-batik/sources/org/apache/batik/bridge/SVGFilterElementBridge.java
Index: SVGFilterElementBridge.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGFilterElementBridge.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SVGFilterElementBridge.java 2001/02/07 09:38:27 1.4
+++ SVGFilterElementBridge.java 2001/02/07 10:24:01 1.5
@@ -10,41 +10,41 @@
import java.awt.Shape;
import java.awt.geom.Rectangle2D;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
-
-import org.apache.batik.bridge.Bridge;
-import org.apache.batik.bridge.BridgeContext;
-import org.apache.batik.bridge.BridgeMutationEvent;
-import org.apache.batik.bridge.FilterBridge;
-import org.apache.batik.bridge.FilterPrimitiveBridge;
-import org.apache.batik.bridge.IllegalAttributeValueException;
-
-import org.apache.batik.gvt.GraphicsNode;
-import org.apache.batik.gvt.GraphicsNodeRenderContext;
+import org.apache.batik.bridge.resources.Messages;
+import org.apache.batik.dom.svg.SVGOMDocument;
+import org.apache.batik.dom.util.XLinkSupport;
import org.apache.batik.ext.awt.image.renderable.Filter;
+import org.apache.batik.ext.awt.image.renderable.FilterChainRable8Bit;
import org.apache.batik.ext.awt.image.renderable.FilterChainRable;
+import org.apache.batik.gvt.GraphicsNode;
+import org.apache.batik.gvt.GraphicsNodeRenderContext;
import org.apache.batik.gvt.filter.GraphicsNodeRable;
import org.apache.batik.gvt.filter.GraphicsNodeRableFactory;
-
-import org.apache.batik.bridge.resources.Messages;
-import org.apache.batik.ext.awt.image.renderable.FilterChainRable8Bit;
-
import org.apache.batik.util.SVGConstants;
import org.apache.batik.util.UnitProcessor;
-
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.css.CSSStyleDeclaration;
+import org.w3c.dom.svg.SVGDocument;
+import org.xml.sax.SAXException;
/**
* This class bridges an SVG <tt>filter</tt> element with a concrete
* <tt>Filter</tt>.
*
* @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
- * @version $Id: SVGFilterElementBridge.java,v 1.4 2001/02/07 09:38:27 tkormann Exp $
+ * @version $Id: SVGFilterElementBridge.java,v 1.5 2001/02/07 10:24:01 tkormann Exp $
*/
public class SVGFilterElementBridge implements FilterBridge, SVGConstants {
@@ -144,37 +144,69 @@
filterNodeMap.put(VALUE_SOURCE_GRAPHIC, sourceGraphic);
}
- for (Node child=filterElement.getFirstChild();
+ Element e = filterElement;
+ List refs = new LinkedList();
+ boolean hasPrimitives = false;
+ for (;;) {
+ for (Node child=e.getFirstChild();
child != null;
child = child.getNextSibling()) {
- if (child.getNodeType() != Node.ELEMENT_NODE) {
- continue; // skip node that is not an Element
- }
- Element elt = (Element)child;
- Bridge bridge = bridgeContext.getBridge(elt);
- if (bridge == null || !(bridge instanceof FilterPrimitiveBridge)) {
- continue;
- /*
- throw new IllegalAttributeValueException(
- Messages.formatMessage("filter.subelement.illegal",
- new Object[] {elt.getLocalName()}));*/
- }
- FilterPrimitiveBridge filterBridge =
- (FilterPrimitiveBridge)bridge;
- Filter filterNode = filterBridge.create(filteredNode,
- bridgeContext,
- elt,
- filteredElement,
- in,
- filterRegion,
- filterNodeMap);
- if (filterNode == null) {
- throw new IllegalAttributeValueException(
- Messages.formatMessage("filter.subelement.invalid",
- new Object[] {elt.getLocalName()}));
+ if (child.getNodeType() != Node.ELEMENT_NODE) {
+ continue; // skip node that is not an Element
+ }
+ hasPrimitives = true;
+ Element elt = (Element)child;
+ Bridge bridge = bridgeContext.getBridge(elt);
+ if (bridge == null || !(bridge instanceof FilterPrimitiveBridge)) {
+ continue;
+ }
+ FilterPrimitiveBridge filterBridge =
+ (FilterPrimitiveBridge)bridge;
+ Filter filterNode = filterBridge.create(filteredNode,
+ bridgeContext,
+ elt,
+ filteredElement,
+ in,
+ filterRegion,
+ filterNodeMap);
+ if (filterNode == null) {
+ throw new IllegalAttributeValueException(
+ Messages.formatMessage("filter.subelement.invalid",
+ new Object[] {elt.getLocalName()}));
+ }
+ in = filterNode;
+ }
+ if (hasPrimitives) {
+ break; // exit if filter primitives have been found
+ }
+ String uriStr = XLinkSupport.getXLinkHref(e);
+ if (uriStr.length() == 0) {
+ break; // exit if no more xlink:href
+ }
+ SVGDocument svgDoc = (SVGDocument)e.getOwnerDocument();
+ URL baseURL = ((SVGOMDocument)svgDoc).getURLObject();
+ try {
+ URL url = new URL(baseURL, uriStr);
+ Iterator iter = refs.iterator();
+ while (iter.hasNext()) {
+ URL urlTmp = (URL)iter.next();
+ if (urlTmp.sameFile(url) &&
+ urlTmp.getRef().equals(url.getRef())) {
+ throw new IllegalAttributeValueException(
+ "circular reference on "+e);
+ }
+ }
+ URIResolver resolver = new URIResolver(svgDoc, loader);
+ e = resolver.getElement(url.toString());
+ refs.add(url);
+ } catch(MalformedURLException ex) {
+ throw new IllegalAttributeValueException("bad url on "+uriStr);
+ } catch(SAXException ex) {
+ throw new IllegalAttributeValueException("bad document on "+uriStr);
+ } catch(IOException ex) {
+ throw new IllegalAttributeValueException("I/O error on "+uriStr);
}
- in = filterNode;
}
// Set the source on the filter node
1.5 +7 -3 xml-batik/sources/org/apache/batik/bridge/SVGUtilities.java
Index: SVGUtilities.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGUtilities.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SVGUtilities.java 2001/02/07 09:38:28 1.4
+++ SVGUtilities.java 2001/02/07 10:24:01 1.5
@@ -50,7 +50,7 @@
*
* @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
* @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a>
- * @version $Id: SVGUtilities.java,v 1.4 2001/02/07 09:38:28 tkormann Exp $
+ * @version $Id: SVGUtilities.java,v 1.5 2001/02/07 10:24:01 tkormann Exp $
*/
public class SVGUtilities implements SVGConstants {
/**
@@ -956,7 +956,8 @@
Rectangle2D filterRegion,
GraphicsNode node,
GraphicsNodeRenderContext rc,
- UnitProcessor.Context uctx) {
+ UnitProcessor.Context uctx,
+ DocumentLoader loader) {
// Get coordinate system from the parent node.
Node parentNode = filterPrimitiveElement.getParentNode();
@@ -964,7 +965,10 @@
if((parentNode != null) &&
(parentNode.getNodeType() == parentNode.ELEMENT_NODE)) {
Element parent = (Element) parentNode;
- units = parent.getAttributeNS(null, SVG_PRIMITIVE_UNITS_ATTRIBUTE);
+ units = getChainableAttributeNS(parent,
+ null,
+ SVG_PRIMITIVE_UNITS_ATTRIBUTE,
+ loader);
}
if(units.length() == 0){
units = SVG_USER_SPACE_ON_USE_VALUE;