Package com.nwalsh.saxon

Source Code of com.nwalsh.saxon.FormatUnicodeCallout

package com.nwalsh.saxon;

import org.xml.sax.SAXException;
import org.w3c.dom.*;

import javax.xml.transform.TransformerException;

import com.icl.saxon.om.NamePool;
import com.icl.saxon.output.Emitter;
import com.icl.saxon.tree.AttributeCollection;

import com.nwalsh.saxon.Callout;

/**
* <p>Utility class for the Verbatim extension (ignore this).</p>
*
* <p>$Id: FormatUnicodeCallout.java,v 1.2 2001/08/05 22:35:38 nwalsh Exp $</p>
*
* <p>Copyright (C) 2000, 2001 Norman Walsh.</p>
*
* <p><b>Change Log:</b></p>
* <dl>
* <dt>1.0</dt>
* <dd><p>Initial release.</p></dd>
* </dl>
*
* @author Norman Walsh
* <a href="mailto:ndw@nwalsh.com">ndw@nwalsh.com</a>
*
* @see Verbatim
*
* @version $Id: FormatUnicodeCallout.java,v 1.2 2001/08/05 22:35:38 nwalsh Exp $
**/

public class FormatUnicodeCallout extends FormatCallout {
  int unicodeMax = 0;
  int unicodeStart = 0;
  String unicodeFont = "";

  public FormatUnicodeCallout(NamePool nPool,
            String font,
            int start,
            int max,
            boolean fo) {
    super(nPool, fo);
    unicodeFont = font;
    unicodeMax = max;
    unicodeStart = start;
  }

  public void formatCallout(Emitter rtfEmitter,
          Callout callout) {
    Element area = callout.getArea();
    int num = callout.getCallout();
    String userLabel = areaLabel(area);
    String label = "";

    if (userLabel != null) {
      label = userLabel;
    }

    try {
      if (userLabel == null && num <= unicodeMax) {
  int inName = 0;
  AttributeCollection inAttr = null;
  int namespaces[] = new int[1];

  if (!unicodeFont.equals("")) {
    if (foStylesheet) {
      inName = namePool.allocate("fo", foURI, "inline");
      inAttr = new AttributeCollection(namePool);
      inAttr.addAttribute("", "", "font-family", "CDATA", unicodeFont);
    } else {
      inName = namePool.allocate("", "", "font");
      inAttr = new AttributeCollection(namePool);
      inAttr.addAttribute("", "", "face", "CDATA", unicodeFont);
    }

    startSpan(rtfEmitter);
    rtfEmitter.startElement(inName, inAttr, namespaces, 0);
  }

  char chars[] = new char[1];
  chars[0] = (char) (unicodeStart + num - 1);
  rtfEmitter.characters(chars, 0, 1);

  if (!unicodeFont.equals("")) {
    rtfEmitter.endElement(inName);
    endSpan(rtfEmitter);
  }
      } else {
  formatTextCallout(rtfEmitter, callout);
      }
    } catch (TransformerException e) {
      System.out.println("Transformer Exception in graphic formatCallout");
    }
  }
}
TOP

Related Classes of com.nwalsh.saxon.FormatUnicodeCallout

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.