159 lines
5.0 KiB
Java
159 lines
5.0 KiB
Java
package net.sf.jasperreports.engine.base;
|
|
|
|
import java.io.Serializable;
|
|
import net.sf.jasperreports.engine.JRBand;
|
|
import net.sf.jasperreports.engine.JRExpression;
|
|
import net.sf.jasperreports.engine.JRGroup;
|
|
import net.sf.jasperreports.engine.JRRuntimeException;
|
|
import net.sf.jasperreports.engine.JRVariable;
|
|
import net.sf.jasperreports.engine.design.events.JRChangeEventsSupport;
|
|
import net.sf.jasperreports.engine.design.events.JRPropertyChangeSupport;
|
|
|
|
public class JRBaseGroup implements JRGroup, Serializable, JRChangeEventsSupport {
|
|
private static final long serialVersionUID = 10200L;
|
|
|
|
public static final String PROPERTY_MIN_HEIGHT_TO_START_NEW_PAGE = "minHeightToStartNewPage";
|
|
|
|
public static final String PROPERTY_RESET_PAGE_NUMBER = "resetPageNumber";
|
|
|
|
public static final String PROPERTY_REPRINT_HEADER_ON_EACH_PAGE = "reprintHeaderOnEachPage";
|
|
|
|
public static final String PROPERTY_START_NEW_COLUMN = "startNewColumn";
|
|
|
|
public static final String PROPERTY_START_NEW_PAGE = "startNewPage";
|
|
|
|
protected String name = null;
|
|
|
|
protected boolean isStartNewColumn = false;
|
|
|
|
protected boolean isStartNewPage = false;
|
|
|
|
protected boolean isResetPageNumber = false;
|
|
|
|
protected boolean isReprintHeaderOnEachPage = false;
|
|
|
|
protected int minHeightToStartNewPage = 0;
|
|
|
|
protected JRExpression expression = null;
|
|
|
|
protected JRBand groupHeader = null;
|
|
|
|
protected JRBand groupFooter = null;
|
|
|
|
protected JRVariable countVariable = null;
|
|
|
|
private transient JRPropertyChangeSupport eventSupport;
|
|
|
|
protected JRBaseGroup() {}
|
|
|
|
protected JRBaseGroup(JRGroup group, JRBaseObjectFactory factory) {
|
|
factory.put(group, this);
|
|
this.name = group.getName();
|
|
this.isStartNewColumn = group.isStartNewColumn();
|
|
this.isStartNewPage = group.isStartNewPage();
|
|
this.isResetPageNumber = group.isResetPageNumber();
|
|
this.isReprintHeaderOnEachPage = group.isReprintHeaderOnEachPage();
|
|
this.minHeightToStartNewPage = group.getMinHeightToStartNewPage();
|
|
this.expression = factory.getExpression(group.getExpression());
|
|
this.groupHeader = factory.getBand(group.getGroupHeader());
|
|
this.groupFooter = factory.getBand(group.getGroupFooter());
|
|
this.countVariable = factory.getVariable(group.getCountVariable());
|
|
}
|
|
|
|
public String getName() {
|
|
return this.name;
|
|
}
|
|
|
|
public boolean isStartNewColumn() {
|
|
return this.isStartNewColumn;
|
|
}
|
|
|
|
public void setStartNewColumn(boolean isStart) {
|
|
boolean old = this.isStartNewColumn;
|
|
this.isStartNewColumn = isStart;
|
|
getEventSupport().firePropertyChange("startNewColumn", old, this.isStartNewColumn);
|
|
}
|
|
|
|
public boolean isStartNewPage() {
|
|
return this.isStartNewPage;
|
|
}
|
|
|
|
public void setStartNewPage(boolean isStart) {
|
|
boolean old = this.isStartNewPage;
|
|
this.isStartNewPage = isStart;
|
|
getEventSupport().firePropertyChange("startNewPage", old, this.isStartNewPage);
|
|
}
|
|
|
|
public boolean isResetPageNumber() {
|
|
return this.isResetPageNumber;
|
|
}
|
|
|
|
public void setResetPageNumber(boolean isReset) {
|
|
boolean old = this.isResetPageNumber;
|
|
this.isResetPageNumber = isReset;
|
|
getEventSupport().firePropertyChange("resetPageNumber", old, this.isResetPageNumber);
|
|
}
|
|
|
|
public boolean isReprintHeaderOnEachPage() {
|
|
return this.isReprintHeaderOnEachPage;
|
|
}
|
|
|
|
public void setReprintHeaderOnEachPage(boolean isReprint) {
|
|
boolean old = this.isReprintHeaderOnEachPage;
|
|
this.isReprintHeaderOnEachPage = isReprint;
|
|
getEventSupport().firePropertyChange("reprintHeaderOnEachPage", old, this.isReprintHeaderOnEachPage);
|
|
}
|
|
|
|
public int getMinHeightToStartNewPage() {
|
|
return this.minHeightToStartNewPage;
|
|
}
|
|
|
|
public void setMinHeightToStartNewPage(int minHeight) {
|
|
int old = this.minHeightToStartNewPage;
|
|
this.minHeightToStartNewPage = minHeight;
|
|
getEventSupport().firePropertyChange("minHeightToStartNewPage", old, this.minHeightToStartNewPage);
|
|
}
|
|
|
|
public JRExpression getExpression() {
|
|
return this.expression;
|
|
}
|
|
|
|
public JRBand getGroupHeader() {
|
|
return this.groupHeader;
|
|
}
|
|
|
|
public JRBand getGroupFooter() {
|
|
return this.groupFooter;
|
|
}
|
|
|
|
public JRVariable getCountVariable() {
|
|
return this.countVariable;
|
|
}
|
|
|
|
public Object clone() {
|
|
JRBaseGroup clone = null;
|
|
try {
|
|
clone = (JRBaseGroup)super.clone();
|
|
} catch (CloneNotSupportedException e) {
|
|
throw new JRRuntimeException(e);
|
|
}
|
|
if (this.expression != null)
|
|
clone.expression = (JRExpression)this.expression.clone();
|
|
if (this.groupHeader != null)
|
|
clone.groupHeader = (JRBand)this.groupHeader.clone();
|
|
if (this.groupFooter != null)
|
|
clone.groupFooter = (JRBand)this.groupFooter.clone();
|
|
if (this.countVariable != null)
|
|
clone.countVariable = (JRVariable)this.countVariable.clone();
|
|
return clone;
|
|
}
|
|
|
|
public JRPropertyChangeSupport getEventSupport() {
|
|
synchronized (this) {
|
|
if (this.eventSupport == null)
|
|
this.eventSupport = new JRPropertyChangeSupport(this);
|
|
}
|
|
return this.eventSupport;
|
|
}
|
|
}
|