KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > jasperreports > engine > xml > JRFontFactory


1 /*
2  * ============================================================================
3  * GNU Lesser General Public License
4  * ============================================================================
5  *
6  * JasperReports - Free Java report-generating library.
7  * Copyright (C) 2001-2006 JasperSoft Corporation http://www.jaspersoft.com
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Lesser General Public
11  * License as published by the Free Software Foundation; either
12  * version 2.1 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
22  *
23  * JasperSoft Corporation
24  * 303 Second Street, Suite 450 North
25  * San Francisco, CA 94107
26  * http://www.jaspersoft.com
27  */

28 package net.sf.jasperreports.engine.xml;
29
30 import java.util.Map JavaDoc;
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 JavaDoc;
38
39
40 /**
41  * @author Teodor Danciu (teodord@users.sourceforge.net)
42  * @version $Id: JRFontFactory.java 1240 2006-04-27 18:07:57 +0300 (Thu, 27 Apr 2006) teodord $
43  */

44 public abstract class JRFontFactory extends JRBaseFactory
45 {
46
47
48     /**
49      *
50      */

51     private static final String JavaDoc ATTRIBUTE_reportFont = "reportFont";
52     private static final String JavaDoc ATTRIBUTE_fontName = "fontName";
53     private static final String JavaDoc ATTRIBUTE_isBold = "isBold";
54     private static final String JavaDoc ATTRIBUTE_isItalic = "isItalic";
55     private static final String JavaDoc ATTRIBUTE_isUnderline = "isUnderline";
56     private static final String JavaDoc ATTRIBUTE_isStrikeThrough = "isStrikeThrough";
57     private static final String JavaDoc ATTRIBUTE_size = "size";
58     private static final String JavaDoc ATTRIBUTE_pdfFontName = "pdfFontName";
59     private static final String JavaDoc ATTRIBUTE_pdfEncoding = "pdfEncoding";
60     private static final String JavaDoc ATTRIBUTE_isPdfEmbedded = "isPdfEmbedded";
61
62
63     /**
64      *
65      */

66     public abstract JRFont getFont();
67     
68     
69     /**
70      *
71      */

72     public Object JavaDoc createObject(Attributes JavaDoc 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 JavaDoc fontsMap = jasperDesign.getFontsMap();
81
82             if ( !fontsMap.containsKey(atts.getValue(ATTRIBUTE_reportFont)) )
83             {
84                 xmlLoader.addError(new Exception JavaDoc("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     /**
122      *
123      */

124     public static class TextElementFontFactory extends JRFontFactory
125     {
126         public JRFont getFont()
127         {
128             return (JRFont)digester.peek();
129         }
130     }
131     
132
133     /**
134      *
135      */

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