first commit
This commit is contained in:
355
hrmsEjb/net/sf/jasperreports/engine/JasperPrint.java
Normal file
355
hrmsEjb/net/sf/jasperreports/engine/JasperPrint.java
Normal file
@@ -0,0 +1,355 @@
|
||||
package net.sf.jasperreports.engine;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class JasperPrint implements Serializable, JRPropertiesHolder {
|
||||
public static final String PROPERTIES_PRINT_TRANSFER_PREFIX = "net.sf.jasperreports.print.transfer.";
|
||||
|
||||
private static final long serialVersionUID = 10200L;
|
||||
|
||||
private static class DefaultStyleProvider implements JRDefaultStyleProvider, Serializable {
|
||||
private static final long serialVersionUID = 10200L;
|
||||
|
||||
private JRReportFont defaultFont;
|
||||
|
||||
private JRStyle defaultStyle;
|
||||
|
||||
DefaultStyleProvider(JRReportFont font, JRStyle style) {
|
||||
this.defaultFont = font;
|
||||
this.defaultStyle = style;
|
||||
}
|
||||
|
||||
public JRReportFont getDefaultFont() {
|
||||
return this.defaultFont;
|
||||
}
|
||||
|
||||
void setDefaultFont(JRReportFont font) {
|
||||
this.defaultFont = font;
|
||||
}
|
||||
|
||||
public JRStyle getDefaultStyle() {
|
||||
return this.defaultStyle;
|
||||
}
|
||||
|
||||
void setDefaultStyle(JRStyle style) {
|
||||
this.defaultStyle = style;
|
||||
}
|
||||
}
|
||||
|
||||
private String name = null;
|
||||
|
||||
private int pageWidth = 0;
|
||||
|
||||
private int pageHeight = 0;
|
||||
|
||||
private byte orientation = 1;
|
||||
|
||||
private Map fontsMap = new HashMap();
|
||||
|
||||
private List fontsList = new ArrayList();
|
||||
|
||||
private Map stylesMap = new HashMap();
|
||||
|
||||
private List stylesList = new ArrayList();
|
||||
|
||||
private Map originsMap = new HashMap();
|
||||
|
||||
private List originsList = new ArrayList();
|
||||
|
||||
private List pages = new ArrayList();
|
||||
|
||||
private transient Map anchorIndexes = null;
|
||||
|
||||
private DefaultStyleProvider defaultStyleProvider = null;
|
||||
|
||||
private String formatFactoryClass;
|
||||
|
||||
private String localeCode;
|
||||
|
||||
private String timeZoneId;
|
||||
|
||||
private JRPropertiesMap propertiesMap;
|
||||
|
||||
public JasperPrint() {
|
||||
this.defaultStyleProvider = new DefaultStyleProvider(null, null);
|
||||
this.propertiesMap = new JRPropertiesMap();
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public int getPageWidth() {
|
||||
return this.pageWidth;
|
||||
}
|
||||
|
||||
public void setPageWidth(int pageWidth) {
|
||||
this.pageWidth = pageWidth;
|
||||
}
|
||||
|
||||
public int getPageHeight() {
|
||||
return this.pageHeight;
|
||||
}
|
||||
|
||||
public void setPageHeight(int pageHeight) {
|
||||
this.pageHeight = pageHeight;
|
||||
}
|
||||
|
||||
public byte getOrientation() {
|
||||
return this.orientation;
|
||||
}
|
||||
|
||||
public void setOrientation(byte orientation) {
|
||||
this.orientation = orientation;
|
||||
}
|
||||
|
||||
public boolean hasProperties() {
|
||||
return (this.propertiesMap != null && this.propertiesMap.hasProperties());
|
||||
}
|
||||
|
||||
public JRPropertiesMap getPropertiesMap() {
|
||||
return this.propertiesMap;
|
||||
}
|
||||
|
||||
public JRPropertiesHolder getParentProperties() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String[] getPropertyNames() {
|
||||
return this.propertiesMap.getPropertyNames();
|
||||
}
|
||||
|
||||
public String getProperty(String propName) {
|
||||
return this.propertiesMap.getProperty(propName);
|
||||
}
|
||||
|
||||
public void setProperty(String propName, String value) {
|
||||
this.propertiesMap.setProperty(propName, value);
|
||||
}
|
||||
|
||||
public void removeProperty(String propName) {
|
||||
this.propertiesMap.removeProperty(propName);
|
||||
}
|
||||
|
||||
public JRReportFont getDefaultFont() {
|
||||
return this.defaultStyleProvider.getDefaultFont();
|
||||
}
|
||||
|
||||
public void setDefaultFont(JRReportFont font) {
|
||||
this.defaultStyleProvider.setDefaultFont(font);
|
||||
}
|
||||
|
||||
public JRDefaultFontProvider getDefaultFontProvider() {
|
||||
return this.defaultStyleProvider;
|
||||
}
|
||||
|
||||
public JRReportFont[] getFonts() {
|
||||
JRReportFont[] fontsArray = new JRReportFont[this.fontsList.size()];
|
||||
this.fontsList.toArray((Object[])fontsArray);
|
||||
return fontsArray;
|
||||
}
|
||||
|
||||
public List getFontsList() {
|
||||
return this.fontsList;
|
||||
}
|
||||
|
||||
public Map getFontsMap() {
|
||||
return this.fontsMap;
|
||||
}
|
||||
|
||||
public synchronized void addFont(JRReportFont reportFont) throws JRException {
|
||||
addFont(reportFont, false);
|
||||
}
|
||||
|
||||
public synchronized void addFont(JRReportFont reportFont, boolean isIgnoreDuplicate) throws JRException {
|
||||
if (this.fontsMap.containsKey(reportFont.getName())) {
|
||||
if (!isIgnoreDuplicate)
|
||||
throw new JRException("Duplicate declaration of report font : " + reportFont.getName());
|
||||
} else {
|
||||
this.fontsList.add(reportFont);
|
||||
this.fontsMap.put(reportFont.getName(), reportFont);
|
||||
if (reportFont.isDefault())
|
||||
setDefaultFont(reportFont);
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized JRReportFont removeFont(String fontName) {
|
||||
return removeFont((JRReportFont)this.fontsMap.get(fontName));
|
||||
}
|
||||
|
||||
public synchronized JRReportFont removeFont(JRReportFont reportFont) {
|
||||
if (reportFont != null) {
|
||||
if (reportFont.isDefault())
|
||||
setDefaultFont(null);
|
||||
this.fontsList.remove(reportFont);
|
||||
this.fontsMap.remove(reportFont.getName());
|
||||
}
|
||||
return reportFont;
|
||||
}
|
||||
|
||||
public JRStyle getDefaultStyle() {
|
||||
return this.defaultStyleProvider.getDefaultStyle();
|
||||
}
|
||||
|
||||
public synchronized void setDefaultStyle(JRStyle style) {
|
||||
this.defaultStyleProvider.setDefaultStyle(style);
|
||||
}
|
||||
|
||||
public JRDefaultStyleProvider getDefaultStyleProvider() {
|
||||
return this.defaultStyleProvider;
|
||||
}
|
||||
|
||||
public JRStyle[] getStyles() {
|
||||
JRStyle[] stylesArray = new JRStyle[this.stylesList.size()];
|
||||
this.stylesList.toArray((Object[])stylesArray);
|
||||
return stylesArray;
|
||||
}
|
||||
|
||||
public List getStylesList() {
|
||||
return this.stylesList;
|
||||
}
|
||||
|
||||
public Map getStylesMap() {
|
||||
return this.stylesMap;
|
||||
}
|
||||
|
||||
public synchronized void addStyle(JRStyle style) throws JRException {
|
||||
addStyle(style, false);
|
||||
}
|
||||
|
||||
public synchronized void addStyle(JRStyle style, boolean isIgnoreDuplicate) throws JRException {
|
||||
if (this.stylesMap.containsKey(style.getName())) {
|
||||
if (!isIgnoreDuplicate)
|
||||
throw new JRException("Duplicate declaration of report style : " + style.getName());
|
||||
} else {
|
||||
this.stylesList.add(style);
|
||||
this.stylesMap.put(style.getName(), style);
|
||||
if (style.isDefault())
|
||||
setDefaultStyle(style);
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized JRStyle removeStyle(String styleName) {
|
||||
return removeStyle((JRStyle)this.stylesMap.get(styleName));
|
||||
}
|
||||
|
||||
public synchronized JRStyle removeStyle(JRStyle style) {
|
||||
if (style != null) {
|
||||
if (style.isDefault())
|
||||
setDefaultStyle(null);
|
||||
this.stylesList.remove(style);
|
||||
this.stylesMap.remove(style.getName());
|
||||
}
|
||||
return style;
|
||||
}
|
||||
|
||||
public JROrigin[] getOrigins() {
|
||||
return (JROrigin[])this.originsList.toArray((Object[])new JROrigin[this.originsList.size()]);
|
||||
}
|
||||
|
||||
public List getOriginsList() {
|
||||
return this.originsList;
|
||||
}
|
||||
|
||||
public Map getOriginsMap() {
|
||||
return this.originsMap;
|
||||
}
|
||||
|
||||
public synchronized void addOrigin(JROrigin origin) {
|
||||
if (!this.originsMap.containsKey(origin)) {
|
||||
this.originsList.add(origin);
|
||||
this.originsMap.put(origin, new Integer(this.originsList.size() - 1));
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized JROrigin removeOrigin(JROrigin origin) {
|
||||
if (this.originsMap.containsKey(origin)) {
|
||||
this.originsList.remove(origin);
|
||||
this.originsMap = new HashMap();
|
||||
for (int i = 0; i < this.originsList.size(); i++)
|
||||
this.originsMap.put(this.originsList.get(i), new Integer(i));
|
||||
}
|
||||
return origin;
|
||||
}
|
||||
|
||||
public List getPages() {
|
||||
return this.pages;
|
||||
}
|
||||
|
||||
public synchronized void addPage(JRPrintPage page) {
|
||||
this.anchorIndexes = null;
|
||||
this.pages.add(page);
|
||||
}
|
||||
|
||||
public synchronized void addPage(int index, JRPrintPage page) {
|
||||
this.anchorIndexes = null;
|
||||
this.pages.add(index, page);
|
||||
}
|
||||
|
||||
public synchronized JRPrintPage removePage(int index) {
|
||||
this.anchorIndexes = null;
|
||||
return this.pages.remove(index);
|
||||
}
|
||||
|
||||
public synchronized Map getAnchorIndexes() {
|
||||
if (this.anchorIndexes == null) {
|
||||
this.anchorIndexes = new HashMap();
|
||||
int i = 0;
|
||||
for (Iterator itp = this.pages.iterator(); itp.hasNext(); i++) {
|
||||
JRPrintPage page = itp.next();
|
||||
Collection elements = page.getElements();
|
||||
collectAnchors(elements, i, 0, 0);
|
||||
}
|
||||
}
|
||||
return this.anchorIndexes;
|
||||
}
|
||||
|
||||
protected void collectAnchors(Collection elements, int pageIndex, int offsetX, int offsetY) {
|
||||
if (elements != null && elements.size() > 0) {
|
||||
JRPrintElement element = null;
|
||||
for (Iterator it = elements.iterator(); it.hasNext(); ) {
|
||||
element = it.next();
|
||||
if (element instanceof JRPrintAnchor)
|
||||
this.anchorIndexes.put(((JRPrintAnchor)element).getAnchorName(), new JRPrintAnchorIndex(pageIndex, element, offsetX, offsetY));
|
||||
if (element instanceof JRPrintFrame) {
|
||||
JRPrintFrame frame = (JRPrintFrame)element;
|
||||
collectAnchors(frame.getElements(), pageIndex, offsetX + frame.getX(), offsetY + frame.getY());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String getFormatFactoryClass() {
|
||||
return this.formatFactoryClass;
|
||||
}
|
||||
|
||||
public void setFormatFactoryClass(String formatFactoryClass) {
|
||||
this.formatFactoryClass = formatFactoryClass;
|
||||
}
|
||||
|
||||
public String getLocaleCode() {
|
||||
return this.localeCode;
|
||||
}
|
||||
|
||||
public void setLocaleCode(String localeCode) {
|
||||
this.localeCode = localeCode;
|
||||
}
|
||||
|
||||
public String getTimeZoneId() {
|
||||
return this.timeZoneId;
|
||||
}
|
||||
|
||||
public void setTimeZoneId(String timeZoneId) {
|
||||
this.timeZoneId = timeZoneId;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user