1 42 43 package org.jfree.xml.writer.coretypes; 44 45 import java.awt.Color ; 46 import java.io.IOException ; 47 48 import org.jfree.xml.writer.AbstractXmlWriteHandler; 49 import org.jfree.xml.writer.AttributeList; 50 import org.jfree.xml.writer.XMLWriter; 51 import org.jfree.xml.writer.XMLWriterException; 52 53 56 public class ColorWriteHandler extends AbstractXmlWriteHandler { 57 58 61 public ColorWriteHandler() { 62 super(); 63 } 64 65 77 public void write(final String tagName, final Object object, final XMLWriter writer, 78 final String mPlexAttribute, final String mPlexValue) 79 throws IOException , XMLWriterException { 80 final Color color = (Color ) object; 81 final AttributeList attribs = new AttributeList(); 82 if (mPlexAttribute != null) { 83 attribs.setAttribute(mPlexAttribute, mPlexValue); 84 } 85 attribs.setAttribute("value", encodeColor(color)); 86 if (color.getAlpha() != 255) { 87 attribs.setAttribute("alpha", String.valueOf(color.getAlpha())); 88 } 89 writer.writeTag(tagName, attribs, true); 90 } 91 92 private String encodeColor(final Color color) { 93 return "#" + encodeInt(color.getRed()) 94 + encodeInt(color.getGreen()) + encodeInt(color.getBlue()); 95 } 96 97 private String encodeInt(final int i) { 98 final String retVal = Integer.toHexString(i); 99 if (retVal.length() == 1) { 100 return "0" + retVal; 101 } 102 else { 103 return retVal; 104 } 105 } 106 } 107 | Popular Tags |