1 42 43 package org.jfree.xml.parser.coretypes; 44 45 import java.awt.BasicStroke ; 46 import java.util.StringTokenizer ; 47 48 import org.jfree.xml.parser.AbstractXmlReadHandler; 49 import org.xml.sax.Attributes ; 50 import org.xml.sax.SAXException ; 51 52 57 public class BasicStrokeReadHandler extends AbstractXmlReadHandler { 58 59 60 private BasicStroke stroke; 61 62 65 public BasicStrokeReadHandler() { 66 super(); 67 } 68 69 77 protected void startParsing(final Attributes attrs) throws SAXException { 78 final int endCap = Integer.parseInt(attrs.getValue("endCap")); 79 final int lineJoin = Integer.parseInt(attrs.getValue("lineJoin")); 80 final float lineWidth = Float.parseFloat(attrs.getValue("lineWidth")); 81 final float miterLimit = Float.parseFloat(attrs.getValue("miterLimit")); 82 final String dashArrayAttrib = attrs.getValue("dashArray"); 83 if (dashArrayAttrib != null) { 84 final float[] dashArray = parseDashArray(dashArrayAttrib); 85 final float dashPhase = Float.parseFloat(attrs.getValue("dashPhase")); 86 this.stroke = new BasicStroke ( 87 lineWidth, endCap, lineJoin, miterLimit, dashArray, dashPhase 88 ); 89 } 90 else { 91 this.stroke = new BasicStroke (lineWidth, endCap, lineJoin, miterLimit); 92 } 93 } 94 95 102 private float[] parseDashArray(final String string) { 103 final StringTokenizer tokenizer = new StringTokenizer (string, ","); 104 final float[] retVal = new float[tokenizer.countTokens()]; 105 for (int i = 0; i < retVal.length; i++) { 106 retVal[i] = Float.parseFloat(tokenizer.nextToken()); 107 } 108 return retVal; 109 } 110 111 116 public Object getObject() { 117 return this.stroke; 118 } 119 120 } 121 | Popular Tags |