84 lines
2.6 KiB
Java
84 lines
2.6 KiB
Java
package net.sf.jasperreports.engine.fill;
|
|
|
|
import net.sf.jasperreports.engine.JRBreak;
|
|
import net.sf.jasperreports.engine.JRElement;
|
|
import net.sf.jasperreports.engine.JRException;
|
|
import net.sf.jasperreports.engine.JRExpressionCollector;
|
|
import net.sf.jasperreports.engine.JRPrintElement;
|
|
import net.sf.jasperreports.engine.JRVisitor;
|
|
|
|
public class JRFillBreak extends JRFillElement implements JRBreak {
|
|
protected JRFillBreak(JRBaseFiller filler, JRBreak breakElement, JRFillObjectFactory factory) {
|
|
super(filler, (JRElement)breakElement, factory);
|
|
}
|
|
|
|
protected JRFillBreak(JRFillBreak breakElement, JRFillCloneFactory factory) {
|
|
super(breakElement, factory);
|
|
}
|
|
|
|
public int getWidth() {
|
|
switch (getType()) {
|
|
case 1:
|
|
width = this.filler.pageWidth - this.filler.leftMargin - this.filler.rightMargin;
|
|
return width;
|
|
}
|
|
int width = this.filler.columnWidth;
|
|
return width;
|
|
}
|
|
|
|
public byte getType() {
|
|
return ((JRBreak)this.parent).getType();
|
|
}
|
|
|
|
public void setType(byte type) {}
|
|
|
|
protected void evaluate(byte evaluation) throws JRException {
|
|
reset();
|
|
evaluatePrintWhenExpression(evaluation);
|
|
evaluateProperties(evaluation);
|
|
setValueRepeating(true);
|
|
}
|
|
|
|
protected JRPrintElement fill() {
|
|
return null;
|
|
}
|
|
|
|
public void collectExpressions(JRExpressionCollector collector) {
|
|
collector.collect(this);
|
|
}
|
|
|
|
public void visit(JRVisitor visitor) {
|
|
visitor.visitBreak(this);
|
|
}
|
|
|
|
protected void resolveElement(JRPrintElement element, byte evaluation) {}
|
|
|
|
public JRFillCloneable createClone(JRFillCloneFactory factory) {
|
|
return new JRFillBreak(this, factory);
|
|
}
|
|
|
|
public void rewind() {}
|
|
|
|
protected boolean prepare(int availableStretchHeight, boolean isOverflow) throws JRException {
|
|
super.prepare(availableStretchHeight, isOverflow);
|
|
if (!isToPrint())
|
|
return false;
|
|
boolean isToPrint = true;
|
|
if (isOverflow && isAlreadyPrinted())
|
|
isToPrint = false;
|
|
if (isToPrint && availableStretchHeight < getRelativeY() - getY() - getBandBottomY())
|
|
isToPrint = false;
|
|
if (isToPrint)
|
|
if (getType() == 2) {
|
|
if (!this.filler.isFirstColumnBand || this.band.firstYElement != null)
|
|
setStretchHeight(getHeight() + availableStretchHeight - getRelativeY() + getY() + getBandBottomY());
|
|
} else if (!this.filler.isFirstPageBand || this.band.firstYElement != null) {
|
|
setStretchHeight(getHeight() + availableStretchHeight - getRelativeY() + getY() + getBandBottomY());
|
|
this.filler.columnIndex = this.filler.columnCount - 1;
|
|
}
|
|
setToPrint(isToPrint);
|
|
setReprinted(false);
|
|
return false;
|
|
}
|
|
}
|