Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/common/JasperDesigner.java @ 9539:4deb6b24f072
PDF-Export zu 2.8 Nachtrag
author | gernotbelger |
---|---|
date | Wed, 17 Oct 2018 16:00:38 +0200 |
parents | e6b63b2b41b9 |
children |
line wrap: on
line source
/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde * Software engineering by * Björnsen Beratende Ingenieure GmbH * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.artifacts.common; import net.sf.jasperreports.engine.JRBand; import net.sf.jasperreports.engine.JRChild; import net.sf.jasperreports.engine.JRElement; import net.sf.jasperreports.engine.design.JasperDesign; /** * @author Domenico Nardi Tironi */ public class JasperDesigner { private final JasperDesign design; private final MetaAndTableJRDataSource source; private int startpageOffset = 0; public JasperDesigner(final JasperDesign design, final MetaAndTableJRDataSource source) { this.design = design; this.source = source; } public void removeColumn(final String key) { final JRBand colchildren = this.design.getColumnHeader(); final JRBand datachildren = this.design.getDetailSection().getBands()[0]; int width = 0; if (colchildren != null && datachildren != null) { final JRElement elementCol = colchildren.getElementByKey(key); final JRElement elementData = datachildren.getElementByKey(key); if (elementCol != null && elementData != null) { width = elementCol.getWidth() + width; final int indexCol = colchildren.getChildren().indexOf(elementCol); final int indexData = datachildren.getChildren().indexOf(elementData); elementCol.getElementGroup().getChildren().remove(elementCol); elementData.getElementGroup().getChildren().remove(elementData); for (int j = indexCol; j < colchildren.getChildren().size(); j++) { final JRChild element = colchildren.getChildren().get(j); if (element instanceof JRElement) { ((JRElement) element).setX(((JRElement) element).getX() - width); } } for (int j = indexData; j < datachildren.getChildren().size(); j++) { final JRChild element = datachildren.getChildren().get(j); if (element instanceof JRElement) { ((JRElement) element).setX(((JRElement) element).getX() - width); } } } // width auf letzte spalte schlagen addWidthToElement(colchildren.getElements()[colchildren.getElements().length - 1], width); addWidthToElement(datachildren.getElements()[datachildren.getElements().length - 1], width); } else { // TODO: LOG System.out.print("Column not found for key: " + key); } } private void addWidthToElement(final JRElement element, final int width) { if (element != null) element.setWidth(element.getWidth() + width); } JasperDesign getDesign() { return this.design; } public MetaAndTableJRDataSource getSource() { return this.source; } public void setPagesCount(final int pagesCount) { this.startpageOffset = pagesCount; } public int getPagesCount() { return this.startpageOffset; } }