first commit
This commit is contained in:
119
hrmsEjb/net/sf/jasperreports/engine/base/JRBaseElementGroup.java
Normal file
119
hrmsEjb/net/sf/jasperreports/engine/base/JRBaseElementGroup.java
Normal file
@@ -0,0 +1,119 @@
|
||||
package net.sf.jasperreports.engine.base;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import net.sf.jasperreports.crosstabs.JRCrosstab;
|
||||
import net.sf.jasperreports.engine.JRChild;
|
||||
import net.sf.jasperreports.engine.JRElement;
|
||||
import net.sf.jasperreports.engine.JRElementGroup;
|
||||
import net.sf.jasperreports.engine.JRFrame;
|
||||
import net.sf.jasperreports.engine.JRRuntimeException;
|
||||
import net.sf.jasperreports.engine.JRVisitable;
|
||||
import net.sf.jasperreports.engine.JRVisitor;
|
||||
|
||||
public class JRBaseElementGroup implements JRElementGroup, Serializable {
|
||||
private static final long serialVersionUID = 10200L;
|
||||
|
||||
protected List children = new ArrayList();
|
||||
|
||||
protected JRElementGroup elementGroup = null;
|
||||
|
||||
protected JRBaseElementGroup() {}
|
||||
|
||||
protected JRBaseElementGroup(JRElementGroup elementGrp, JRBaseObjectFactory factory) {
|
||||
factory.put(elementGrp, this);
|
||||
List list = elementGrp.getChildren();
|
||||
if (list != null && list.size() > 0)
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
JRChild child = list.get(i);
|
||||
child = (JRChild)factory.getVisitResult((JRVisitable)child);
|
||||
this.children.add(child);
|
||||
}
|
||||
this.elementGroup = (JRElementGroup)factory.getVisitResult((JRVisitable)elementGrp.getElementGroup());
|
||||
}
|
||||
|
||||
public List getChildren() {
|
||||
return this.children;
|
||||
}
|
||||
|
||||
public JRElementGroup getElementGroup() {
|
||||
return this.elementGroup;
|
||||
}
|
||||
|
||||
public static JRElement[] getElements(List children) {
|
||||
JRElement[] elements = null;
|
||||
if (children != null) {
|
||||
List allElements = new ArrayList();
|
||||
Object child = null;
|
||||
JRElement[] childElementArray = null;
|
||||
for (int i = 0; i < children.size(); i++) {
|
||||
child = children.get(i);
|
||||
if (child instanceof JRElement) {
|
||||
allElements.add(child);
|
||||
} else if (child instanceof JRElementGroup) {
|
||||
childElementArray = ((JRElementGroup)child).getElements();
|
||||
if (childElementArray != null)
|
||||
allElements.addAll(Arrays.asList((Object[])childElementArray));
|
||||
}
|
||||
}
|
||||
elements = new JRElement[allElements.size()];
|
||||
allElements.toArray(elements);
|
||||
}
|
||||
return elements;
|
||||
}
|
||||
|
||||
public JRElement[] getElements() {
|
||||
return getElements(this.children);
|
||||
}
|
||||
|
||||
public static JRElement getElementByKey(JRElement[] elements, String key) {
|
||||
JRElement element = null;
|
||||
if (key != null)
|
||||
if (elements != null) {
|
||||
int i = 0;
|
||||
while (element == null && i < elements.length) {
|
||||
JRElement elem = elements[i];
|
||||
if (key.equals(elem.getKey())) {
|
||||
element = elem;
|
||||
} else if (elem instanceof JRFrame) {
|
||||
element = ((JRFrame)elem).getElementByKey(key);
|
||||
} else if (elem instanceof JRCrosstab) {
|
||||
element = ((JRCrosstab)elem).getElementByKey(key);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
return element;
|
||||
}
|
||||
|
||||
public JRElement getElementByKey(String key) {
|
||||
return getElementByKey(getElements(), key);
|
||||
}
|
||||
|
||||
public void visit(JRVisitor visitor) {
|
||||
visitor.visitElementGroup(this);
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
JRBaseElementGroup clone = null;
|
||||
try {
|
||||
clone = (JRBaseElementGroup)super.clone();
|
||||
} catch (CloneNotSupportedException e) {
|
||||
throw new JRRuntimeException(e);
|
||||
}
|
||||
if (this.children != null) {
|
||||
clone.children = new ArrayList(this.children.size());
|
||||
for (int i = 0; i < this.children.size(); i++)
|
||||
clone.children.add(((JRChild)this.children.get(i)).clone(clone));
|
||||
}
|
||||
return clone;
|
||||
}
|
||||
|
||||
public Object clone(JRElementGroup parentGroup) {
|
||||
JRBaseElementGroup clone = (JRBaseElementGroup)clone();
|
||||
clone.elementGroup = parentGroup;
|
||||
return clone;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user