Package net.sf.jasperreports.engine.design

Source Code of net.sf.jasperreports.engine.design.JRDesignGenericElement

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

import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

import net.sf.jasperreports.engine.JRConstants;
import net.sf.jasperreports.engine.JRDefaultStyleProvider;
import net.sf.jasperreports.engine.JRExpressionCollector;
import net.sf.jasperreports.engine.JRGenericElement;
import net.sf.jasperreports.engine.JRGenericElementParameter;
import net.sf.jasperreports.engine.JRGenericElementType;
import net.sf.jasperreports.engine.JRVisitor;
import net.sf.jasperreports.engine.type.EvaluationTimeEnum;

/**
* A implementation of {@link JRGenericElement} that is to be used at report
* design time.
*
* @author Lucian Chirita (lucianc@users.sourceforge.net)
* @version $Id: JRDesignGenericElement.java 4101 2010-12-20 12:56:51Z teodord $
*/
public class JRDesignGenericElement extends JRDesignElement implements
    JRGenericElement
{

  private static final long serialVersionUID = JRConstants.SERIAL_VERSION_UID;

  public static final String PROPERTY_GENERIC_TYPE = "genericType";

  public static final String PROPERTY_EVALUATION_TIME = "evaluationTime";

  public static final String PROPERTY_EVALUATION_GROUP_NAME = "evaluationGroupName";
 
  public static final String PROPERTY_PARAMETERS = "parameters";
 
  private JRGenericElementType genericType;
  private List parameters = new ArrayList();
  private EvaluationTimeEnum evaluationTimeValue = EvaluationTimeEnum.NOW;
  private String evaluationGroupName;
 
  /**
   * Creates a generic report element.
   *
   * @param defaultStyleProvider the default style provider to use for the element
   */
  public JRDesignGenericElement(JRDefaultStyleProvider defaultStyleProvider)
  {
    super(defaultStyleProvider);
  }

  public JRGenericElementParameter[] getParameters()
  {
    return (JRGenericElementParameter[]) parameters.toArray(
        new JRGenericElementParameter[parameters.size()]);
  }
 
  /**
   * @deprecated Replaced by {@link #getParametersList()}.
   */
  public List getParamtersList()
  {
    return getParametersList();
  }
 
  /**
   * Exposes the internal list of element parameters.
   *
   * @return the list of element parameters
   * @see #getParameters()
   */
  public List getParametersList()
  {
    return parameters;
  }
 
  /**
   * Adds a parameter to the element.
   *
   * @param parameter the parameter to add.
   * @see #getParameters()
   */
  public void addParameter(JRGenericElementParameter parameter)
  {
    this.parameters.add(parameter);
    getEventSupport().fireCollectionElementAddedEvent(PROPERTY_PARAMETERS,
        parameter, parameters.size() - 1);
  }

  /**
   * Removes a parameter from the element.
   *
   * @param parameter the parameter to remove
   * @return whether the parameter has been found and removed
   */
  public boolean removeParameter(JRGenericElementParameter parameter)
  {
    int idx = parameters.indexOf(parameter);
    if (idx >= 0)
    {
      parameters.remove(idx);
      getEventSupport().fireCollectionElementRemovedEvent(PROPERTY_PARAMETERS,
          parameter, idx);
      return true;
    }
    return false;
  }
 
  /**
   * Removes a parameter by name from the element.
   *
   * @param parameterName the name of the parameter to remove
   * @return the removed parameter, or <code>null</code> if not found
   */
  public JRGenericElementParameter removeParameter(String parameterName)
  {
    JRGenericElementParameter removed = null;
    for (ListIterator it = parameters.listIterator(); it.hasNext();)
    {
      JRGenericElementParameter parameter = (JRGenericElementParameter) it.next();
      if (parameter.getName() != null && parameter.getName().equals(parameterName))
      {
        removed = parameter;
        it.remove();
        getEventSupport().fireCollectionElementRemovedEvent(PROPERTY_PARAMETERS,
            parameter, it.nextIndex());
        break;
      }
    }
    return removed;
  }

  public JRGenericElementType getGenericType()
  {
    return genericType;
  }

  /**
   * Sets the type of the generic element.
   *
   * @param genericType the type of the element.
   * @see #getGenericType()
   */
  public void setGenericType(JRGenericElementType genericType)
  {
    Object old = this.genericType;
    this.genericType = genericType;
    getEventSupport().firePropertyChange(PROPERTY_GENERIC_TYPE, old, this.genericType);
  }

  public void collectExpressions(JRExpressionCollector collector)
  {
    collector.collect(this);
  }

  public void visit(JRVisitor visitor)
  {
    visitor.visitGenericElement(this);
  }

  /**
   * @deprecated Replaced by {@link #getEvaluationTimeValue()}.
   */
  public byte getEvaluationTime()
  {
    return getEvaluationTimeValue().getValue();
  }

  public EvaluationTimeEnum getEvaluationTimeValue()
  {
    return evaluationTimeValue;
  }

  /**
   * @deprecated Replaced by {@link #setEvaluationTime(EvaluationTimeEnum)}.
   */
  public void setEvaluationTime(byte evaluationTime)
  {
    setEvaluationTime(EvaluationTimeEnum.getByValue(evaluationTime));
  }

  /**
   * Sets the evaluation time for the element.
   *
   * <p>
   * The default evaluation time is {@link EvaluationTimeEnum#NOW}.
   *
   * @param evaluationTimeValue the element's evaluation time, one of
   * <ol>
   *   <li>{@link EvaluationTimeEnum#NOW}
   *   <li>{@link EvaluationTimeEnum#BAND}
   *   <li>{@link EvaluationTimeEnum#COLUMN}
   *   <li>{@link EvaluationTimeEnum#PAGE}
   *   <li>{@link EvaluationTimeEnum#GROUP}
   *   <li>{@link EvaluationTimeEnum#REPORT}
   *   <li>{@link EvaluationTimeEnum#AUTO}
   * </ul>
   * @see #getEvaluationTimeValue()
   */
  public void setEvaluationTime(EvaluationTimeEnum evaluationTimeValue)
  {
    Object old = this.evaluationTimeValue;
    this.evaluationTimeValue = evaluationTimeValue;
    getEventSupport().firePropertyChange(PROPERTY_EVALUATION_TIME,
        old, this.evaluationTimeValue);
  }

  public String getEvaluationGroupName()
  {
    return evaluationGroupName;
  }
 
  /**
   * Sets the name of the evaluation group.
   *
   * @param evaluationGroupName the evaluation group's name
   * @see #getEvaluationGroupName()
   */
  public void setEvaluationGroupName(String evaluationGroupName)
  {
    Object old = this.evaluationGroupName;
    this.evaluationGroupName = evaluationGroupName;
    getEventSupport().firePropertyChange(PROPERTY_EVALUATION_GROUP_NAME,
        old, this.evaluationGroupName);
  }

  /*
   * These fields are only for serialization backward compatibility.
   */
  private int PSEUDO_SERIAL_VERSION_UID = JRConstants.PSEUDO_SERIAL_VERSION_UID; //NOPMD
  /**
   * @deprecated
   */
  private byte evaluationTime;
 
  private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException
  {
    in.defaultReadObject();

    if (PSEUDO_SERIAL_VERSION_UID < JRConstants.PSEUDO_SERIAL_VERSION_UID_3_7_2)
    {
      evaluationTimeValue = EvaluationTimeEnum.getByValue(evaluationTime);
    }
  }
}
TOP

Related Classes of net.sf.jasperreports.engine.design.JRDesignGenericElement

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.