first commit
This commit is contained in:
338
hrmsEjb/net/sf/jasperreports/engine/base/JRBaseElement.java
Normal file
338
hrmsEjb/net/sf/jasperreports/engine/base/JRBaseElement.java
Normal file
@@ -0,0 +1,338 @@
|
||||
package net.sf.jasperreports.engine.base;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.io.Serializable;
|
||||
import net.sf.jasperreports.engine.JRCommonElement;
|
||||
import net.sf.jasperreports.engine.JRDefaultStyleProvider;
|
||||
import net.sf.jasperreports.engine.JRElement;
|
||||
import net.sf.jasperreports.engine.JRElementGroup;
|
||||
import net.sf.jasperreports.engine.JRExpression;
|
||||
import net.sf.jasperreports.engine.JRGroup;
|
||||
import net.sf.jasperreports.engine.JRPropertiesHolder;
|
||||
import net.sf.jasperreports.engine.JRPropertiesMap;
|
||||
import net.sf.jasperreports.engine.JRPropertyExpression;
|
||||
import net.sf.jasperreports.engine.JRRuntimeException;
|
||||
import net.sf.jasperreports.engine.JRStyle;
|
||||
import net.sf.jasperreports.engine.JRVisitable;
|
||||
import net.sf.jasperreports.engine.design.events.JRChangeEventsSupport;
|
||||
import net.sf.jasperreports.engine.design.events.JRPropertyChangeSupport;
|
||||
import net.sf.jasperreports.engine.util.JRStyleResolver;
|
||||
|
||||
public abstract class JRBaseElement implements JRElement, Serializable, JRChangeEventsSupport {
|
||||
private static final long serialVersionUID = 10200L;
|
||||
|
||||
public static final String PROPERTY_POSITION_TYPE = "positionType";
|
||||
|
||||
public static final String PROPERTY_PRINT_IN_FIRST_WHOLE_BAND = "isPrintInFirstWholeBand";
|
||||
|
||||
public static final String PROPERTY_PRINT_REPEATED_VALUES = "isPrintRepeatedValues";
|
||||
|
||||
public static final String PROPERTY_PRINT_WHEN_DETAIL_OVERFLOWS = "isPrintWhenDetailOverflows";
|
||||
|
||||
public static final String PROPERTY_REMOVE_LINE_WHEN_BLANK = "isRemoveLineWhenBlank";
|
||||
|
||||
public static final String PROPERTY_STRETCH_TYPE = "stretchType";
|
||||
|
||||
public static final String PROPERTY_WIDTH = "width";
|
||||
|
||||
public static final String PROPERTY_X = "x";
|
||||
|
||||
protected String key = null;
|
||||
|
||||
protected byte positionType;
|
||||
|
||||
protected byte stretchType;
|
||||
|
||||
protected boolean isPrintRepeatedValues = true;
|
||||
|
||||
protected Byte mode;
|
||||
|
||||
protected int x = 0;
|
||||
|
||||
protected int y = 0;
|
||||
|
||||
protected int width = 0;
|
||||
|
||||
protected int height = 0;
|
||||
|
||||
protected boolean isRemoveLineWhenBlank = false;
|
||||
|
||||
protected boolean isPrintInFirstWholeBand = false;
|
||||
|
||||
protected boolean isPrintWhenDetailOverflows = false;
|
||||
|
||||
protected Color forecolor = null;
|
||||
|
||||
protected Color backcolor = null;
|
||||
|
||||
protected JRExpression printWhenExpression = null;
|
||||
|
||||
protected JRGroup printWhenGroupChanges = null;
|
||||
|
||||
protected JRElementGroup elementGroup = null;
|
||||
|
||||
protected JRDefaultStyleProvider defaultStyleProvider;
|
||||
|
||||
protected JRStyle parentStyle;
|
||||
|
||||
protected String parentStyleNameReference;
|
||||
|
||||
private JRPropertiesMap propertiesMap;
|
||||
|
||||
private JRPropertyExpression[] propertyExpressions;
|
||||
|
||||
private transient JRPropertyChangeSupport eventSupport;
|
||||
|
||||
protected JRBaseElement(JRDefaultStyleProvider defaultStyleProvider) {
|
||||
this.defaultStyleProvider = defaultStyleProvider;
|
||||
}
|
||||
|
||||
protected JRBaseElement(JRElement element, JRBaseObjectFactory factory) {
|
||||
factory.put(element, this);
|
||||
this.defaultStyleProvider = factory.getDefaultStyleProvider();
|
||||
this.parentStyle = factory.getStyle(element.getStyle());
|
||||
this.parentStyleNameReference = element.getStyleNameReference();
|
||||
this.key = element.getKey();
|
||||
this.positionType = element.getPositionType();
|
||||
this.stretchType = element.getStretchType();
|
||||
this.isPrintRepeatedValues = element.isPrintRepeatedValues();
|
||||
this.mode = element.getOwnMode();
|
||||
this.x = element.getX();
|
||||
this.y = element.getY();
|
||||
this.width = element.getWidth();
|
||||
this.height = element.getHeight();
|
||||
this.isRemoveLineWhenBlank = element.isRemoveLineWhenBlank();
|
||||
this.isPrintInFirstWholeBand = element.isPrintInFirstWholeBand();
|
||||
this.isPrintWhenDetailOverflows = element.isPrintWhenDetailOverflows();
|
||||
this.forecolor = element.getOwnForecolor();
|
||||
this.backcolor = element.getOwnBackcolor();
|
||||
this.printWhenExpression = factory.getExpression(element.getPrintWhenExpression());
|
||||
this.printWhenGroupChanges = factory.getGroup(element.getPrintWhenGroupChanges());
|
||||
this.elementGroup = (JRElementGroup)factory.getVisitResult((JRVisitable)element.getElementGroup());
|
||||
this.propertiesMap = JRPropertiesMap.getPropertiesClone((JRPropertiesHolder)element);
|
||||
copyPropertyExpressions(element, factory);
|
||||
}
|
||||
|
||||
private void copyPropertyExpressions(JRElement element, JRBaseObjectFactory factory) {
|
||||
JRPropertyExpression[] props = element.getPropertyExpressions();
|
||||
if (props != null && props.length > 0) {
|
||||
this.propertyExpressions = new JRPropertyExpression[props.length];
|
||||
for (int i = 0; i < props.length; i++)
|
||||
this.propertyExpressions[i] = factory.getPropertyExpression(props[i]);
|
||||
}
|
||||
}
|
||||
|
||||
public JRDefaultStyleProvider getDefaultStyleProvider() {
|
||||
return this.defaultStyleProvider;
|
||||
}
|
||||
|
||||
protected JRStyle getBaseStyle() {
|
||||
if (this.parentStyle != null)
|
||||
return this.parentStyle;
|
||||
if (this.defaultStyleProvider != null)
|
||||
return this.defaultStyleProvider.getDefaultStyle();
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getKey() {
|
||||
return this.key;
|
||||
}
|
||||
|
||||
public byte getPositionType() {
|
||||
return this.positionType;
|
||||
}
|
||||
|
||||
public void setPositionType(byte positionType) {
|
||||
byte old = this.positionType;
|
||||
this.positionType = positionType;
|
||||
getEventSupport().firePropertyChange("positionType", old, this.positionType);
|
||||
}
|
||||
|
||||
public byte getStretchType() {
|
||||
return this.stretchType;
|
||||
}
|
||||
|
||||
public void setStretchType(byte stretchType) {
|
||||
byte old = this.stretchType;
|
||||
this.stretchType = stretchType;
|
||||
getEventSupport().firePropertyChange("stretchType", old, this.stretchType);
|
||||
}
|
||||
|
||||
public boolean isPrintRepeatedValues() {
|
||||
return this.isPrintRepeatedValues;
|
||||
}
|
||||
|
||||
public void setPrintRepeatedValues(boolean isPrintRepeatedValues) {
|
||||
boolean old = this.isPrintRepeatedValues;
|
||||
this.isPrintRepeatedValues = isPrintRepeatedValues;
|
||||
getEventSupport().firePropertyChange("isPrintRepeatedValues", old, this.isPrintRepeatedValues);
|
||||
}
|
||||
|
||||
public byte getMode() {
|
||||
return JRStyleResolver.getMode((JRCommonElement)this, (byte)1);
|
||||
}
|
||||
|
||||
public Byte getOwnMode() {
|
||||
return this.mode;
|
||||
}
|
||||
|
||||
public void setMode(byte mode) {
|
||||
setMode(new Byte(mode));
|
||||
}
|
||||
|
||||
public void setMode(Byte mode) {
|
||||
Object old = this.mode;
|
||||
this.mode = mode;
|
||||
getEventSupport().firePropertyChange("mode", old, this.mode);
|
||||
}
|
||||
|
||||
public int getX() {
|
||||
return this.x;
|
||||
}
|
||||
|
||||
public void setX(int x) {
|
||||
int old = this.x;
|
||||
this.x = x;
|
||||
getEventSupport().firePropertyChange("x", old, this.x);
|
||||
}
|
||||
|
||||
public int getY() {
|
||||
return this.y;
|
||||
}
|
||||
|
||||
public int getWidth() {
|
||||
return this.width;
|
||||
}
|
||||
|
||||
public void setWidth(int width) {
|
||||
int old = this.width;
|
||||
this.width = width;
|
||||
getEventSupport().firePropertyChange("width", old, this.width);
|
||||
}
|
||||
|
||||
public int getHeight() {
|
||||
return this.height;
|
||||
}
|
||||
|
||||
public boolean isRemoveLineWhenBlank() {
|
||||
return this.isRemoveLineWhenBlank;
|
||||
}
|
||||
|
||||
public void setRemoveLineWhenBlank(boolean isRemoveLine) {
|
||||
boolean old = this.isRemoveLineWhenBlank;
|
||||
this.isRemoveLineWhenBlank = isRemoveLine;
|
||||
getEventSupport().firePropertyChange("isRemoveLineWhenBlank", old, this.isRemoveLineWhenBlank);
|
||||
}
|
||||
|
||||
public boolean isPrintInFirstWholeBand() {
|
||||
return this.isPrintInFirstWholeBand;
|
||||
}
|
||||
|
||||
public void setPrintInFirstWholeBand(boolean isPrint) {
|
||||
boolean old = this.isPrintInFirstWholeBand;
|
||||
this.isPrintInFirstWholeBand = isPrint;
|
||||
getEventSupport().firePropertyChange("isPrintInFirstWholeBand", old, this.isPrintInFirstWholeBand);
|
||||
}
|
||||
|
||||
public boolean isPrintWhenDetailOverflows() {
|
||||
return this.isPrintWhenDetailOverflows;
|
||||
}
|
||||
|
||||
public void setPrintWhenDetailOverflows(boolean isPrint) {
|
||||
boolean old = this.isPrintWhenDetailOverflows;
|
||||
this.isPrintWhenDetailOverflows = isPrint;
|
||||
getEventSupport().firePropertyChange("isPrintWhenDetailOverflows", old, this.isPrintWhenDetailOverflows);
|
||||
}
|
||||
|
||||
public Color getForecolor() {
|
||||
return JRStyleResolver.getForecolor((JRCommonElement)this);
|
||||
}
|
||||
|
||||
public Color getOwnForecolor() {
|
||||
return this.forecolor;
|
||||
}
|
||||
|
||||
public void setForecolor(Color forecolor) {
|
||||
Object old = this.forecolor;
|
||||
this.forecolor = forecolor;
|
||||
getEventSupport().firePropertyChange("forecolor", old, this.forecolor);
|
||||
}
|
||||
|
||||
public Color getBackcolor() {
|
||||
return JRStyleResolver.getBackcolor((JRCommonElement)this);
|
||||
}
|
||||
|
||||
public Color getOwnBackcolor() {
|
||||
return this.backcolor;
|
||||
}
|
||||
|
||||
public void setBackcolor(Color backcolor) {
|
||||
Object old = this.backcolor;
|
||||
this.backcolor = backcolor;
|
||||
getEventSupport().firePropertyChange("backcolor", old, this.backcolor);
|
||||
}
|
||||
|
||||
public JRExpression getPrintWhenExpression() {
|
||||
return this.printWhenExpression;
|
||||
}
|
||||
|
||||
public JRGroup getPrintWhenGroupChanges() {
|
||||
return this.printWhenGroupChanges;
|
||||
}
|
||||
|
||||
public JRElementGroup getElementGroup() {
|
||||
return this.elementGroup;
|
||||
}
|
||||
|
||||
public JRStyle getStyle() {
|
||||
return this.parentStyle;
|
||||
}
|
||||
|
||||
public String getStyleNameReference() {
|
||||
return this.parentStyleNameReference;
|
||||
}
|
||||
|
||||
public JRPropertyChangeSupport getEventSupport() {
|
||||
synchronized (this) {
|
||||
if (this.eventSupport == null)
|
||||
this.eventSupport = new JRPropertyChangeSupport(this);
|
||||
}
|
||||
return this.eventSupport;
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
JRBaseElement clone = null;
|
||||
try {
|
||||
clone = (JRBaseElement)super.clone();
|
||||
} catch (CloneNotSupportedException e) {
|
||||
throw new JRRuntimeException(e);
|
||||
}
|
||||
if (this.printWhenExpression != null)
|
||||
clone.printWhenExpression = (JRExpression)this.printWhenExpression.clone();
|
||||
return clone;
|
||||
}
|
||||
|
||||
public Object clone(JRElementGroup parentGroup) {
|
||||
JRBaseElement clone = (JRBaseElement)clone();
|
||||
clone.elementGroup = parentGroup;
|
||||
return clone;
|
||||
}
|
||||
|
||||
public boolean hasProperties() {
|
||||
return (this.propertiesMap != null && this.propertiesMap.hasProperties());
|
||||
}
|
||||
|
||||
public JRPropertiesMap getPropertiesMap() {
|
||||
if (this.propertiesMap == null)
|
||||
this.propertiesMap = new JRPropertiesMap();
|
||||
return this.propertiesMap;
|
||||
}
|
||||
|
||||
public JRPropertiesHolder getParentProperties() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public JRPropertyExpression[] getPropertyExpressions() {
|
||||
return this.propertyExpressions;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user