2
0
Fork 0

Refactored demo section to single app layout.

This commit is contained in:
Willem Cazander 2013-09-20 19:18:39 +02:00
parent b3635cf64d
commit 4bd244f4e5
337 changed files with 1630 additions and 1883 deletions

View file

@ -29,8 +29,8 @@ import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import javax.xml.parsers.ParserConfigurationException;
import org.x4o.xml.io.X4OConnectionException;
import org.x4o.xml.io.X4OReader;
import org.xml.sax.SAXException;
import net.forwardfire.vasc.lib.jr4o.data.JRDynamicDataSource;
@ -96,37 +96,42 @@ public class JR4ODesignManager {
if (design==null) {
throw new NullPointerException("Can add null design.");
}
if (design.getResourceBundle()==null) {
design.setResourceBundle(resourceBundle);
}
reportDesigns.put(design.getName(), design);
}
private JR4OParser createParser() {
JR4OParser parser = new JR4OParser(dataSource,resourceBundle);
private X4OReader<JR4ODesignRoot> createParser() {
JR4ODriver driver = new JR4ODriver();
X4OReader<JR4ODesignRoot> reader = driver.createReader();
reader.addELBeanInstance(JR4ODriver.EL_DATASOURCE_NAME, dataSource);
Map<String,Object> elBeans = dataSource.addDynamicELBean();
for (String key:elBeans.keySet()) {
Object value = elBeans.get(key);
parser.addELBean(key, value);
reader.addELBeanInstance(key, value);
}
return parser;
return reader;
}
public void parseFile(File file) throws FileNotFoundException, SecurityException, NullPointerException, ParserConfigurationException, SAXException, IOException {
public void parseFile(File file) throws FileNotFoundException, X4OConnectionException, SAXException, IOException {
if (file==null) {
throw new NullPointerException("Can't parse null file.");
}
JR4OParser parser = createParser();
parser.parseFile(file);
for (JasperDesign design:parser.getJasperDesigns()) {
X4OReader<JR4ODesignRoot> parser = createParser();
JR4ODesignRoot root = parser.readFile(file);
for (JasperDesign design:root.getDesigns()) {
addJasperDesign(design);
}
}
public void parseResource(String resourceName) throws FileNotFoundException, SecurityException, NullPointerException, ParserConfigurationException, SAXException, IOException {
public void parseResource(String resourceName) throws X4OConnectionException, SAXException, IOException {
if (resourceName==null) {
throw new NullPointerException("Can't parse null resouce.");
}
JR4OParser parser = createParser();
parser.parseResource(resourceName);
for (JasperDesign design:parser.getJasperDesigns()) {
X4OReader<JR4ODesignRoot> parser = createParser();
JR4ODesignRoot root = parser.readResource(resourceName);
for (JasperDesign design:root.getDesigns()) {
addJasperDesign(design);
}
}
@ -154,7 +159,7 @@ public class JR4ODesignManager {
return JasperCompileManager.compileReport(design);
}
public JasperPrint printReport(JasperReport report) throws JRException {
public JasperPrint printReport(JasperReport report) throws JRException {
return JasperFillManager.fillReport(report, parameters, dataSource);
}
@ -194,10 +199,23 @@ public class JR4ODesignManager {
}
public enum JRExportType {
PDF,
RTF,
CSV,
XLS,
XML;
PDF("text/pdf","pdf"),
RTF("text/rtf","rtf"),
CSV("text/csv","csv"),
XLS("text/xls","xls"),
XML("text/xml","xml");
private String mineType = null;
private String fileType = null;
private JRExportType(String mineType,String fileType) {
this.mineType=mineType;
this.fileType=fileType;
}
public String getMineType() {
return mineType;
}
public String getFileType() {
return fileType;
}
}
}

View file

@ -0,0 +1,23 @@
package net.forwardfire.vasc.lib.jr4o;
import java.util.ArrayList;
import java.util.List;
import net.sf.jasperreports.engine.design.JasperDesign;
public class JR4ODesignRoot {
private List<JasperDesign> designs = null;
public JR4ODesignRoot() {
designs = new ArrayList<JasperDesign>(10);
}
public List<JasperDesign> getDesigns() {
return designs;
}
public void addDesign(JasperDesign design) {
designs.add(design);
}
}

View file

@ -22,17 +22,14 @@
package net.forwardfire.vasc.lib.jr4o;
import java.util.ArrayList;
import java.util.List;
import javax.el.ValueExpression;
import net.forwardfire.vasc.lib.jr4o.data.JRDynamicDataSource;
import net.sf.jasperreports.engine.design.JasperDesign;
import org.x4o.xml.core.X4OParser;
import org.x4o.xml.element.ElementLanguage;
import org.x4o.xml.X4ODriver;
import org.x4o.xml.element.ElementException;
import org.x4o.xml.lang.X4OLanguageSession;
/**
* JR4OParser parses xml layer for JasperReports
@ -42,41 +39,27 @@ import org.x4o.xml.element.ElementException;
* @author Willem Cazander
* @version 1.0 Aug 31, 2007
*/
public class JR4OParser extends X4OParser {
public class JR4ODriver extends X4ODriver<JR4ODesignRoot> {
/** The jr40 language name */
static public final String LANGUAGE = "jr4o";
static public final String LANGUAGE_NAME = "jr4o";
static public final String[] LANGUAGE_VERSIONS = new String[]{X4ODriver.DEFAULT_LANGUAGE_VERSION};
static public final String EL_DATASOURCE_NAME = "dynamicDataSource";
static public final String EL_DESIGN_LIST_NAME = "dynamicDesignList";
private List<JasperDesign> dynamicDesignList = null;
private String resourceBundle = null;
/**
* creates an JR4OParser
*/
public JR4OParser(JRDynamicDataSource dataSource,String resourceBundle) {
super(LANGUAGE);
this.resourceBundle = resourceBundle;
dynamicDesignList = new ArrayList<JasperDesign>(10);
addELBeanInstance(EL_DATASOURCE_NAME, dataSource);
addELBeanInstance(EL_DESIGN_LIST_NAME, dynamicDesignList);
public JR4ODriver() {
}
public void addELBean(String name,Object bean) {
addELBeanInstance(name, bean);
@Override
public String getLanguageName() {
return LANGUAGE_NAME;
}
/**
* @return The list of JasperDesigns after parsing.
*/
public List<JasperDesign> getJasperDesigns() {
for (JasperDesign d:dynamicDesignList) {
if (d.getResourceBundle()==null) {
d.setResourceBundle(resourceBundle);
}
}
return dynamicDesignList;
@Override
public String[] getLanguageVersions() {
return LANGUAGE_VERSIONS;
}
/**
@ -84,27 +67,12 @@ public class JR4OParser extends X4OParser {
* @param elementLanguage The ElementLanguage to get the datasource from.
* @return The JRDynamicDataSource of this parser instance.
*/
static public JRDynamicDataSource getELDataSource(ElementLanguage elementLanguage) throws ElementException {
ValueExpression ee = elementLanguage.getExpressionFactory().createValueExpression(elementLanguage.getELContext(),"${"+EL_DATASOURCE_NAME+"}",JRDynamicDataSource.class);
JRDynamicDataSource dataSource = (JRDynamicDataSource)ee.getValue(elementLanguage.getELContext());
static public JRDynamicDataSource getELDataSource(X4OLanguageSession elementLanguage) throws ElementException {
ValueExpression ee = elementLanguage.getExpressionLanguageFactory().createValueExpression(elementLanguage.getExpressionLanguageContext(),"${"+EL_DATASOURCE_NAME+"}",JRDynamicDataSource.class);
JRDynamicDataSource dataSource = (JRDynamicDataSource)ee.getValue(elementLanguage.getExpressionLanguageContext());
if (dataSource==null) {
throw new ElementException("Could not find dataSouce in context as: "+EL_DATASOURCE_NAME);
}
return dataSource;
}
/**
* Returns the List of designs for adding the design.
* @param context The ElementLanguage to get the list from.
* @return The list of designs.
*/
@SuppressWarnings("unchecked")
static public List<JasperDesign> getELDesignList(ElementLanguage context) throws ElementException {
ValueExpression ee = context.getExpressionFactory().createValueExpression(context.getELContext(),"${"+EL_DESIGN_LIST_NAME+"}",List.class);
List<JasperDesign> designList = (List<JasperDesign>)ee.getValue(context.getELContext());
if (designList==null) {
throw new ElementException("Could not find designList in context as: "+EL_DESIGN_LIST_NAME);
}
return designList;
}
}

View file

@ -36,7 +36,7 @@ import net.sf.jasperreports.engine.design.JRDesignElement;
* @author Willem Cazander
* @version 1.0 Aug 31, 2007
*/
public class JR4OElementBindingHandler extends AbstractElementBindingHandler {
public class JR4OElementBindingHandler extends AbstractElementBindingHandler<JRDesignElement> {
private final static Class<?>[] CLASSES_CHILD = new Class[] {
JRElementGroup.class,
@ -57,21 +57,24 @@ public class JR4OElementBindingHandler extends AbstractElementBindingHandler {
public Class<?>[] getBindChildClasses() {
return CLASSES_CHILD;
}
/**
* @see org.x4o.xml.element.ElementBindingHandler#doBind(java.lang.Object, java.lang.Object, org.x4o.xml.element.Element)
*/
public void doBind(Object parentObject, Object childObject,Element childElement) throws ElementBindingHandlerException {
if (parentObject instanceof JRDesignElement) {
if (childObject instanceof JRElementGroup) {
((JRDesignElement)parentObject).setElementGroup((JRElementGroup)childObject);
}
if (childObject instanceof JRGroup) {
((JRDesignElement)parentObject).setPrintWhenGroupChanges((JRGroup)childObject);
}
if (childObject instanceof JRStyle) {
((JRDesignElement)parentObject).setStyle((JRStyle)childObject);
}
@Override
public void bindChild(Element childElement, JRDesignElement parentObject,Object childObject) throws ElementBindingHandlerException {
if (childObject instanceof JRElementGroup) {
parentObject.setElementGroup((JRElementGroup)childObject);
}
if (childObject instanceof JRGroup) {
parentObject.setPrintWhenGroupChanges((JRGroup)childObject);
}
if (childObject instanceof JRStyle) {
parentObject.setStyle((JRStyle)childObject);
}
}
@Override
public void createChilderen(Element parentElement, JRDesignElement parentObject) throws ElementBindingHandlerException {
createChild(parentElement, parentObject.getElementGroup());
createChild(parentElement, parentObject.getPrintWhenGroupChanges());
createChild(parentElement, parentObject.getStyle());
}
}

View file

@ -26,6 +26,7 @@ import org.x4o.xml.element.AbstractElementBindingHandler;
import org.x4o.xml.element.Element;
import org.x4o.xml.element.ElementBindingHandlerException;
import net.sf.jasperreports.engine.JRChild;
import net.sf.jasperreports.engine.design.JRDesignElement;
import net.sf.jasperreports.engine.design.JRDesignElementGroup;
@ -35,7 +36,7 @@ import net.sf.jasperreports.engine.design.JRDesignElementGroup;
* @author Willem Cazander
* @version 1.0 Aug 31, 2007
*/
public class JR4OElementGroupBindingHandler extends AbstractElementBindingHandler {
public class JR4OElementGroupBindingHandler extends AbstractElementBindingHandler<JRDesignElementGroup> {
private final static Class<?>[] CLASSES_CHILD = new Class[] {
JRDesignElement.class,
@ -56,18 +57,25 @@ public class JR4OElementGroupBindingHandler extends AbstractElementBindingHandle
return CLASSES_CHILD;
}
/**
* @see org.x4o.xml.element.ElementBindingHandler#doBind(java.lang.Object, java.lang.Object, org.x4o.xml.element.Element)
*/
public void doBind(Object parentObject, Object childObject,Element childElement) throws ElementBindingHandlerException {
if (parentObject instanceof JRDesignElementGroup) {
if (childObject instanceof JRDesignElementGroup) {
((JRDesignElementGroup)parentObject).addElementGroup((JRDesignElementGroup)childObject);
@Override
public void bindChild(Element childElement, JRDesignElementGroup parentObject,Object childObject) throws ElementBindingHandlerException {
if (childObject instanceof JRDesignElementGroup) {
parentObject.addElementGroup((JRDesignElementGroup)childObject);
}
if (childObject instanceof JRDesignElement) {
parentObject.addElement((JRDesignElement)childObject);
}
}
@Override
public void createChilderen(Element parentElement, JRDesignElementGroup parentObject) throws ElementBindingHandlerException {
for (JRChild child:parentObject.getChildren()) {
if (child instanceof JRDesignElement) {
createChild(parentElement, child);
}
if (childObject instanceof JRDesignElement) {
((JRDesignElementGroup)parentObject).addElement((JRDesignElement)childObject);
if (child instanceof JRDesignElementGroup) {
createChild(parentElement, child);
}
return;
}
}
}

View file

@ -37,7 +37,7 @@ import net.sf.jasperreports.engine.design.JasperDesign;
* @author Willem Cazander
* @version 1.0 Aug 31, 2007
*/
public class JR4OJasperDesignBindingHandler extends AbstractElementBindingHandler {
public class JR4OJasperDesignBindingHandler extends AbstractElementBindingHandler<JasperDesign> {
private final static Class<?>[] CLASSES_CHILD = new Class[] {
JRField.class,
@ -59,24 +59,33 @@ public class JR4OJasperDesignBindingHandler extends AbstractElementBindingHandle
return CLASSES_CHILD;
}
/**
* @see org.x4o.xml.element.ElementBindingHandler#doBind(java.lang.Object, java.lang.Object, org.x4o.xml.element.Element)
*/
public void doBind(Object parentObject, Object childObject,Element childElement) throws ElementBindingHandlerException {
if (parentObject instanceof JasperDesign) {
try {
if (childObject instanceof JRField) {
((JasperDesign)parentObject).addField((JRField)childObject);
}
if (childObject instanceof JRParameter) {
((JasperDesign)parentObject).addParameter((JRParameter)childObject);
}
if (childObject instanceof JRStyle) {
((JasperDesign)parentObject).addStyle((JRStyle)childObject);
}
} catch (Exception e) {
throw new ElementBindingHandlerException(e.getMessage(),e);
@Override
public void bindChild(Element childElement, JasperDesign parentObject,Object childObject) throws ElementBindingHandlerException {
try {
if (childObject instanceof JRField) {
parentObject.addField((JRField)childObject);
}
if (childObject instanceof JRParameter) {
parentObject.addParameter((JRParameter)childObject);
}
if (childObject instanceof JRStyle) {
parentObject.addStyle((JRStyle)childObject);
}
} catch (Exception e) {
throw new ElementBindingHandlerException(e.getMessage(),e);
}
}
@Override
public void createChilderen(Element parentElement, JasperDesign parentObject) throws ElementBindingHandlerException {
for (JRField field:parentObject.getFieldsList()) {
createChild(parentElement, field);
}
for (JRParameter parameter:parentObject.getParametersList()) {
createChild(parentElement, parameter);
}
for (JRStyle style:parentObject.getStylesList()) {
createChild(parentElement, style);
}
}
}

View file

@ -27,7 +27,7 @@ import javax.el.ValueExpression;
import org.x4o.xml.element.AbstractElement;
import org.x4o.xml.element.ElementException;
import net.forwardfire.vasc.lib.jr4o.JR4OParser;
import net.forwardfire.vasc.lib.jr4o.JR4ODriver;
import net.forwardfire.vasc.lib.jr4o.data.JRDynamicDataSource;
import net.sf.jasperreports.engine.JRStyle;
import net.sf.jasperreports.engine.design.JRDesignElementGroup;
@ -48,60 +48,46 @@ public class JRDynamicCardsElement extends AbstractElement {
*/
@Override
public void doElementStart() throws ElementException {
JRDynamicDataSource dataSource = JR4OParser.getELDataSource(getElementLanguage());
JRDynamicDataSource dataSource = JR4ODriver.getELDataSource(getLanguageSession());
ValueExpression ee = getElementLanguage().getExpressionFactory().createValueExpression(getElementLanguage().getELContext(),"${Arial_Bold}",JRStyle.class);
JRStyle style = (JRStyle)ee.getValue(getElementLanguage().getELContext());
ValueExpression ee = getLanguageSession().getExpressionLanguageFactory().createValueExpression(getLanguageSession().getExpressionLanguageContext(),"${Arial_Bold}",JRStyle.class);
JRStyle style = (JRStyle)ee.getValue(getLanguageSession().getExpressionLanguageContext());
if (style==null) {
throw new ElementException("Could not get the font.");
}
style.setBlankWhenNull(true);
style.setMode(ModeEnum.OPAQUE);
// //DEBUG STYLE
//style.setForecolor(Color.BLACK);
//style.setBackcolor(Color.BLUE);
Object parent = getParent().getElementObject();
if (parent instanceof JRDesignElementGroup == false) {
throw new ElementException("parent is not an JRDesignElementGroup.");
}
JRDesignElementGroup group = (JRDesignElementGroup)parent;
}
JRDesignElementGroup group = (JRDesignElementGroup)parent;
int offsetInitial = 95;
int defaultHeight = 12;
int max = dataSource.getDynamicColumnCount();
for (int i=0;i<max;i++) {
JRDesignTextField header = new JRDesignTextField();
//header.setMode(JRElement.MODE_OPAQUE);
header.setX(24);
int off = offsetInitial;
JRDesignTextField header = new JRDesignTextField();
header.setX(24);
header.setY(off+(i*defaultHeight));
header.setWidth(100);
header.setHeight(defaultHeight);
//header.setForecolor(Color.BLACK);
//header.setBackcolor(Color.BLUE);
header.setHorizontalAlignment(dataSource.getDynamicColumnHorizontalAlignment(i));
header.setStyle(style);
JRDesignExpression ex = new JRDesignExpression();
ex.setText("$F{HEADER_"+i+"}+':'");
ex.setText("$F{HEADER_"+i+"}+':'");
ex.setValueClass(String.class);
header.setExpression(ex);
group.addElement(header);
}
for (int i=0;i<max;i++) {
for (int i=0;i<max;i++) {
int off = offsetInitial;
JRDesignTextField header = new JRDesignTextField();
header.setX(110);
header.setY(off+(i*defaultHeight));
@ -112,19 +98,13 @@ public class JRDynamicCardsElement extends AbstractElement {
header.setHorizontalAlignment(dataSource.getDynamicColumnHorizontalAlignment(i));
header.setStyle(style);
header.setStretchWithOverflow(false);
//header.setForecolor(Color.BLACK);
//header.setBackcolor(Color.GREEN);
JRDesignExpression ex = new JRDesignExpression();
ex.setText("$F{COLUMN_"+i+"}");
ex.setValueClass(String.class);
header.setExpression(ex);
group.addElement(header);
}
}
}
}

View file

@ -27,7 +27,7 @@ import javax.el.ValueExpression;
import org.x4o.xml.element.AbstractElement;
import org.x4o.xml.element.ElementException;
import net.forwardfire.vasc.lib.jr4o.JR4OParser;
import net.forwardfire.vasc.lib.jr4o.JR4ODriver;
import net.forwardfire.vasc.lib.jr4o.data.JRDynamicDataSource;
import net.sf.jasperreports.engine.JRStyle;
import net.sf.jasperreports.engine.design.JRDesignElementGroup;
@ -36,7 +36,7 @@ import net.sf.jasperreports.engine.design.JRDesignTextField;
import net.sf.jasperreports.engine.type.ModeEnum;
/**
* DynaColumnElement
* JRDynamicColumnElement
*
* @author Willem Cazander
* @version 1.0 Sep 24, 2007
@ -45,26 +45,23 @@ public class JRDynamicColumnElement extends AbstractElement {
@Override
public void doElementRun() throws ElementException {
JRDynamicDataSource dataSource = JR4OParser.getELDataSource(getElementLanguage());
JRDynamicDataSource dataSource = JR4ODriver.getELDataSource(getLanguageSession());
ValueExpression ee = getElementLanguage().getExpressionFactory().createValueExpression(getElementLanguage().getELContext(),"${Arial_Bold}",JRStyle.class);
JRStyle style = (JRStyle)ee.getValue(getElementLanguage().getELContext());
ValueExpression ee = getLanguageSession().getExpressionLanguageFactory().createValueExpression(getLanguageSession().getExpressionLanguageContext(),"${Arial_Bold}",JRStyle.class);
JRStyle style = (JRStyle)ee.getValue(getLanguageSession().getExpressionLanguageContext());
if (style==null) {
throw new ElementException("Could not get the font.");
}
style.setMode(ModeEnum.OPAQUE);
// // Debug Style
//style.setBackcolor(Color.BLUE);
Object parent = getParent().getElementObject();
if (parent instanceof JRDesignElementGroup == false) {
throw new ElementException("parent is not an JRDesignElementGroup.");
}
JRDesignElementGroup group = (JRDesignElementGroup)parent;
}
JRDesignElementGroup group = (JRDesignElementGroup)parent;
int max = dataSource.getDynamicColumnCount();
for (int i=0;i<max;i++) {
for (int i=0;i<max;i++) {
JRDesignTextField column = new JRDesignTextField();
column.setX(dataSource.getDynamicColumnX(i));
column.setY(dataSource.getDynamicColumnY(i));
@ -73,17 +70,14 @@ public class JRDynamicColumnElement extends AbstractElement {
column.setStretchWithOverflow(dataSource.isDynamicColumnStretchWithOverflow(i));
column.setBlankWhenNull(dataSource.isDynamicColumnBlankWhenNull(i));
column.setHorizontalAlignment(dataSource.getDynamicColumnHorizontalAlignment(i));
column.setStyle(style);
JRDesignExpression ex = new JRDesignExpression();
ex.setText("$F{COLUMN_"+i+"}");
ex.setValueClass(String.class);
column.setExpression(ex);
group.addElement(column);
}
}
}
}

View file

@ -29,7 +29,7 @@ import javax.el.ValueExpression;
import org.x4o.xml.element.AbstractElement;
import org.x4o.xml.element.ElementException;
import net.forwardfire.vasc.lib.jr4o.JR4OParser;
import net.forwardfire.vasc.lib.jr4o.JR4ODriver;
import net.forwardfire.vasc.lib.jr4o.data.JRDynamicDataSource;
import net.sf.jasperreports.engine.JRStyle;
import net.sf.jasperreports.engine.design.JRDesignElementGroup;
@ -39,7 +39,7 @@ import net.sf.jasperreports.engine.type.HorizontalAlignEnum;
import net.sf.jasperreports.engine.type.ModeEnum;
/**
*
* JRDynamicColumnHeaderElement
*
* @author Willem Cazander
* @version 1.0 Sep 24, 2007
@ -51,10 +51,10 @@ public class JRDynamicColumnHeaderElement extends AbstractElement {
*/
@Override
public void doElementRun() throws ElementException {
JRDynamicDataSource dataSource = JR4OParser.getELDataSource(getElementLanguage());
JRDynamicDataSource dataSource = JR4ODriver.getELDataSource(getLanguageSession());
ValueExpression ee = getElementLanguage().getExpressionFactory().createValueExpression(getElementLanguage().getELContext(),"${Arial_Bold}",JRStyle.class);
JRStyle style = (JRStyle)ee.getValue(getElementLanguage().getELContext());
ValueExpression ee = getLanguageSession().getExpressionLanguageFactory().createValueExpression(getLanguageSession().getExpressionLanguageContext(),"${Arial_Bold}",JRStyle.class);
JRStyle style = (JRStyle)ee.getValue(getLanguageSession().getExpressionLanguageContext());
if (style==null) {
throw new ElementException("Could not get the font.");
}
@ -62,14 +62,12 @@ public class JRDynamicColumnHeaderElement extends AbstractElement {
Object parent = getParent().getElementObject();
if (parent instanceof JRDesignElementGroup == false) {
throw new ElementException("parent is not an JRDesignElementGroup.");
}
JRDesignElementGroup group = (JRDesignElementGroup)parent;
}
JRDesignElementGroup group = (JRDesignElementGroup)parent;
int max = dataSource.getDynamicColumnCount();
for (int i=0;i<max;i++) {
JRDesignTextField header = new JRDesignTextField();
header.setMode(ModeEnum.OPAQUE);
header.setX(dataSource.getDynamicColumnX(i));
header.setY(dataSource.getDynamicColumnY(i));
@ -81,11 +79,11 @@ public class JRDynamicColumnHeaderElement extends AbstractElement {
header.setStyle(style);
JRDesignExpression ex = new JRDesignExpression();
ex.setText("$F{HEADER_"+i+"}");
ex.setText("$F{HEADER_"+i+"}");
ex.setValueClass(String.class);
header.setExpression(ex);
group.addElement(header);
}
}
}
}

View file

@ -1,53 +0,0 @@
/*
* Copyright 2007-2012 forwardfire.net All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
* that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
* following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
* the following disclaimer in the documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.forwardfire.vasc.lib.jr4o.x4o;
import java.util.List;
import org.x4o.xml.element.AbstractElement;
import org.x4o.xml.element.ElementException;
import net.forwardfire.vasc.lib.jr4o.JR4OParser;
import net.sf.jasperreports.engine.design.JasperDesign;
/**
* JasperReportElement puts the report design in the parser design list.
*
* @author Willem Cazander
* @version 1.0 May 11, 2012
*/
public class JasperReportElement extends AbstractElement {
@Override
public void doElementRun() throws ElementException {
if (getElementObject()==null) {
throw new ElementException("Can't work with null element object.");
}
if ((getElementObject() instanceof JasperDesign)==false) {
throw new ElementException("Element object is not JasperDesign class.");
}
JasperDesign design = (JasperDesign)getElementObject();
List<JasperDesign> designs = JR4OParser.getELDesignList(getElementLanguage());
designs.add(design);
}
}

View file

@ -5,9 +5,8 @@
xmlns:root="http://eld.x4o.org/xml/ns/eld-root"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://eld.x4o.org/xml/ns/eld-root http://eld.x4o.org/xml/ns/eld-root-1.0.xsd"
moduleName="Xpql query loading"
moduleVersion="1.0"
moduleProviderName="vasc.forwardfire.net"
providerHost="vasc.forwardfire.net"
providerName="Xpql query loading"
id="jr4o"
>
@ -16,185 +15,193 @@
<eld:bindingHandler id="JR4OElementBindingHandler" bean.class="net.forwardfire.vasc.lib.jr4o.x4o.JR4OElementBindingHandler"/>
<eld:bindingHandler id="JR4OElementGroupBindingHandler" bean.class="net.forwardfire.vasc.lib.jr4o.x4o.JR4OElementGroupBindingHandler"/>
<eld:bindingHandler id="JR4OJasperDesignBindingHandler" bean.class="net.forwardfire.vasc.lib.jr4o.x4o.JR4OJasperDesignBindingHandler"/>
<eld:classBindingHandler id="JR4ODesignRoot-JasperDesign"
parentClass="net.forwardfire.vasc.lib.jr4o.JR4ODesignRoot" childClass="net.sf.jasperreports.engine.design.JasperDesign"
addMethod="addDesign" getMethod="getDesigns"
/>
<eld:namespace uri="http://jr4o.vasc.forwardfire.net/xml/ns/jr4o-lang" description="JR4O XML Language" id="jr4o-lang">
<eld:element tag="report" objectClass="java.lang.Object"/>
<eld:element tag="jasperReport" objectClass="net.sf.jasperreports.engine.design.JasperDesign" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JasperReportElement">
<eld:attribute name="orientation">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.OrientationEnum"/>
</eld:attribute>
</eld:element>
<eld:element tag="field" objectClass="net.sf.jasperreports.engine.design.JRDesignField">
<eld:attribute name="valueClass">
<conv:classConverter/>
</eld:attribute>
</eld:element>
<eld:element tag="parameter" objectClass="net.sf.jasperreports.engine.design.JRDesignParameter">
<eld:attribute name="valueClass">
<conv:classConverter/>
</eld:attribute>
</eld:element>
<eld:element tag="title" objectClass="net.sf.jasperreports.engine.design.JRDesignBand" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JasperDesignPageBinderElement"/>
<eld:element tag="pageHeader" objectClass="net.sf.jasperreports.engine.design.JRDesignBand" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JasperDesignPageBinderElement"/>
<eld:element tag="columnHeader" objectClass="net.sf.jasperreports.engine.design.JRDesignBand" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JasperDesignPageBinderElement"/>
<eld:element tag="detail" objectClass="net.sf.jasperreports.engine.design.JRDesignBand" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JasperDesignPageBinderElement"/>
<eld:element tag="pageFooter" objectClass="net.sf.jasperreports.engine.design.JRDesignBand" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JasperDesignPageBinderElement"/>
<eld:element tag="summary" objectClass="net.sf.jasperreports.engine.design.JRDesignBand" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JasperDesignPageBinderElement"/>
<eld:namespace uri="http://jr4o.vasc.forwardfire.net/xml/ns/jr4o-lang"
description="JR4O XML Language"
id="jr4o-lang"
>
<eld:element tag="report" objectClass="net.forwardfire.vasc.lib.jr4o.JR4ODesignRoot"/>
<eld:element tag="jasperReport" objectClass="net.sf.jasperreports.engine.design.JasperDesign">
<eld:attribute name="orientation">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.OrientationEnum"/>
</eld:attribute>
</eld:element>
<eld:element tag="field" objectClass="net.sf.jasperreports.engine.design.JRDesignField">
<eld:attribute name="valueClass">
<conv:classConverter/>
</eld:attribute>
</eld:element>
<eld:element tag="parameter" objectClass="net.sf.jasperreports.engine.design.JRDesignParameter">
<eld:attribute name="valueClass">
<conv:classConverter/>
</eld:attribute>
</eld:element>
<eld:element tag="title" objectClass="net.sf.jasperreports.engine.design.JRDesignBand" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JasperDesignPageBinderElement"/>
<eld:element tag="pageHeader" objectClass="net.sf.jasperreports.engine.design.JRDesignBand" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JasperDesignPageBinderElement"/>
<eld:element tag="columnHeader" objectClass="net.sf.jasperreports.engine.design.JRDesignBand" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JasperDesignPageBinderElement"/>
<eld:element tag="detail" objectClass="net.sf.jasperreports.engine.design.JRDesignBand" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JasperDesignPageBinderElement"/>
<eld:element tag="pageFooter" objectClass="net.sf.jasperreports.engine.design.JRDesignBand" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JasperDesignPageBinderElement"/>
<eld:element tag="summary" objectClass="net.sf.jasperreports.engine.design.JRDesignBand" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JasperDesignPageBinderElement"/>
<eld:element tag="band" objectClass="net.sf.jasperreports.engine.design.JRDesignBand"/>
<eld:element tag="textField" objectClass="net.sf.jasperreports.engine.design.JRDesignTextField">
<eld:attribute name="evaluationTime">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.EvaluationTimeEnum"/>
</eld:attribute>
<eld:attribute name="horizontalAlignment">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.HorizontalAlignEnum"/>
</eld:attribute>
<eld:attribute name="verticalAlignment">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.VerticalAlignEnum"/>
</eld:attribute>
<eld:attribute name="positionType">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.PositionTypeEnum"/>
</eld:attribute>
<eld:attribute name="mode">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.ModeEnum"/>
</eld:attribute>
<eld:attribute name="forecolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
<eld:attribute name="backcolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
</eld:element>
<eld:element tag="staticText" objectClass="net.sf.jasperreports.engine.design.JRDesignStaticText">
<eld:attribute name="evaluationTime">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.EvaluationTimeEnum"/>
</eld:attribute>
<eld:attribute name="horizontalAlignment">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.HorizontalAlignEnum"/>
</eld:attribute>
<eld:attribute name="verticalAlignment">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.VerticalAlignEnum"/>
</eld:attribute>
<eld:attribute name="positionType">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.PositionTypeEnum"/>
</eld:attribute>
<eld:attribute name="mode">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.ModeEnum"/>
</eld:attribute>
<eld:attribute name="forecolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
<eld:attribute name="backcolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
</eld:element>
<eld:element tag="textElement" objectClass="net.forwardfire.vasc.lib.jr4o.x4o.JasperParentElement">
<eld:attribute name="horizontalAlignment">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.HorizontalAlignEnum"/>
</eld:attribute>
<eld:attribute name="verticalAlignment">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.VerticalAlignEnum"/>
</eld:attribute>
</eld:element>
<eld:element tag="textFieldExpression" objectClass="net.sf.jasperreports.engine.design.JRDesignExpression" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.ValueBodyTextExpressionElement">
<eld:attribute name="valueClass">
<conv:classConverter/>
</eld:attribute>
</eld:element>
<!--
<eld:element tag="text" objectClass="net.sf.jasperreports.engine.design.JRDesignExpression" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.ValueBodyTextExpressionElement">
<eld:attribute name="valueClass">
<conv:ClassConverter/>
</eld:attribute>
</eld:element>
-->
<eld:element tag="printWhenExpression" objectClass="net.sf.jasperreports.engine.design.JRDesignExpression" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.ValueBodyPrintExpressionElement">
<eld:attribute name="valueClass">
<conv:classConverter/>
</eld:attribute>
</eld:element>
<eld:element tag="font" objectClass="net.sf.jasperreports.engine.design.JRDesignFont"/>
<!--
<eld:element tag="reportFont" objectClass="net.sf.jasperreports.engine.design.JRDesignReportFont"/>
-->
<eld:element tag="style" objectClass="net.sf.jasperreports.engine.design.JRDesignStyle"/>
<eld:element tag="reportElement" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JasperParentElement">
<eld:attribute name="positionType">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.PositionTypeEnum"/>
</eld:attribute>
<eld:attribute name="mode">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.ModeEnum"/>
</eld:attribute>
<eld:attribute name="forecolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
<eld:attribute name="backcolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
</eld:element>
<eld:element tag="line" objectClass="net.sf.jasperreports.engine.design.JRDesignLine">
<eld:attribute name="positionType">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.PositionTypeEnum"/>
</eld:attribute>
<eld:attribute name="forecolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
<eld:attribute name="backcolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
</eld:element>
<eld:element tag="rectangle" objectClass="net.sf.jasperreports.engine.design.JRDesignRectangle">
<eld:attribute name="positionType">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.PositionTypeEnum"/>
</eld:attribute>
<eld:attribute name="forecolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
<eld:attribute name="backcolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
</eld:element>
<eld:element tag="image" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.ImageElement">
<eld:attribute name="evaluationTime">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.EvaluationTimeEnum"/>
</eld:attribute>
<eld:attribute name="horizontalAlignment">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.HorizontalAlignEnum"/>
</eld:attribute>
<eld:attribute name="verticalAlignment">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.VerticalAlignEnum"/>
</eld:attribute>
<eld:attribute name="positionType">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.PositionTypeEnum"/>
</eld:attribute>
<eld:attribute name="mode">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.ModeEnum"/>
</eld:attribute>
<eld:attribute name="forecolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
<eld:attribute name="backcolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
</eld:element>
<eld:element tag="imageExpression" objectClass="net.sf.jasperreports.engine.design.JRDesignExpression" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.ValueBodyImageExpressionElement">
<eld:attribute name="valueClass">
<conv:classConverter/>
</eld:attribute>
</eld:element>
<eld:element tag="dynamicColumnHeader" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JRDynamicColumnHeaderElement"/>
<eld:element tag="dynamicColumn" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JRDynamicColumnElement"/>
<eld:element tag="dynamicCards" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JRDynamicCardsElement"/>
</eld:namespace>
<eld:element tag="band" objectClass="net.sf.jasperreports.engine.design.JRDesignBand"/>
<eld:element tag="textField" objectClass="net.sf.jasperreports.engine.design.JRDesignTextField">
<eld:attribute name="evaluationTime">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.EvaluationTimeEnum"/>
</eld:attribute>
<eld:attribute name="horizontalAlignment">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.HorizontalAlignEnum"/>
</eld:attribute>
<eld:attribute name="verticalAlignment">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.VerticalAlignEnum"/>
</eld:attribute>
<eld:attribute name="positionType">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.PositionTypeEnum"/>
</eld:attribute>
<eld:attribute name="mode">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.ModeEnum"/>
</eld:attribute>
<eld:attribute name="forecolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
<eld:attribute name="backcolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
</eld:element>
<eld:element tag="staticText" objectClass="net.sf.jasperreports.engine.design.JRDesignStaticText">
<eld:attribute name="evaluationTime">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.EvaluationTimeEnum"/>
</eld:attribute>
<eld:attribute name="horizontalAlignment">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.HorizontalAlignEnum"/>
</eld:attribute>
<eld:attribute name="verticalAlignment">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.VerticalAlignEnum"/>
</eld:attribute>
<eld:attribute name="positionType">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.PositionTypeEnum"/>
</eld:attribute>
<eld:attribute name="mode">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.ModeEnum"/>
</eld:attribute>
<eld:attribute name="forecolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
<eld:attribute name="backcolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
</eld:element>
<eld:element tag="textElement" objectClass="net.forwardfire.vasc.lib.jr4o.x4o.JasperParentElement">
<eld:attribute name="horizontalAlignment">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.HorizontalAlignEnum"/>
</eld:attribute>
<eld:attribute name="verticalAlignment">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.VerticalAlignEnum"/>
</eld:attribute>
</eld:element>
<eld:element tag="textFieldExpression" objectClass="net.sf.jasperreports.engine.design.JRDesignExpression" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.ValueBodyTextExpressionElement">
<eld:attribute name="valueClass">
<conv:classConverter/>
</eld:attribute>
</eld:element>
<!--
<eld:element tag="text" objectClass="net.sf.jasperreports.engine.design.JRDesignExpression" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.ValueBodyTextExpressionElement">
<eld:attribute name="valueClass">
<conv:ClassConverter/>
</eld:attribute>
</eld:element>
-->
<eld:element tag="printWhenExpression" objectClass="net.sf.jasperreports.engine.design.JRDesignExpression" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.ValueBodyPrintExpressionElement">
<eld:attribute name="valueClass">
<conv:classConverter/>
</eld:attribute>
</eld:element>
<eld:element tag="font" objectClass="net.sf.jasperreports.engine.design.JRDesignFont"/>
<!--
<eld:element tag="reportFont" objectClass="net.sf.jasperreports.engine.design.JRDesignReportFont"/>
-->
<eld:element tag="style" objectClass="net.sf.jasperreports.engine.design.JRDesignStyle"/>
<eld:element tag="reportElement" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JasperParentElement">
<eld:attribute name="positionType">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.PositionTypeEnum"/>
</eld:attribute>
<eld:attribute name="mode">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.ModeEnum"/>
</eld:attribute>
<eld:attribute name="forecolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
<eld:attribute name="backcolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
</eld:element>
<eld:element tag="line" objectClass="net.sf.jasperreports.engine.design.JRDesignLine">
<eld:attribute name="positionType">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.PositionTypeEnum"/>
</eld:attribute>
<eld:attribute name="forecolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
<eld:attribute name="backcolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
</eld:element>
<eld:element tag="rectangle" objectClass="net.sf.jasperreports.engine.design.JRDesignRectangle">
<eld:attribute name="positionType">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.PositionTypeEnum"/>
</eld:attribute>
<eld:attribute name="forecolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
<eld:attribute name="backcolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
</eld:element>
<eld:element tag="image" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.ImageElement">
<eld:attribute name="evaluationTime">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.EvaluationTimeEnum"/>
</eld:attribute>
<eld:attribute name="horizontalAlignment">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.HorizontalAlignEnum"/>
</eld:attribute>
<eld:attribute name="verticalAlignment">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.VerticalAlignEnum"/>
</eld:attribute>
<eld:attribute name="positionType">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.PositionTypeEnum"/>
</eld:attribute>
<eld:attribute name="mode">
<conv:enumConverter enumClass="net.sf.jasperreports.engine.type.ModeEnum"/>
</eld:attribute>
<eld:attribute name="forecolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
<eld:attribute name="backcolor">
<conv:beanConverter bean.class="net.forwardfire.vasc.lib.jr4o.x4o.ColorConverter" />
</eld:attribute>
</eld:element>
<eld:element tag="imageExpression" objectClass="net.sf.jasperreports.engine.design.JRDesignExpression" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.ValueBodyImageExpressionElement">
<eld:attribute name="valueClass">
<conv:classConverter/>
</eld:attribute>
</eld:element>
<eld:element tag="dynamicColumnHeader" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JRDynamicColumnHeaderElement"/>
<eld:element tag="dynamicColumn" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JRDynamicColumnElement"/>
<eld:element tag="dynamicCards" elementClass="net.forwardfire.vasc.lib.jr4o.x4o.JRDynamicCardsElement"/>
</eld:namespace>
</root:module>

View file

@ -6,6 +6,6 @@
>
<language version="1.0">
<eld-resource>jr4o-lang.eld</eld-resource>
<sibling-loader>org.x4o.xml.meta.MetaLanguageSiblingLoader</sibling-loader>
<sibling-loader>org.x4o.xml.lang.meta.MetaLanguageSiblingLoader</sibling-loader>
</language>
</modules>

View file

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2004-2012, Willem Cazander
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided
that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the
following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<drivers version="1.0"
xmlns="http://language.x4o.org/xml/ns/drivers"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://language.x4o.org/xml/ns/drivers http://language.x4o.org/xml/ns/drivers-1.0.xsd"
>
<driver language="jr4o" className="net.forwardfire.vasc.lib.jr4o.JR4ODriver"/>
</drivers>

View file

@ -0,0 +1,58 @@
package net.forwardfire.vasc.lib.jr4o;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import javax.swing.table.AbstractTableModel;
import net.forwardfire.vasc.lib.jr4o.JR4ODesignManager.JRExportType;
import net.forwardfire.vasc.lib.jr4o.data.JRDynamicDataSourceTableModel;
import junit.framework.TestCase;
public class JR4ODesignManagerTest extends TestCase {
public void testExport() throws Exception {
String testResourceBundle = TestResourceBundle.class.getName();
TestTableModel testData = new TestTableModel();
JRDynamicDataSourceTableModel dataModel = new JRDynamicDataSourceTableModel(testData,new int[]{50,100,150});
Map<String,Object> parameters = new HashMap<String,Object>(5);
parameters.put("title", "TEST-TITLE");
parameters.put("description", "TEST-DESCRITION");
parameters.put("titleSubject", "TEST-SUBJECT");
JR4ODesignManager manager = new JR4ODesignManager(dataModel,testResourceBundle,parameters);
manager.parseResource("net/forwardfire/vasc/lib/jr4o/reports/dynamic-reports.xml");
manager.saveReportFile("generic-landscape", JRExportType.PDF, "target/junit-test.pdf");
File output = new File("target/junit-test.pdf");
assertTrue(output.exists());
output.delete();
}
class TestTableModel extends AbstractTableModel {
private static final long serialVersionUID = 1L;
String[][] data = new String[][] {
{"1","test","data"},
{"2","foo","bar"},
{"3","bar","foo"},
{"4","data","test"},
};
@Override
public int getColumnCount() {
return 3;
}
@Override
public int getRowCount() {
return data.length;
}
@Override
public Object getValueAt(int row, int col) {
return data[row][col];
}
}
}

View file

@ -0,0 +1,17 @@
package net.forwardfire.vasc.lib.jr4o;
import java.util.Enumeration;
import java.util.ResourceBundle;
public class TestResourceBundle extends ResourceBundle {
@Override
public Enumeration<String> getKeys() {
return null;
}
@Override
protected Object handleGetObject(String key) {
return "I18N:"+key;
}
}