KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > jasperreports > crosstabs > xml > JRCellContentsFactory


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.crosstabs.xml;
29
30 import java.util.Map JavaDoc;
31
32 import net.sf.jasperreports.crosstabs.design.JRDesignCellContents;
33 import net.sf.jasperreports.engine.JRStyle;
34 import net.sf.jasperreports.engine.design.JasperDesign;
35 import net.sf.jasperreports.engine.xml.JRBaseFactory;
36 import net.sf.jasperreports.engine.xml.JRXmlConstants;
37 import net.sf.jasperreports.engine.xml.JRXmlLoader;
38
39 import org.xml.sax.Attributes JavaDoc;
40
41 /**
42  *
43  * @author Lucian Chirita (lucianc@users.sourceforge.net)
44  * @version $Id: JRCellContentsFactory.java 1291 2006-06-13 18:11:10 +0300 (Tue, 13 Jun 2006) teodord $
45  */

46 public class JRCellContentsFactory extends JRBaseFactory
47 {
48     public static final String JavaDoc ATTRIBUTE_backcolor = "backcolor";
49     public static final String JavaDoc ATTRIBUTE_mode = "mode";
50     public static final String JavaDoc ATTRIBUTE_style = "style";
51
52     public Object JavaDoc createObject(Attributes JavaDoc attributes)
53     {
54         JRXmlLoader xmlLoader = (JRXmlLoader)digester.peek(digester.getCount() - 1);
55         JasperDesign jasperDesign = (JasperDesign)digester.peek(digester.getCount() - 2);
56         
57         JRDesignCellContents cell = new JRDesignCellContents();
58         
59         String JavaDoc backcolor = attributes.getValue(ATTRIBUTE_backcolor);
60         if (backcolor != null && backcolor.length() > 0)
61         {
62             cell.setBackcolor(JRXmlConstants.getColor(backcolor, null));
63         }
64         
65         String JavaDoc modeAtt = attributes.getValue(ATTRIBUTE_mode);
66         if (modeAtt != null)
67         {
68             Byte JavaDoc mode = (Byte JavaDoc) JRXmlConstants.getModeMap().get(modeAtt);
69             cell.setMode(mode);
70         }
71         
72         String JavaDoc styleName = attributes.getValue(ATTRIBUTE_style);
73         if (styleName != null)
74         {
75             Map JavaDoc stylesMap = jasperDesign.getStylesMap();
76
77             if (!stylesMap.containsKey(styleName))
78             {
79                 xmlLoader.addError(new Exception JavaDoc("Unknown report style : " + styleName));
80             }
81
82             cell.setStyle((JRStyle) stylesMap.get(styleName));
83         }
84
85         return cell;
86     }
87 }
88
Popular Tags