/* * JasperReports - Free Java Reporting Library. * Copyright (C) 2001 - 2009 Jaspersoft Corporation. All rights reserved. * http://www.jaspersoft.com * * Unless you have purchased a commercial license agreement from Jaspersoft, * the following license terms apply: * * This program is part of JasperReports. * * JasperReports is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * JasperReports is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with JasperReports. If not, see <http://www.gnu.org/licenses/>. */ package net.sf.jasperreports.crosstabs.base; import java.awt.Color; import java.io.IOException; import java.io.ObjectInputStream; import net.sf.jasperreports.crosstabs.JRCellContents; import net.sf.jasperreports.engine.JRBox; import net.sf.jasperreports.engine.JRConstants; import net.sf.jasperreports.engine.JRDefaultStyleProvider; import net.sf.jasperreports.engine.JRLineBox; import net.sf.jasperreports.engine.JRStyle; import net.sf.jasperreports.engine.base.JRBaseElementGroup; import net.sf.jasperreports.engine.base.JRBaseLineBox; import net.sf.jasperreports.engine.base.JRBaseObjectFactory; import net.sf.jasperreports.engine.type.ModeEnum; import net.sf.jasperreports.engine.util.JRBoxUtil; import net.sf.jasperreports.engine.util.LineBoxWrapper; /** * Base read-only implementation of {@link net.sf.jasperreports.crosstabs.JRCellContents JRCellContents}. * * @author Lucian Chirita (lucianc@users.sourceforge.net) * @version $Id: JRBaseCellContents.java 3715 2010-04-08 18:08:49Z teodord $ */ public class JRBaseCellContents extends JRBaseElementGroup implements JRCellContents { private static final long serialVersionUID = JRConstants.SERIAL_VERSION_UID; protected JRDefaultStyleProvider defaultStyleProvider; protected JRStyle style; protected String styleNameReference; protected ModeEnum modeValue; protected Color backcolor; protected JRLineBox lineBox; protected int width; protected int height; public JRBaseCellContents(JRCellContents cell, JRBaseObjectFactory factory) { super(cell, factory); this.defaultStyleProvider = factory.getDefaultStyleProvider(); style = factory.getStyle(cell.getStyle()); styleNameReference = cell.getStyleNameReference(); modeValue = cell.getModeValue(); backcolor = cell.getBackcolor(); lineBox = cell.getLineBox().clone(this); width = cell.getWidth(); height = cell.getHeight(); } public Color getBackcolor() { return backcolor; } /** * @deprecated Replaced by {@link #getLineBox()} */ public JRBox getBox() { return new LineBoxWrapper(getLineBox()); } public JRLineBox getLineBox() { return lineBox; } public int getWidth() { return width; } public int getHeight() { return height; } public JRDefaultStyleProvider getDefaultStyleProvider() { return defaultStyleProvider; } public JRStyle getStyle() { return style; } /** * @deprecated Replaced by {@link #getModeValue()}. */ public Byte getMode() { return getModeValue() == null ? null : getModeValue().getValueByte() ; } public ModeEnum getModeValue() { return modeValue; } public String getStyleNameReference() { return styleNameReference; } /** * */ public Color getDefaultLineColor() { return Color.black; } /* * These fields are only for serialization backward compatibility. */ private int PSEUDO_SERIAL_VERSION_UID = JRConstants.PSEUDO_SERIAL_VERSION_UID; //NOPMD /** * @deprecated */ private Byte mode; /** * @deprecated */ private JRBox box = null; private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); if (PSEUDO_SERIAL_VERSION_UID < JRConstants.PSEUDO_SERIAL_VERSION_UID_3_7_2) { modeValue = ModeEnum.getByValue(mode); mode = null; } if (lineBox == null) { lineBox = new JRBaseLineBox(this); JRBoxUtil.setBoxToLineBox( box, lineBox ); box = null; } } public Object clone() { JRBaseCellContents clone = (JRBaseCellContents) super.clone(); clone.lineBox = lineBox == null ? null : (JRLineBox) lineBox.clone(clone); return clone; } }