Your browser does not support JavaScript and this site utilizes JavaScript to build content and provide links to additional information. You should either enable JavaScript in your browser settings or use a browser that supports JavaScript in order to take full advantage of this site.
1 28 package net.sf.jasperreports.engine.xml; 29 30 import java.util.Map ; 31 32 import net.sf.jasperreports.engine.JRFont; 33 import net.sf.jasperreports.engine.JRReportFont; 34 import net.sf.jasperreports.engine.design.JRDesignFont; 35 import net.sf.jasperreports.engine.design.JasperDesign; 36 37 import org.xml.sax.Attributes ; 38 39 40 44 public abstract class JRFontFactory extends JRBaseFactory 45 { 46 47 48 51 private static final String ATTRIBUTE_reportFont = "reportFont"; 52 private static final String ATTRIBUTE_fontName = "fontName"; 53 private static final String ATTRIBUTE_isBold = "isBold"; 54 private static final String ATTRIBUTE_isItalic = "isItalic"; 55 private static final String ATTRIBUTE_isUnderline = "isUnderline"; 56 private static final String ATTRIBUTE_isStrikeThrough = "isStrikeThrough"; 57 private static final String ATTRIBUTE_size = "size"; 58 private static final String ATTRIBUTE_pdfFontName = "pdfFontName"; 59 private static final String ATTRIBUTE_pdfEncoding = "pdfEncoding"; 60 private static final String ATTRIBUTE_isPdfEmbedded = "isPdfEmbedded"; 61 62 63 66 public abstract JRFont getFont(); 67 68 69 72 public Object createObject(Attributes atts) 73 { 74 JRFont font = getFont(); 75 JRXmlLoader xmlLoader = (JRXmlLoader)digester.peek(digester.getCount() - 1); 76 JasperDesign jasperDesign = (JasperDesign)digester.peek(digester.getCount() - 2); 77 78 if (atts.getValue(ATTRIBUTE_reportFont) != null) 79 { 80 Map fontsMap = jasperDesign.getFontsMap(); 81 82 if ( !fontsMap.containsKey(atts.getValue(ATTRIBUTE_reportFont)) ) 83 { 84 xmlLoader.addError(new Exception ("Unknown report font : " + atts.getValue(ATTRIBUTE_reportFont))); 85 } 86 87 font.setReportFont((JRReportFont)fontsMap.get(atts.getValue(ATTRIBUTE_reportFont))); 88 } 89 90 if (atts.getValue(ATTRIBUTE_fontName) != null) 91 font.setFontName(atts.getValue(ATTRIBUTE_fontName)); 92 93 if (atts.getValue(ATTRIBUTE_isBold) != null) 94 font.setBold(Boolean.valueOf(atts.getValue(ATTRIBUTE_isBold))); 95 96 if (atts.getValue(ATTRIBUTE_isItalic) != null) 97 font.setItalic(Boolean.valueOf(atts.getValue(ATTRIBUTE_isItalic))); 98 99 if (atts.getValue(ATTRIBUTE_isUnderline) != null) 100 font.setUnderline(Boolean.valueOf(atts.getValue(ATTRIBUTE_isUnderline))); 101 102 if (atts.getValue(ATTRIBUTE_isStrikeThrough) != null) 103 font.setStrikeThrough(Boolean.valueOf(atts.getValue(ATTRIBUTE_isStrikeThrough))); 104 105 if (atts.getValue(ATTRIBUTE_size) != null) 106 font.setFontSize(Integer.parseInt(atts.getValue(ATTRIBUTE_size))); 107 108 if (atts.getValue(ATTRIBUTE_pdfFontName) != null) 109 font.setPdfFontName(atts.getValue(ATTRIBUTE_pdfFontName)); 110 111 if (atts.getValue(ATTRIBUTE_pdfEncoding) != null) 112 font.setPdfEncoding(atts.getValue(ATTRIBUTE_pdfEncoding)); 113 114 if (atts.getValue(ATTRIBUTE_isPdfEmbedded) != null) 115 font.setPdfEmbedded(Boolean.valueOf(atts.getValue(ATTRIBUTE_isPdfEmbedded))); 116 117 return font; 118 } 119 120 121 124 public static class TextElementFontFactory extends JRFontFactory 125 { 126 public JRFont getFont() 127 { 128 return (JRFont)digester.peek(); 129 } 130 } 131 132 133 136 public static class ChartFontFactory extends JRFontFactory 137 { 138 public JRFont getFont() 139 { 140 return new JRDesignFont(); 141 } 142 } 143 144 145 } 146
| Popular Tags
|