1package com.nwalsh.xalan;
2
3import org.xml.sax.helpers.AttributesImpl;
4import org.xml.sax.SAXException;
5import org.w3c.dom.*;
6import org.apache.xml.utils.DOMBuilder;
7import com.nwalsh.xalan.Callout;
8import org.apache.xml.utils.AttList;
9
10/**
11 * <p>Utility class for the Verbatim extension (ignore this).</p>
12 *
13 * <p>$Id: FormatGraphicCallout.java,v 1.1 2001/04/02 13:03:45 nwalsh Exp $</p>
14 *
15 * <p>Copyright (C) 2000, 2001 Norman Walsh.</p>
16 *
17 * <p><b>Change Log:</b></p>
18 * <dl>
19 * <dt>1.0</dt>
20 * <dd><p>Initial release.</p></dd>
21 * </dl>
22 *
23 * @author Norman Walsh
24 * <a href="mailto:ndw@nwalsh.com">ndw@nwalsh.com</a>
25 *
26 * @see Verbatim
27 *
28 * @version $Id: FormatGraphicCallout.java,v 1.1 2001/04/02 13:03:45 nwalsh Exp $
29 **/
30
31public class FormatGraphicCallout extends FormatCallout {
32  String graphicsPath = "";
33  String graphicsExt = "";
34  int graphicsMax = 0;
35
36  public FormatGraphicCallout(String path, String ext, int max, boolean fo) {
37    graphicsPath = path;
38    graphicsExt = ext;
39    graphicsMax = max;
40    stylesheetFO = fo;
41  }
42
43  public void formatCallout(DOMBuilder rtf,
44			    Callout callout) {
45    Element area = callout.getArea();
46    int num = callout.getCallout();
47    String label = areaLabel(area);
48
49    try {
50      if (label == null && num <= graphicsMax) {
51	AttributesImpl imgAttr = new AttributesImpl();
52	String ns = "";
53	String prefix = "";
54	String imgName = "";
55
56	if (stylesheetFO) {
57	  ns = foURI;
58	  prefix = "fo:"; // FIXME: this could be a problem...
59	  imgName = "external-graphic";
60	  imgAttr.addAttribute("", "src", "src", "CDATA",
61			       graphicsPath + num + graphicsExt);
62	  imgAttr.addAttribute("", "alt", "alt", "CDATA", label);
63	} else {
64	  ns = "";
65	  prefix = "";
66	  imgName = "img";
67	  imgAttr.addAttribute("", "src", "src", "CDATA",
68			       graphicsPath + num + graphicsExt);
69	  imgAttr.addAttribute("", "alt", "alt", "CDATA", label);
70	}
71
72	startSpan(rtf);
73	rtf.startElement(ns, imgName, prefix+imgName, imgAttr);
74	rtf.endElement(ns, imgName, prefix+imgName);
75	endSpan(rtf);
76      } else {
77	formatTextCallout(rtf, callout);
78      }
79    } catch (SAXException e) {
80      System.out.println("SAX Exception in graphics formatCallout");
81    }
82  }
83}
84