Package net.sf.jasperreports.crosstabs.design

Source Code of net.sf.jasperreports.crosstabs.design.JRDesignCellContents

/*
* 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.design;

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.JRBaseLineBox;
import net.sf.jasperreports.engine.base.JRBaseStyle;
import net.sf.jasperreports.engine.design.JRDesignElementGroup;
import net.sf.jasperreports.engine.type.ModeEnum;
import net.sf.jasperreports.engine.util.JRBoxUtil;
import net.sf.jasperreports.engine.util.LineBoxWrapper;

/**
* Implementation of {@link net.sf.jasperreports.crosstabs.JRCellContents JRCellContents} used for
* report design.
*
* @author Lucian Chirita (lucianc@users.sourceforge.net)
* @version $Id: JRDesignCellContents.java 3939 2010-08-20 09:52:00Z teodord $
*/
public class JRDesignCellContents extends JRDesignElementGroup implements JRCellContents
{
  private static final long serialVersionUID = JRConstants.SERIAL_VERSION_UID;
 
  public static final String PROPERTY_BOX = "box";
 
  public static final String PROPERTY_STYLE = "style";
 
  public static final String PROPERTY_STYLE_NAME_REFERENCE = "styleNameReference";

  protected JRDefaultStyleProvider defaultStyleProvider;
  protected JRStyle style;
  protected String styleNameReference;
 
  protected ModeEnum modeValue;
  private Color backcolor;
  private JRLineBox lineBox;
  private int width = JRCellContents.NOT_CALCULATED;
  private int height = JRCellContents.NOT_CALCULATED;

  private JRCrosstabOrigin origin;
 
  /**
   * Creates an empty cell contents.
   */
  public JRDesignCellContents()
  {
    super();
   
    lineBox = new JRBaseLineBox(this);
  }
 
  public Color getBackcolor()
  {
    return backcolor;
  }
 
 
  /**
   * Sets the cell background color.
   *
   * @param color the background color
   * @see JRCellContents#getBackcolor()
   */
  public void setBackcolor(Color color)
  {
    Object old = this.backcolor;
    backcolor = color;
    getEventSupport().firePropertyChange(JRBaseStyle.PROPERTY_BACKCOLOR, old, this.backcolor);
  }

  /**
   * @deprecated Replaced by {@link #getLineBox()}
   */
  public JRBox getBox()
  {
    return new LineBoxWrapper(getLineBox());
  }
 
  public JRLineBox getLineBox()
  {
    return lineBox;
  }
 
 
  /**
   * @deprecated Replaced by {@link #getLineBox()}
   */
  public void setBox(JRBox box)
  {
    JRBoxUtil.setBoxToLineBox(box, lineBox);
  }

  public int getHeight()
  {
    return height;
  }

 
  /**
   * Sets the computed cell height.
   *
   * @param height the cell height
   * @see JRCellContents#getHeight()
   */
  protected void setHeight(int height)
  {
    this.height = height;
  }

  public int getWidth()
  {
    return width;
  }


  /**
   * Sets the computed cell width.
   *
   * @param width the cell width
   * @see JRCellContents#getWidth()
   */
  protected void setWidth(int width)
  {
    this.width = width;
  }

  public JRDefaultStyleProvider getDefaultStyleProvider()
  {
    return defaultStyleProvider;
  }

  public JRStyle getStyle()
  {
    return style;
  }
 
 
  /**
   * Sets the style used by this cell.
   * <p/>
   * The style is only used for cell background and borders and is not inherited by
   * elements inside the cell.
   *
   * @param style the style to be used
   */
  public void setStyle(JRStyle style)
  {
    Object old = this.style;
    this.style = style;
    getEventSupport().firePropertyChange(PROPERTY_STYLE, old, this.style);
  }

  /**
   * @deprecated Replaced by {@link #getModeValue()}.
   */
  public Byte getMode()
  {
    return getModeValue() == null ? null : getModeValue().getValueByte();
  }

  public ModeEnum getModeValue()
  {
    return modeValue;
  }

 
  /**
   * @deprecated Replaced by
   */
  public void setMode(Byte mode)
  {
    setMode(ModeEnum.getByValue(mode));
  }

  /**
   * Sets the cell transparency mode.
   *
   * @param modeValue the transparency mode
   * @see JRCellContents#getModeValue()
   */
  public void setMode(ModeEnum modeValue)
  {
    Object old = this.modeValue;
    this.modeValue = modeValue;
    getEventSupport().firePropertyChange(JRBaseStyle.PROPERTY_MODE, old, this.modeValue);
  }

  public String getStyleNameReference()
  {
    return styleNameReference;
  }

 
  /**
   * Set the name of the external style to be used for this cell.
   * <p/>
   * An external style is only effective when there is no internal style set for this cell,
   * i.e. {@link #getStyle() getStyle()} returns <code>null</code>
   * The external style will be resolved at fill time from the templates used in the report.
   *
   * @param styleName the name of the external style
   * @see #getStyleNameReference()
   */
  public void setStyleNameReference(String styleName)
  {
    Object old = this.styleNameReference;
    this.styleNameReference = styleName;
    getEventSupport().firePropertyChange(PROPERTY_STYLE_NAME_REFERENCE, old, this.styleNameReference);
  }
 
  public JRCrosstabOrigin getOrigin()
  {
    return origin;
  }
 
  public void setOrigin(JRCrosstabOrigin origin)
  {
    this.origin = origin;
  }
 
  /**
   *
   */
  public Color getDefaultLineColor()
  {
    return Color.black;
  }

  /**
   *
   */
  public Object clone()
  {
    JRDesignCellContents clone = (JRDesignCellContents) super.clone();
    clone.lineBox = lineBox == null ? null : (JRLineBox) lineBox.clone(clone);
    return clone;
  }

 
  /*
   * 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;
 
  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;
    }
  }
}
TOP

Related Classes of net.sf.jasperreports.crosstabs.design.JRDesignCellContents

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.