1238438Sdteskepackage com.nwalsh.xalan; 2238438Sdteske 3249746Sdteskeimport org.xml.sax.helpers.AttributesImpl; 4238438Sdteskeimport org.xml.sax.SAXException; 5238438Sdteskeimport org.w3c.dom.*; 6238438Sdteskeimport org.apache.xml.utils.DOMBuilder; 7238438Sdteskeimport com.nwalsh.xalan.Callout; 8238438Sdteskeimport org.apache.xml.utils.AttList; 9238438Sdteske 10238438Sdteske/** 11238438Sdteske * <p>Utility class for the Verbatim extension (ignore this).</p> 12238438Sdteske * 13238438Sdteske * <p>$Id: FormatDingbatCallout.java,v 1.1 2006/05/04 13:23:51 nwalsh Exp $</p> 14238438Sdteske * 15238438Sdteske * <p>Copyright (C) 2000, 2001 Norman Walsh.</p> 16238438Sdteske * 17238438Sdteske * <p><b>Change Log:</b></p> 18238438Sdteske * <dl> 19238438Sdteske * <dt>1.0</dt> 20238438Sdteske * <dd><p>Initial release.</p></dd> 21238438Sdteske * </dl> 22238438Sdteske * 23238438Sdteske * @author Norman Walsh 24238438Sdteske * <a href="mailto:ndw@nwalsh.com">ndw@nwalsh.com</a> 25238438Sdteske * 26238438Sdteske * @see Verbatim 27238438Sdteske * 28238438Sdteske * @version $Id: FormatDingbatCallout.java,v 1.1 2006/05/04 13:23:51 nwalsh Exp $ 29238438Sdteske **/ 30238438Sdteske 31240684Sdteskepublic class FormatDingbatCallout extends FormatCallout { 32240684Sdteske int graphicsMax = 0; 33244675Sdteske 34240684Sdteske public FormatDingbatCallout(int max, boolean fo) { 35240684Sdteske graphicsMax = max; 36240684Sdteske stylesheetFO = fo; 37238438Sdteske } 38240684Sdteske 39238438Sdteske public void formatCallout(DOMBuilder rtf, 40238438Sdteske Callout callout) { 41243112Sdteske Element area = callout.getArea(); 42238438Sdteske int num = callout.getCallout(); 43238438Sdteske String label = areaLabel(area); 44238438Sdteske 45238438Sdteske try { 46238438Sdteske if (label == null && num <= graphicsMax) { 47238438Sdteske AttributesImpl imgAttr = new AttributesImpl(); 48238438Sdteske String ns = ""; 49238438Sdteske String prefix = ""; 50238438Sdteske String imgName = ""; 51238438Sdteske 52238438Sdteske if (stylesheetFO) { 53251264Sdteske ns = foURI; 54251390Sdteske prefix = "fo:"; // FIXME: this could be a problem... 55251390Sdteske imgName = "inline"; 56251390Sdteske imgAttr.addAttribute("", "font-family", "font-family", "CDATA", 57251390Sdteske "ZapfDingbats"); 58251390Sdteske } else { 59251390Sdteske ns = ""; 60251390Sdteske prefix = ""; 61251390Sdteske imgName = "font"; 62251390Sdteske imgAttr.addAttribute("", "face", "face", "CDATA", 63251390Sdteske "ZapfDingbats"); 64251390Sdteske } 65251390Sdteske 66251390Sdteske startSpan(rtf); 67238438Sdteske rtf.startElement(ns, imgName, prefix+imgName, imgAttr); 68238438Sdteske 69251264Sdteske char chars[] = new char[1]; 70251264Sdteske chars[0] = (char) (0x2775 + num); 71238438Sdteske rtf.characters(chars, 0, 1); 72251190Sdteske 73251190Sdteske rtf.endElement(ns, imgName, prefix+imgName); 74251190Sdteske endSpan(rtf); 75251190Sdteske } else { 76251190Sdteske formatTextCallout(rtf, callout); 77251190Sdteske } 78251190Sdteske } catch (SAXException e) { 79238438Sdteske System.out.println("SAX Exception in graphics formatCallout"); 80249751Sdteske } 81251390Sdteske } 82251390Sdteske} 83251390Sdteske