1 28 package net.sf.jasperreports.crosstabs.xml; 29 30 import java.util.Map ; 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 ; 40 41 46 public class JRCellContentsFactory extends JRBaseFactory 47 { 48 public static final String ATTRIBUTE_backcolor = "backcolor"; 49 public static final String ATTRIBUTE_mode = "mode"; 50 public static final String ATTRIBUTE_style = "style"; 51 52 public Object createObject(Attributes 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 backcolor = attributes.getValue(ATTRIBUTE_backcolor); 60 if (backcolor != null && backcolor.length() > 0) 61 { 62 cell.setBackcolor(JRXmlConstants.getColor(backcolor, null)); 63 } 64 65 String modeAtt = attributes.getValue(ATTRIBUTE_mode); 66 if (modeAtt != null) 67 { 68 Byte mode = (Byte ) JRXmlConstants.getModeMap().get(modeAtt); 69 cell.setMode(mode); 70 } 71 72 String styleName = attributes.getValue(ATTRIBUTE_style); 73 if (styleName != null) 74 { 75 Map stylesMap = jasperDesign.getStylesMap(); 76 77 if (!stylesMap.containsKey(styleName)) 78 { 79 xmlLoader.addError(new Exception ("Unknown report style : " + styleName)); 80 } 81 82 cell.setStyle((JRStyle) stylesMap.get(styleName)); 83 } 84 85 return cell; 86 } 87 } 88 | Popular Tags |