KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jfree > xml > writer > coretypes > BasicStrokeWriteHandler


1 /* ========================================================================
2  * JCommon : a free general purpose class library for the Java(tm) platform
3  * ========================================================================
4  *
5  * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors.
6  *
7  * Project Info: http://www.jfree.org/jcommon/index.html
8  *
9  * This library is free software; you can redistribute it and/or modify it
10  * under the terms of the GNU Lesser General Public License as published by
11  * the Free Software Foundation; either version 2.1 of the License, or
12  * (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful, but
15  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
17  * License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
22  * USA.
23  *
24  * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
25  * in the United States and other countries.]
26  *
27  * ----------------------------
28  * BasicStrokeWriteHandler.java
29  * ----------------------------
30  * (C)opyright 2003-2005, by Thomas Morgner and Contributors.
31  *
32  * Original Author: Thomas Morgner;
33  * Contributor(s): David Gilbert (for Object Refinery Limited);
34  *
35  * $Id: BasicStrokeWriteHandler.java,v 1.3 2005/10/18 13:35:21 mungady Exp $
36  *
37  * Changes
38  * -------
39  * 12-Nov-2003 : Initial version (TM);
40  * 25-Nov-2003 : Updated header (DG);
41  *
42  */

43
44 package org.jfree.xml.writer.coretypes;
45
46 import java.awt.BasicStroke JavaDoc;
47 import java.io.IOException JavaDoc;
48
49 import org.jfree.xml.writer.AbstractXmlWriteHandler;
50 import org.jfree.xml.writer.AttributeList;
51 import org.jfree.xml.writer.XMLWriter;
52 import org.jfree.xml.writer.XMLWriterException;
53
54 /**
55  * A handler that can write the XML description for a {@link BasicStroke} object.
56  */

57 public class BasicStrokeWriteHandler extends AbstractXmlWriteHandler {
58
59     /**
60      * Creates a new handler.
61      */

62     public BasicStrokeWriteHandler() {
63         super();
64     }
65
66     /**
67      * Performs the writing of a single object.
68      *
69      * @param tagName the tag name.
70      * @param object the object ({@link BasicStroke} expected).
71      * @param writer the writer.
72      * @param mPlexAttribute ??
73      * @param mPlexValue ??
74      *
75      * @throws IOException if there is an I/O problem.
76      * @throws XMLWriterException if there is a problem with the writer.
77      */

78     public void write(final String JavaDoc tagName, final Object JavaDoc object, final XMLWriter writer,
79                       final String JavaDoc mPlexAttribute, final String JavaDoc mPlexValue)
80         throws IOException JavaDoc, XMLWriterException {
81         final BasicStroke JavaDoc stroke = (BasicStroke JavaDoc) object;
82         final float[] dashArray = stroke.getDashArray();
83         final float dashPhase = stroke.getDashPhase();
84         final int endCap = stroke.getEndCap();
85         final int lineJoin = stroke.getLineJoin();
86         final float lineWidth = stroke.getLineWidth();
87         final float miterLimit = stroke.getMiterLimit();
88         final AttributeList attribs = new AttributeList();
89         if (mPlexAttribute != null) {
90             attribs.setAttribute(mPlexAttribute, mPlexValue);
91         }
92         attribs.setAttribute("type", "basic");
93         attribs.setAttribute("endCap", String.valueOf(endCap));
94         attribs.setAttribute("lineJoin", String.valueOf(lineJoin));
95         attribs.setAttribute("lineWidth", String.valueOf(lineWidth));
96         attribs.setAttribute("miterLimit", String.valueOf(miterLimit));
97         if (dashArray != null) {
98             attribs.setAttribute("dashArray", toString(dashArray));
99             attribs.setAttribute("dashPhase", String.valueOf(dashPhase));
100         }
101         writer.writeTag(tagName, attribs, true);
102     }
103
104     /**
105      * A utility method that converts a dash array (from a {@link BasicStroke} object) to
106      * a {@link String}.
107      *
108      * @param dashArray the dash array.
109      *
110      * @return a {@link String} representing the dash array.
111      */

112     private String JavaDoc toString(final float[] dashArray) {
113         final StringBuffer JavaDoc buffer = new StringBuffer JavaDoc();
114         for (int i = 0; i < dashArray.length; i++) {
115             final float f = dashArray[i];
116             if (i != 0) {
117                 buffer.append(',');
118             }
119             buffer.append(f);
120         }
121         return buffer.toString();
122     }
123     
124 }
125
Popular Tags