114 lines
3.9 KiB
Java
114 lines
3.9 KiB
Java
package net.sf.jasperreports.engine.fill;
|
|
|
|
import net.sf.jasperreports.engine.JRException;
|
|
import net.sf.jasperreports.engine.JRExpressionCollector;
|
|
import net.sf.jasperreports.engine.JRPrintElement;
|
|
import net.sf.jasperreports.engine.JRStaticText;
|
|
import net.sf.jasperreports.engine.JRStyle;
|
|
import net.sf.jasperreports.engine.JRTextElement;
|
|
import net.sf.jasperreports.engine.JRVisitor;
|
|
|
|
public class JRFillStaticText extends JRFillTextElement implements JRStaticText {
|
|
protected JRFillStaticText(JRBaseFiller filler, JRStaticText staticText, JRFillObjectFactory factory) {
|
|
super(filler, (JRTextElement)staticText, factory);
|
|
String text = processMarkupText(staticText.getText());
|
|
if (text == null)
|
|
text = "";
|
|
setRawText(text);
|
|
}
|
|
|
|
protected JRFillStaticText(JRFillStaticText staticText, JRFillCloneFactory factory) {
|
|
super(staticText, factory);
|
|
String text = processMarkupText(staticText.getText());
|
|
if (text == null)
|
|
text = "";
|
|
setRawText(text);
|
|
}
|
|
|
|
public void setText(String text) {}
|
|
|
|
protected JRTemplateText getJRTemplateText() {
|
|
JRStyle style = getStyle();
|
|
JRTemplateText template = (JRTemplateText)getTemplate(style);
|
|
if (template == null) {
|
|
template = new JRTemplateText((this.band == null) ? null : this.band.getOrigin(), this.filler.getJasperPrint().getDefaultStyleProvider(), this);
|
|
transferProperties(template);
|
|
registerTemplate(style, template);
|
|
}
|
|
return template;
|
|
}
|
|
|
|
protected void evaluate(byte evaluation) throws JRException {
|
|
reset();
|
|
evaluatePrintWhenExpression(evaluation);
|
|
evaluateProperties(evaluation);
|
|
setTextStart(0);
|
|
setTextEnd(0);
|
|
setValueRepeating(true);
|
|
}
|
|
|
|
protected boolean prepare(int availableStretchHeight, boolean isOverflow) throws JRException {
|
|
boolean willOverflow = false;
|
|
super.prepare(availableStretchHeight, isOverflow);
|
|
if (!isToPrint())
|
|
return willOverflow;
|
|
boolean isToPrint = true;
|
|
boolean isReprinted = false;
|
|
if (isOverflow && isAlreadyPrinted() && !isPrintWhenDetailOverflows())
|
|
isToPrint = false;
|
|
if (isToPrint && isPrintWhenExpressionNull() && !isPrintRepeatedValues())
|
|
if ((!isPrintInFirstWholeBand() || !getBand().isFirstWholeOnPageColumn()) && (getPrintWhenGroupChanges() == null || !getBand().isNewGroup(getPrintWhenGroupChanges())) && (!isOverflow || !isPrintWhenDetailOverflows()))
|
|
isToPrint = false;
|
|
if (isToPrint && availableStretchHeight < getRelativeY() - getY() - getBandBottomY()) {
|
|
isToPrint = false;
|
|
willOverflow = true;
|
|
}
|
|
if (isToPrint && isOverflow && isPrintWhenDetailOverflows() && (isAlreadyPrinted() || (!isAlreadyPrinted() && !isPrintRepeatedValues())))
|
|
isReprinted = true;
|
|
setTextStart(0);
|
|
setTextEnd(0);
|
|
if (isToPrint)
|
|
chopTextElement(0);
|
|
setToPrint(isToPrint);
|
|
setReprinted(isReprinted);
|
|
return willOverflow;
|
|
}
|
|
|
|
protected JRPrintElement fill() {
|
|
JRTemplatePrintText text = new JRTemplatePrintText(getJRTemplateText());
|
|
text.setX(getX());
|
|
text.setY(getRelativeY());
|
|
text.setWidth(getWidth());
|
|
if (getRotation() == 0) {
|
|
text.setHeight(getStretchHeight());
|
|
} else {
|
|
text.setHeight(getHeight());
|
|
}
|
|
text.setRunDirection(getRunDirection());
|
|
text.setLineSpacingFactor(getLineSpacingFactor());
|
|
text.setLeadingOffset(getLeadingOffset());
|
|
text.setTextHeight(getTextHeight());
|
|
transferProperties(text);
|
|
setPrintText(text);
|
|
return text;
|
|
}
|
|
|
|
public void collectExpressions(JRExpressionCollector collector) {
|
|
collector.collect(this);
|
|
}
|
|
|
|
public void visit(JRVisitor visitor) {
|
|
visitor.visitStaticText(this);
|
|
}
|
|
|
|
protected void resolveElement(JRPrintElement element, byte evaluation) {}
|
|
|
|
public JRFillCloneable createClone(JRFillCloneFactory factory) {
|
|
return new JRFillStaticText(this, factory);
|
|
}
|
|
|
|
protected boolean canOverflow() {
|
|
return false;
|
|
}
|
|
}
|