first commit

This commit is contained in:
2025-07-28 13:56:49 +05:30
commit e9eb805edb
3438 changed files with 520990 additions and 0 deletions

View File

@@ -0,0 +1,322 @@
package net.sf.jasperreports.engine.base;
import java.awt.font.TextAttribute;
import java.io.Serializable;
import java.util.Map;
import net.sf.jasperreports.engine.JRDefaultFontProvider;
import net.sf.jasperreports.engine.JRDefaultStyleProvider;
import net.sf.jasperreports.engine.JRFont;
import net.sf.jasperreports.engine.JRReportFont;
import net.sf.jasperreports.engine.JRStyle;
import net.sf.jasperreports.engine.JRStyleContainer;
import net.sf.jasperreports.engine.design.events.JRChangeEventsSupport;
import net.sf.jasperreports.engine.design.events.JRPropertyChangeSupport;
import net.sf.jasperreports.engine.util.JRStyleResolver;
import net.sf.jasperreports.engine.util.JRTextAttribute;
public class JRBaseFont implements JRFont, Serializable, JRChangeEventsSupport {
private static final long serialVersionUID = 10200L;
public static final String PROPERTY_BOLD = "bold";
public static final String PROPERTY_FONT_NAME = "fontName";
public static final String PROPERTY_FONT_SIZE = "fontSize";
public static final String PROPERTY_ITALIC = "italic";
public static final String PROPERTY_PDF_EMBEDDED = "pdfEmbedded";
public static final String PROPERTY_PDF_ENCODING = "pdfEncoding";
public static final String PROPERTY_PDF_FONT_NAME = "pdfFontName";
public static final String PROPERTY_REPORT_FONT = "reportFont";
public static final String PROPERTY_STRIKE_THROUGH = "strikeThrough";
public static final String PROPERTY_UNDERLINE = "underline";
protected JRDefaultFontProvider defaultFontProvider = null;
protected JRReportFont reportFont = null;
protected JRStyleContainer styleContainer = null;
protected String fontName = null;
protected Boolean isBold = null;
protected Boolean isItalic = null;
protected Boolean isUnderline = null;
protected Boolean isStrikeThrough = null;
protected Integer fontSize = null;
protected String pdfFontName = null;
protected String pdfEncoding = null;
protected Boolean isPdfEmbedded = null;
private transient JRPropertyChangeSupport eventSupport;
public JRBaseFont() {}
public JRBaseFont(Map attributes) {
String fontNameAttr = (String)attributes.get(TextAttribute.FAMILY);
if (fontNameAttr != null)
setFontName(fontNameAttr);
Object bold = attributes.get(TextAttribute.WEIGHT);
if (bold != null)
setBold(TextAttribute.WEIGHT_BOLD.equals(bold));
Object italic = attributes.get(TextAttribute.POSTURE);
if (italic != null)
setItalic(TextAttribute.POSTURE_OBLIQUE.equals(italic));
Float sizeAttr = (Float)attributes.get(TextAttribute.SIZE);
if (sizeAttr != null)
setFontSize(sizeAttr.intValue());
Object underline = attributes.get(TextAttribute.UNDERLINE);
if (underline != null)
setUnderline(TextAttribute.UNDERLINE_ON.equals(underline));
Object strikeThrough = attributes.get(TextAttribute.STRIKETHROUGH);
if (strikeThrough != null)
setStrikeThrough(TextAttribute.STRIKETHROUGH_ON.equals(strikeThrough));
String pdfFontNameAttr = (String)attributes.get(JRTextAttribute.PDF_FONT_NAME);
if (pdfFontNameAttr != null)
setPdfFontName(pdfFontNameAttr);
String pdfEncodingAttr = (String)attributes.get(JRTextAttribute.PDF_ENCODING);
if (pdfEncodingAttr != null)
setPdfEncoding(pdfEncodingAttr);
Boolean isPdfEmbeddedAttr = (Boolean)attributes.get(JRTextAttribute.IS_PDF_EMBEDDED);
if (isPdfEmbeddedAttr != null)
setPdfEmbedded(isPdfEmbeddedAttr);
}
protected JRBaseFont(JRDefaultFontProvider defaultFontProvider) {
this.defaultFontProvider = defaultFontProvider;
}
public JRBaseFont(JRDefaultFontProvider defaultFontProvider, JRReportFont reportFont, JRFont font) {
this(defaultFontProvider, reportFont, null, font);
}
public JRBaseFont(JRDefaultFontProvider defaultFontProvider, JRReportFont reportFont, JRStyleContainer styleContainer, JRFont font) {
this.defaultFontProvider = defaultFontProvider;
this.reportFont = reportFont;
this.styleContainer = styleContainer;
if (font != null) {
this.fontName = font.getOwnFontName();
this.isBold = font.isOwnBold();
this.isItalic = font.isOwnItalic();
this.isUnderline = font.isOwnUnderline();
this.isStrikeThrough = font.isOwnStrikeThrough();
this.fontSize = font.getOwnFontSize();
this.pdfFontName = font.getOwnPdfFontName();
this.pdfEncoding = font.getOwnPdfEncoding();
this.isPdfEmbedded = font.isOwnPdfEmbedded();
}
}
public JRDefaultFontProvider getDefaultFontProvider() {
return this.defaultFontProvider;
}
public JRDefaultStyleProvider getDefaultStyleProvider() {
return (this.styleContainer == null) ? null : this.styleContainer.getDefaultStyleProvider();
}
public JRStyle getStyle() {
return (this.styleContainer == null) ? null : this.styleContainer.getStyle();
}
public JRReportFont getReportFont() {
return this.reportFont;
}
public void setReportFont(JRReportFont reportFont) {
Object old = this.reportFont;
this.reportFont = reportFont;
getEventSupport().firePropertyChange("reportFont", old, this.reportFont);
}
public String getFontName() {
return JRStyleResolver.getFontName(this);
}
public String getOwnFontName() {
return this.fontName;
}
public void setFontName(String fontName) {
Object old = this.fontName;
this.fontName = fontName;
getEventSupport().firePropertyChange("fontName", old, this.fontName);
}
public boolean isBold() {
return JRStyleResolver.isBold(this);
}
public Boolean isOwnBold() {
return this.isBold;
}
public void setBold(boolean isBold) {
setBold(isBold ? Boolean.TRUE : Boolean.FALSE);
}
public void setBold(Boolean isBold) {
Object old = this.isBold;
this.isBold = isBold;
getEventSupport().firePropertyChange("bold", old, this.isBold);
}
public boolean isItalic() {
return JRStyleResolver.isItalic(this);
}
public Boolean isOwnItalic() {
return this.isItalic;
}
public void setItalic(boolean isItalic) {
setItalic(isItalic ? Boolean.TRUE : Boolean.FALSE);
}
public void setItalic(Boolean isItalic) {
Object old = this.isItalic;
this.isItalic = isItalic;
getEventSupport().firePropertyChange("italic", old, this.isItalic);
}
public boolean isUnderline() {
return JRStyleResolver.isUnderline(this);
}
public Boolean isOwnUnderline() {
return this.isUnderline;
}
public void setUnderline(boolean isUnderline) {
setUnderline(isUnderline ? Boolean.TRUE : Boolean.FALSE);
}
public void setUnderline(Boolean isUnderline) {
Object old = this.isUnderline;
this.isUnderline = isUnderline;
getEventSupport().firePropertyChange("underline", old, this.isUnderline);
}
public boolean isStrikeThrough() {
return JRStyleResolver.isStrikeThrough(this);
}
public Boolean isOwnStrikeThrough() {
return this.isStrikeThrough;
}
public void setStrikeThrough(boolean isStrikeThrough) {
setStrikeThrough(isStrikeThrough ? Boolean.TRUE : Boolean.FALSE);
}
public void setStrikeThrough(Boolean isStrikeThrough) {
Object old = this.isStrikeThrough;
this.isStrikeThrough = isStrikeThrough;
getEventSupport().firePropertyChange("strikeThrough", old, this.isStrikeThrough);
}
public int getFontSize() {
return JRStyleResolver.getFontSize(this);
}
public Integer getOwnFontSize() {
return this.fontSize;
}
public void setFontSize(int fontSize) {
setFontSize(new Integer(fontSize));
}
public void setFontSize(Integer fontSize) {
Object old = this.fontSize;
this.fontSize = fontSize;
getEventSupport().firePropertyChange("fontSize", old, this.fontSize);
}
public int getSize() {
return getFontSize();
}
public Integer getOwnSize() {
return getOwnFontSize();
}
public void setSize(int size) {
setFontSize(size);
}
public void setSize(Integer size) {
setFontSize(size);
}
public String getPdfFontName() {
return JRStyleResolver.getPdfFontName(this);
}
public String getOwnPdfFontName() {
return this.pdfFontName;
}
public void setPdfFontName(String pdfFontName) {
Object old = this.pdfFontName;
this.pdfFontName = pdfFontName;
getEventSupport().firePropertyChange("pdfFontName", old, this.pdfFontName);
}
public String getPdfEncoding() {
return JRStyleResolver.getPdfEncoding(this);
}
public String getOwnPdfEncoding() {
return this.pdfEncoding;
}
public void setPdfEncoding(String pdfEncoding) {
Object old = this.pdfEncoding;
this.pdfEncoding = pdfEncoding;
getEventSupport().firePropertyChange("pdfEncoding", old, this.pdfEncoding);
}
public boolean isPdfEmbedded() {
return JRStyleResolver.isPdfEmbedded(this);
}
public Boolean isOwnPdfEmbedded() {
return this.isPdfEmbedded;
}
public void setPdfEmbedded(boolean isPdfEmbedded) {
setPdfEmbedded(isPdfEmbedded ? Boolean.TRUE : Boolean.FALSE);
}
public void setPdfEmbedded(Boolean isPdfEmbedded) {
Object old = this.isPdfEmbedded;
this.isPdfEmbedded = isPdfEmbedded;
getEventSupport().firePropertyChange("pdfEmbedded", old, this.isPdfEmbedded);
}
public String getStyleNameReference() {
return (this.styleContainer == null) ? null : this.styleContainer.getStyleNameReference();
}
public JRPropertyChangeSupport getEventSupport() {
synchronized (this) {
if (this.eventSupport == null)
this.eventSupport = new JRPropertyChangeSupport(this);
}
return this.eventSupport;
}
}