]> granicus.if.org Git - docbook-dsssl/commitdiff
Support unicode.font in Xalan extensions
authorNorman Walsh <ndw@nwalsh.com>
Wed, 17 Dec 2003 01:01:34 +0000 (01:01 +0000)
committerNorman Walsh <ndw@nwalsh.com>
Wed, 17 Dec 2003 01:01:34 +0000 (01:01 +0000)
xsl/extensions/xalan2/.classes/Makefile.common
xsl/extensions/xalan2/com/nwalsh/xalan/FormatCallout.java
xsl/extensions/xalan2/com/nwalsh/xalan/FormatUnicodeCallout.java
xsl/extensions/xalan2/com/nwalsh/xalan/Params.java
xsl/extensions/xalan2/com/nwalsh/xalan/Verbatim.java

index 13b234da0bbbb4aaa7c2abd6408918fd900b4c4c..5f02eb7567b8d256e064c32a478f8a43bd4ac1ea 100644 (file)
@@ -1,6 +1,6 @@
-XALANROOT=/projects/apache/xml-xalan/java
+XALANROOT=/usr/local/java/xalan2
 
-CLASSPATH=$(CLASSBASE):$(XALANROOT)/build/xalan.jar:$(XALANROOT)/bin/xml-apis.jar:$(XALANROOT)/bin/xercesImpl.jar:/usr/local/jaxp-1.1/jaxp.jar:/usr/local/jaxp-1.1/parser.jar
+CLASSPATH=$(CLASSBASE):$(XALANROOT)/bin/xalan.jar:$(XALANROOT)/bin/xml-apis.jar:$(XALANROOT)/bin/xercesImpl.jar:/usr/local/jwsdp-1.3/jaxp/lib/jaxp-api.jar
 
 all: $(CLASSFILES)
        -@for f in $(SUBDIRS); do \
@@ -18,7 +18,7 @@ clean:
         done
 
 jar: all
-       jar cf ../../xalan2.jar `find com -name "*.class" -print`
+       jar cf ../../xalan25.jar `find com -name "*.class" -print`
 
 %.class : %.java
        javac -classpath $(CLASSPATH) \
index 0c179a1dced5ccb5c625717d9744a4922c11209b..aa5cf17010e38761341b808b5b4c91a3a64dfcee 100644 (file)
@@ -3,7 +3,7 @@ package com.nwalsh.xalan;
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.AttributesImpl;
 import org.w3c.dom.*;
-import org.apache.xpath.DOMHelper;
+import org.apache.xml.utils.DOMHelper;
 import org.apache.xml.utils.DOMBuilder;
 import org.apache.xml.utils.AttList;
 import com.nwalsh.xalan.Callout;
index ef8f352fdea6d242b9fb2e790db6f82a6ed6044b..2fdaf54ce8a01870910b272df48772d630193399 100644 (file)
@@ -1,5 +1,6 @@
 package com.nwalsh.xalan;
 
+import org.xml.sax.helpers.AttributesImpl;
 import org.xml.sax.SAXException;
 import org.w3c.dom.*;
 import org.apache.xml.utils.DOMBuilder;
@@ -30,8 +31,10 @@ import org.apache.xml.utils.AttList;
 public class FormatUnicodeCallout extends FormatCallout {
   int unicodeMax = 0;
   int unicodeStart = 0;
+  String unicodeFont = "";
 
-  public FormatUnicodeCallout(int start, int max, boolean fo) {
+  public FormatUnicodeCallout(String font, int start, int max, boolean fo) {
+    unicodeFont = font;
     unicodeMax = max;
     unicodeStart = start;
     stylesheetFO = fo;
@@ -45,11 +48,34 @@ public class FormatUnicodeCallout extends FormatCallout {
 
     try {
       if (label == null && num <= unicodeMax) {
+       AttributesImpl inAttr = new AttributesImpl();
+       String ns = "";
+       String prefix = "";
+       String inName = "";
+
+       if (!unicodeFont.equals("")) {
+         if (stylesheetFO) {
+           ns = foURI;
+           prefix = "fo:";
+           inName = "inline";
+           inAttr.addAttribute("", "", "font-family", "CDATA", unicodeFont);
+         } else {
+           inName = "font";
+           inAttr.addAttribute("", "", "face", "CDATA", unicodeFont);
+         }
+       }
+
        char chars[] = new char[1];
        chars[0] = (char) (unicodeStart + num - 1);
 
        startSpan(rtf);
+       if (!unicodeFont.equals("")) {
+         rtf.startElement(ns, inName, prefix+inName, inAttr);
+       }
        rtf.characters(chars, 0, 1);
+       if (!unicodeFont.equals("")) {
+         rtf.endElement(ns, inName, prefix+inName);
+       }
        endSpan(rtf);
       } else {
        formatTextCallout(rtf, callout);
index fd6c97a3c6f7634b5c4be70d2d35377acc7c944a..20261261dc7ed1e8dbc6efecb0be144057ea02f8 100644 (file)
@@ -22,7 +22,8 @@ public class Params {
        return "";
       }
     } catch (TransformerException te) {
-      System.out.println("Transformer exception getting value of $" + varName);
+      // Nevermind the warning
+      // System.out.println("Transformer exception getting value of $" + varName);
       return "";
     }
   }
index 43425d5ba6ccca09d300ba3c883c7664eae451b4..42fd74838df7f25524683960849a905886e5a2c6 100644 (file)
@@ -457,8 +457,9 @@ public class Verbatim {
     } else if (Params.getBoolean(context, "callout.unicode")) {
       int uStart = Params.getInt(context, "callout.unicode.start.character");
       int uMax = Params.getInt(context, "callout.unicode.number.limit");
+      String uFont = Params.getString(context, "callout.unicode.font");
       return insertUnicodeCallouts(areaspecNodeSet, xalanNI, defaultColumn,
-                                  uStart, uMax, useFO);
+                                  uFont, uStart, uMax, useFO);
     } else if (Params.getBoolean(context, "callout.dingbats")) {
       int dMax = 10;
       return insertDingbatCallouts(areaspecNodeSet, xalanNI, defaultColumn,
@@ -482,10 +483,11 @@ public class Verbatim {
   public DocumentFragment insertUnicodeCallouts (NodeIterator areaspecNodeSet,
                                                 NodeIterator xalanNI,
                                                 int defaultColumn,
+                                                String uFont,
                                                 int uStart,
                                                 int uMax,
                                                 boolean useFO) {
-    FormatUnicodeCallout fuc = new FormatUnicodeCallout(uStart, uMax, useFO);
+    FormatUnicodeCallout fuc = new FormatUnicodeCallout(uFont, uStart, uMax, useFO);
     return insertCallouts(areaspecNodeSet, xalanNI, defaultColumn, fuc);
   }