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 vh...@apache.org on 2001/02/17 01:53:37 UTC

cvs commit: xml-batik/sources/org/apache/batik/bridge SVGMarkerElementBridge.java SVGPatternElementBridge.java

vhardy      01/02/16 16:53:36

  Modified:    sources/org/apache/batik/bridge SVGMarkerElementBridge.java
                        SVGPatternElementBridge.java
  Log:
  a. Pattern and Marker bridges now use convertOverflow
  b. Marker bridge now uses convertClip to handle the overflow property.
  
  Revision  Changes    Path
  1.4       +22 -19    xml-batik/sources/org/apache/batik/bridge/SVGMarkerElementBridge.java
  
  Index: SVGMarkerElementBridge.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGMarkerElementBridge.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- SVGMarkerElementBridge.java	2001/02/06 09:30:57	1.3
  +++ SVGMarkerElementBridge.java	2001/02/17 00:53:32	1.4
  @@ -40,7 +40,7 @@
    * Turns a marker element into a <tt>Marker</tt> object
    *
    * @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
  - * @version $Id: SVGMarkerElementBridge.java,v 1.3 2001/02/06 09:30:57 tkormann Exp $
  + * @version $Id: SVGMarkerElementBridge.java,v 1.4 2001/02/17 00:53:32 vhardy Exp $
    */
   public class SVGMarkerElementBridge implements MarkerBridge {
       /**
  @@ -226,23 +226,12 @@
           }
   
           // Extract the overflow property
  -        CSSPrimitiveValue vbOverflow =
  -            (CSSPrimitiveValue)cssDecl.getPropertyCSSValue(CSS_OVERFLOW_PROPERTY);
  +        boolean overflowIsHidden = CSSUtilities.convertOverflow(markerElement);
   
  -        String overFlowValue = vbOverflow.getStringValue();
  -        if(overFlowValue.length() == 0){
  -            overFlowValue = CSS_HIDDEN_VALUE;
  -        }
  -
  -        boolean overflow = true;
  -        if(CSS_HIDDEN_VALUE.equals(overFlowValue)){
  -            overflow = false;
  -        }
  -
           // Extract the marker units
           s = inst.getAttributeNS(null,
  -                                      SVG_MARKER_UNITS_ATTRIBUTE);
  -
  +                                SVG_MARKER_UNITS_ATTRIBUTE);
  +        
           if (s.length() == 0) {
               s = SVG_DEFAULT_VALUE_MARKER_MARKER_UNITS;
           }
  @@ -303,10 +292,24 @@
           // Set the markerContentNode's clipping area
           // depending on the overflow property
           //
  -        if(overflow == false){
  -            Rectangle2D markerClip
  -                = new Rectangle2D.Float(0, 0, strokeWidth*markerWidth,
  -                                        strokeWidth*markerHeight);
  +        if(overflowIsHidden == true){
  +            float[] offsets = CSSUtilities.convertClip(markerElement);
  +            Rectangle2D markerClip = null;
  +            if(offsets == null){ // auto
  +                markerClip
  +                    = new Rectangle2D.Float(0, 0, strokeWidth*markerWidth,
  +                                            strokeWidth*markerHeight);
  +            }
  +            else{
  +                // offsets[0] = top
  +                // offsets[1] = right
  +                // offsets[2] = bottom
  +                // offsets[3] = left
  +                markerClip = new Rectangle2D.Float(offsets[3],
  +                                                    offsets[0],
  +                                                    strokeWidth*markerWidth - offsets[1],
  +                                                    strokeWidth*markerHeight - offsets[2]);
  +            }
   
               CompositeGraphicsNode newMarkerContentNode
                   = new CompositeGraphicsNode();
  
  
  
  1.14      +5 -15     xml-batik/sources/org/apache/batik/bridge/SVGPatternElementBridge.java
  
  Index: SVGPatternElementBridge.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGPatternElementBridge.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- SVGPatternElementBridge.java	2001/02/16 16:42:18	1.13
  +++ SVGPatternElementBridge.java	2001/02/17 00:53:33	1.14
  @@ -47,7 +47,7 @@
    * a <tt>PatternPaint</tt>
    *
    * @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
  - * @version $Id: SVGPatternElementBridge.java,v 1.13 2001/02/16 16:42:18 tkormann Exp $
  + * @version $Id: SVGPatternElementBridge.java,v 1.14 2001/02/17 00:53:33 vhardy Exp $
    */
   public class SVGPatternElementBridge implements PaintBridge, SVGConstants {
   
  @@ -189,22 +189,12 @@
               patternTransform = new AffineTransform();
           }
   
  -        // Get the overflow property on the pattern element
           CSSStyleDeclaration cssDecl
               = CSSUtilities.getComputedStyle(paintElement);
  -
  -        CSSPrimitiveValue vbOverflow =
  -            (CSSPrimitiveValue)cssDecl.getPropertyCSSValue(CSS_OVERFLOW_PROPERTY);
   
  -        String overFlowValue = vbOverflow.getStringValue();
  -        if(overFlowValue.length() == 0){
  -            overFlowValue = CSS_HIDDEN_VALUE;
  -        }
  +        // Get the overflow property on the pattern element
  +        boolean overflowIsHidden = CSSUtilities.convertOverflow(paintElement);
   
  -        boolean overflow = true;
  -        if(CSS_HIDDEN_VALUE.equals(overFlowValue)){
  -            overflow = false;
  -        }
   
           // Get pattern region. This is from the paintedElement, as
           // percentages are from the referencing element.
  @@ -265,7 +255,7 @@
           AffineTransform nodeTransform = null;
           if(hasViewBox){
               nodeTransform = preserveAspectRatioTransform;
  -            if(!overflow){
  +            if(overflowIsHidden){
                   // Need to do clipping
                   CompositeGraphicsNode newPatternContentNode
                       = new CompositeGraphicsNode();
  @@ -321,7 +311,7 @@
                                          rc,
                                          nodeTransform,
                                          patternRegion,
  -                                       overflow,
  +                                       !overflowIsHidden,
                                          patternTransform);
   
           return paint;