/*
* JasperReports - Free Java Reporting Library.
* Copyright (C) 2001 - 2009 Jaspersoft Corporation. All rights reserved.
* http://www.jaspersoft.com
*
* Unless you have purchased a commercial license agreement from Jaspersoft,
* the following license terms apply:
*
* This program is part of JasperReports.
*
* JasperReports is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* JasperReports is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with JasperReports. If not, see <http://www.gnu.org/licenses/>.
*/
package net.sf.jasperreports.engine.xml;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.type.OrientationEnum;
import net.sf.jasperreports.engine.type.PrintOrderEnum;
import net.sf.jasperreports.engine.type.WhenNoDataTypeEnum;
import net.sf.jasperreports.engine.type.WhenResourceMissingTypeEnum;
import org.xml.sax.Attributes;
/**
* @author Teodor Danciu (teodord@users.sourceforge.net)
* @version $Id: JasperDesignFactory.java 3616 2010-03-24 14:20:41Z teodord $
*/
public class JasperDesignFactory extends JRBaseFactory
{
/**
*
*/
public Object createObject(Attributes atts)
{
JasperDesign jasperDesign = new JasperDesign();
jasperDesign.setName(atts.getValue(JRXmlConstants.ATTRIBUTE_name));
jasperDesign.setLanguage(atts.getValue(JRXmlConstants.ATTRIBUTE_language));
String columnCount = atts.getValue(JRXmlConstants.ATTRIBUTE_columnCount);
if (columnCount != null && columnCount.length() > 0)
{
jasperDesign.setColumnCount(Integer.parseInt(columnCount));
}
PrintOrderEnum printOrder = PrintOrderEnum.getByName(atts.getValue(JRXmlConstants.ATTRIBUTE_printOrder));
if (printOrder != null)
{
jasperDesign.setPrintOrder(printOrder);
}
String pageWidth = atts.getValue(JRXmlConstants.ATTRIBUTE_pageWidth);
if (pageWidth != null && pageWidth.length() > 0)
{
jasperDesign.setPageWidth(Integer.parseInt(pageWidth));
}
String pageHeight = atts.getValue(JRXmlConstants.ATTRIBUTE_pageHeight);
if (pageHeight != null && pageHeight.length() > 0)
{
jasperDesign.setPageHeight(Integer.parseInt(pageHeight));
}
OrientationEnum orientation = OrientationEnum.getByName(atts.getValue(JRXmlConstants.ATTRIBUTE_orientation));
if (orientation != null)
{
jasperDesign.setOrientation(orientation);
}
WhenNoDataTypeEnum whenNoDataType = WhenNoDataTypeEnum.getByName(atts.getValue(JRXmlConstants.ATTRIBUTE_whenNoDataType));
if (whenNoDataType != null)
{
jasperDesign.setWhenNoDataType(whenNoDataType);
}
String columnWidth = atts.getValue(JRXmlConstants.ATTRIBUTE_columnWidth);
if (columnWidth != null && columnWidth.length() > 0)
{
jasperDesign.setColumnWidth(Integer.parseInt(columnWidth));
}
String columnSpacing = atts.getValue(JRXmlConstants.ATTRIBUTE_columnSpacing);
if (columnSpacing != null && columnSpacing.length() > 0)
{
jasperDesign.setColumnSpacing(Integer.parseInt(columnSpacing));
}
String leftMargin = atts.getValue(JRXmlConstants.ATTRIBUTE_leftMargin);
if (leftMargin != null && leftMargin.length() > 0)
{
jasperDesign.setLeftMargin(Integer.parseInt(leftMargin));
}
String rightMargin = atts.getValue(JRXmlConstants.ATTRIBUTE_rightMargin);
if (rightMargin != null && rightMargin.length() > 0)
{
jasperDesign.setRightMargin(Integer.parseInt(rightMargin));
}
String topMargin = atts.getValue(JRXmlConstants.ATTRIBUTE_topMargin);
if (topMargin != null && topMargin.length() > 0)
{
jasperDesign.setTopMargin(Integer.parseInt(topMargin));
}
String bottomMargin = atts.getValue(JRXmlConstants.ATTRIBUTE_bottomMargin);
if (bottomMargin != null && bottomMargin.length() > 0)
{
jasperDesign.setBottomMargin(Integer.parseInt(bottomMargin));
}
String isTitleNewPage = atts.getValue(JRXmlConstants.ATTRIBUTE_isTitleNewPage);
if (isTitleNewPage != null && isTitleNewPage.length() > 0)
{
jasperDesign.setTitleNewPage(Boolean.valueOf(isTitleNewPage).booleanValue());
}
String isSummaryNewPage = atts.getValue(JRXmlConstants.ATTRIBUTE_isSummaryNewPage);
if (isSummaryNewPage != null && isSummaryNewPage.length() > 0)
{
jasperDesign.setSummaryNewPage(Boolean.valueOf(isSummaryNewPage).booleanValue());
}
String isSummaryWithPageHeaderAndFooter = atts.getValue(JRXmlConstants.ATTRIBUTE_isSummaryWithPageHeaderAndFooter);
if (isSummaryWithPageHeaderAndFooter != null && isSummaryWithPageHeaderAndFooter.length() > 0)
{
jasperDesign.setSummaryWithPageHeaderAndFooter(Boolean.valueOf(isSummaryWithPageHeaderAndFooter).booleanValue());
}
String isFloatColumnFooter = atts.getValue(JRXmlConstants.ATTRIBUTE_isFloatColumnFooter);
if (isFloatColumnFooter != null && isFloatColumnFooter.length() > 0)
{
jasperDesign.setFloatColumnFooter(Boolean.valueOf(isFloatColumnFooter).booleanValue());
}
jasperDesign.setScriptletClass(atts.getValue(JRXmlConstants.ATTRIBUTE_scriptletClass));
jasperDesign.setFormatFactoryClass(atts.getValue(JRXmlConstants.ATTRIBUTE_formatFactoryClass));
jasperDesign.setResourceBundle(atts.getValue(JRXmlConstants.ATTRIBUTE_resourceBundle));
WhenResourceMissingTypeEnum whenResourceMissingType = WhenResourceMissingTypeEnum.getByName(atts.getValue(JRXmlConstants.ATTRIBUTE_whenResourceMissingType));
if (whenResourceMissingType != null)
{
jasperDesign.setWhenResourceMissingType(whenResourceMissingType);
}
String isIgnorePagination = atts.getValue(JRXmlConstants.ATTRIBUTE_isIgnorePagination);
if (isIgnorePagination != null && isIgnorePagination.length() > 0)
{
jasperDesign.setIgnorePagination(Boolean.valueOf(isIgnorePagination).booleanValue());
}
return jasperDesign;
}
}